Free, browser only utility

Ethereum Address Validator (EIP-55)

Paste any Ethereum address to verify shape, length, and EIP-55 checksum. The tool returns the correct mixed case form so you can use it safely in production code or wallets.

No loginRuns in browserSolidity native
Address validation flowAn address moves into a validator and emerges as a checksummed result with a green check.paste address0xfb6916...c5d359EIP-55checksumvalid
Paste a 42 character address starting with 0x to see validation.
How the validator works

The validator checks shape with a regex (^0x[0-9a-fA-F]{40}$), confirms the length is 42, then computes the EIP-55 checksum by hashing the lower case address with keccak256 and capitalising each hex digit when the corresponding hash nibble is greater than 7.

Checksum derivation is done in your browser via viem.getAddress. Nothing is sent to any server.

About this tool

What this validator answers

The Ethereum Address Validator checks an address for shape, length, character set, and EIP-55 checksum. Use it before pasting an address into a contract call, a token transfer, or a wallet integration test where one wrong character can route funds to a different valid address.

The tool returns four states: empty, invalid with a specific reason, valid single case (no checksum to compare), and valid mixed case (checksum either matches or does not). The mixed case verdict is the one that prevents typo loss: if the capitalisation matches the EIP-55 derived checksum, the address is safe to use as is.

How to use it

Paste the address into the input field. The validator runs on every keystroke. If the address is valid you see a green panel with the canonical EIP-55 mixed case form and a copy button. If it is invalid you see a red panel with a specific reason: wrong prefix, wrong length, or non hex characters.

For mixed case addresses with a wrong checksum the panel is amber. The amber state is the one to watch: it means the address is shaped correctly but the capitalisation does not match what EIP-55 derives. Most modern wallets reject this. Copy the corrected form from the panel rather than editing by hand.

How the validation works

Shape and length are checked with a regex (forty hex characters after the 0x prefix). The EIP-55 checksum is computed by hashing the lower case address with keccak256, then capitalising each hex digit when the corresponding hash nibble is greater than 7. The implementation calls viem.getAddress, the standard reference in the JavaScript ecosystem.

All compute happens in your browser. The address never reaches a server. There is no telemetry, no logging, and no third party fetch in the path between the input field and the result panel.

Where this validator usually flags real bugs

The most common real bug is a copy paste error that drops or substitutes one character. The shape check still passes if the new character is valid hex; the EIP-55 checksum is what catches the mistake. The validator surfaces the corrected form so the developer can see exactly which character changed.

The second most common bug is using an address generated by a tool that predates EIP-55. Those addresses are all lower case. They are valid, but offer no checksum protection. The validator returns the EIP-55 mixed case form so the address can be upgraded for production use.

When the validator is the right tool and when it is not

This tool is right when you have a 0x prefixed 20 byte EVM address and want to check shape and checksum. It works for Ethereum mainnet, Arbitrum, Optimism, Base, Polygon, BSC, Avalanche, and any EVM compatible chain.

It is not the right tool for ENS names like vitalik.eth (resolve those first), Cosmos addresses (they use Bech32), Solana addresses (they are base58 encoded), or contract verification (use a block explorer). The validator only checks the address. It does not check the chain, the balance, or whether the address is a contract.

EIP-55 case derivationLowercase address feeds into keccak256, which produces a hash whose nibbles drive capitalisation of the original digits.lowercase addressfb6916095ca1df60bb79ce92ce3ea74c37c5d359keccak256 hash nibbles8c1a3 b29... 7>7 capitalises the digitEIP-55 resultFb6916095cA1df60bB79Ce92cE3Ea74c37C5d359

How this tool differs from explorer validators

Block explorers validate addresses too, but only when you paste them into the search bar. This tool runs continuously as you type, surfaces specific failure reasons, and works offline. It also returns the corrected checksummed form for any single case input, which most explorers do not do.

The validation logic is the same one used in production wallets and contract clients. Source: the official EIP-55 specification and viem, the underlying library.

Working on a contract that needs an audit?

Address handling bugs are one of the most common causes of fund loss in production contracts. Bring your codebase for a focused review.

Book a smart contract review

Frequently asked questions

How do I validate an Ethereum address?
Validate an Ethereum address by checking four things: that it starts with 0x, that the total length is exactly 42 characters, that every character after 0x is a valid hex digit, and that any mixed case capitalisation matches the EIP-55 checksum derived from the lowercase form. This validator performs all four checks in your browser and returns the correct checksummed form when applicable.
What is EIP-55 and why does it matter?
EIP-55 is an Ethereum Improvement Proposal that uses mixed case capitalisation as an in band checksum. The lowercase address is hashed with keccak256, and each hex digit is capitalised when the corresponding hash nibble is greater than 7. Wallets that support EIP-55 reject mixed case addresses whose capitalisation does not match the derived checksum, which catches a large class of copy paste errors before funds move.
Why did my mixed case Ethereum address fail the checksum?
The most common cause is a copy paste error where a single character was changed, dropped, or added. Another cause is using an address generated by an old tool that did not implement EIP-55. The validator returns the correct checksummed form in either case. If your wallet rejects an address, do not edit by hand. Re derive it from the source key or contract address.
Is an all lowercase Ethereum address safe to use?
Single case addresses are valid Ethereum addresses but offer no checksum protection. A typo will still send funds to a different valid address. In production code prefer the checksummed mixed case form. Most wallets and block explorers display checksummed addresses by default for this reason, and many web3 libraries reject all lowercase addresses when checksum mode is enforced.
Does the validator work for ENS names like vitalik.eth?
No. ENS names such as vitalik.eth resolve to addresses through a registry contract. This validator does not perform that on chain lookup. Resolve the ENS name in your wallet or via a public ENS resolver such as app.ens.domains, then paste the resolved 0x address into this validator to check its checksum.
How do I validate an Ethereum address in code, ethers.js or web3.py?
In ethers.js v6 call isAddress to check shape and getAddress to return the checksummed form. In viem call isAddress and getAddress. In web3.py call Web3.is_address and Web3.to_checksum_address. In web3.js call utils.isAddress and utils.toChecksumAddress. All of these libraries implement EIP-55 the same way, so their outputs are identical to what this online validator returns.
Does EIP-55 work for contract addresses on other EVM chains?
EIP-55 applies to any address that uses the same 20 byte EVM format, which covers Ethereum, Arbitrum, Optimism, Base, Polygon, BSC, Avalanche, and most other EVM chains. The same checksum rules apply. Cosmos and other non EVM chains use different address formats such as bech32 and require different validators that this tool does not implement.

Related services and reading

Follow the cluster from validator to deeper Solidity work.

Author: Mudassir Khan. Last updated May 9, 2026. Validation logic verified against EIP-55 reference vectors.