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

What does this validator check?
The validator checks four things: that the address starts with 0x, that the total length is 42 characters, that every character after 0x is a valid hex digit, and that the EIP-55 mixed case checksum matches when applicable. Single case addresses pass shape validation but cannot be checksum verified, so the tool returns the correct checksummed form instead.
What is the EIP-55 checksum?
EIP-55 is an Ethereum Improvement Proposal that uses mixed case capitalisation as an in band checksum. The lower case 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.
Why did my mixed case address fail the checksum?
A common cause is copy paste error: 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 tool returns the correct checksummed form in either case. If your wallet rejects it, do not edit by hand. Re derive from the source.
Is the all lowercase form 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 explorers display checksummed addresses by default for this reason.
Does the validator work for ENS names?
No. ENS names like vitalik.eth resolve to addresses through a registry contract; this tool does not perform that lookup. Resolve the ENS name in your wallet or via a public ENS resolver, then paste the resolved 0x address into this validator.
Is my input sent to a server?
No. The validator runs entirely in your browser. The address never leaves your machine. No analytics, no logging, no third party fetch. You can confirm by opening DevTools and watching the network tab while you paste an address.
What about 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 and require different validators.

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.