Ethereum Address Validator
Validate an Ethereum address with the EIP-55 checksum (in-browser keccak-256), get the safe checksummed form, and diff two addresses to spot address poisoning. 100% local.
Checks format and checksum only — it cannot confirm the address exists or holds funds. Always verify the full address with the recipient.
ENS names need a wallet to resolve — this tool validates raw addresses only.
Rules: EIP-55 with an in-browser keccak-256 — verified against the official test vectors on every load.
Batch check (one address per line)
⚠ First/last characters match but the middle differs — classic address-poisoning pattern.
Only the letter case differs — often just EIP-55 checksum casing of the same address.
Pure character comparison — paste addresses from any chain, not just Ethereum.
Validate an Ethereum address
Paste an Ethereum (or any EVM) address to check its 0x format, hex characters and EIP-55 checksum, computed with an in-browser keccak-256 that proves itself against the official test vectors on every load. Lowercase addresses get their safer checksummed form; wrong-case characters are highlighted one by one. The Address diff tab compares two addresses character by character and flags the matching-ends pattern used in address-poisoning scams. Everything runs locally — the tool checks structure only and cannot tell whether an address is actually in use. Checking a Bitcoin address instead? Use the Bitcoin Address Validator.
An Ethereum address is 20 bytes written as 40 hexadecimal characters. Because hex has no checksum by itself, EIP-55 encodes one into the letter casing: hash the lowercase address with keccak-256, and uppercase every letter whose corresponding hash nibble is 8 or higher. A wallet that respects EIP-55 will reject an address with even one wrong-case character, catching typos that plain hex would silently accept.
This tool runs keccak-256 entirely in your browser (Web Crypto has no keccak, so the permutation is implemented in JavaScript and verified against known-answer tests on load). Mixed-case input is strictly validated; all-lowercase or all-uppercase input is flagged as unprotected and the correct checksummed form is offered. A second tab compares two addresses character by character to expose address-poisoning attacks, where a scammer generates a lookalike address with matching first and last characters.
FAQ
What does the EIP-55 checksum do?
EIP-55 encodes a checksum in the letter casing of the address: the address is hashed with keccak-256 and each letter is uppercased when the matching hash digit is 8 or higher. A single mistyped character almost always breaks the casing pattern, so wallets can catch typos before anything is sent.
Does a valid result mean the address exists or holds funds?
No. This tool checks format and checksum only — it cannot confirm the address exists or holds funds. Always verify the full address with the recipient before using it.
Why is an all-lowercase address flagged as "no checksum"?
An all-lowercase (or all-uppercase) address is structurally fine, but its casing carries no checksum information, so one typo goes undetected. Prefer the EIP-55 checksummed form this tool shows — it is the same address, just safer to copy around.
What is address poisoning?
An attacker sends a tiny transfer from a lookalike address whose first and last characters match one you use, hoping you later copy it from your history. The Address diff tab compares two addresses character by character and warns about this matching-ends pattern.
Can I validate an ENS name like name.eth?
No. ENS names need a wallet to resolve — this tool validates raw addresses only. Resolve the name in your wallet first, then paste the 0x address here.
Does this work for other EVM chains?
Yes. Polygon, BNB Chain, Arbitrum, Base and other EVM networks use the same 0x + 40-hex format and the same EIP-55 casing rule, so the checks apply there too. The diff tab compares any two strings, on any chain.
Is my address uploaded anywhere?
No. The keccak-256 hash and every check run entirely in your browser — nothing is sent or stored.
Last updated: