Ethereum address checksum converter (EIP-55)
An Ethereum address is 20 bytes written as 40 hexadecimal characters. Hex is case-insensitive, so 0x5aaeb… and 0x5AAEB… point at the same account — which left early wallets with no way to catch a typo. EIP-55 fixed that in 2016 by using the letter case itself as a checksum: hash the lowercase address with Keccak-256 and capitalise each letter whose matching hash digit is 8 or higher. The result looks like 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed, and any single-character typo has roughly a 98.5% chance of breaking the pattern.
This Ethereum address checksum converter does three things: it turns a lowercase or uppercase address into its checksummed form, it verifies a mixed-case address and tells you if a letter is wrong, and it explains the result digit by digit so you can see exactly why each letter is capitalised. A bulk mode processes a whole list and exports CSV.
Keccak-256 is implemented in plain JavaScript in your browser; nothing is sent anywhere. The page is informational and not investment advice — a valid checksum confirms the address was transcribed correctly, not that it belongs to the person you think.
How to use the Ethereum Address Checksum Converter
- Paste an address into the Ethereum / EVM address box, with or without the
0xprefix. - Read the status badge: valid checksum, no checksum (all one case) or mismatch.
- Copy the Checksummed (EIP-55) form for wallets and explorers, or the lowercase form for scripts and databases that compare addresses case-insensitively.
- Open Why is each letter upper or lower case? to see the Keccak digit under every character.
- For many addresses switch to Bulk list, paste one per line, press Check and convert list and download the CSV.
Ethereum Address Checksum Converter features
Verify, not just convert
Mixed-case input is checked against the EIP-55 rule and a wrong letter is reported as a mismatch rather than silently “fixed”.
Digit-by-digit explanation
A table shows each hash digit, whether it is ≥ 8, and the resulting case — useful for learning or for debugging your own implementation.
Bulk mode with CSV
Hundreds of addresses at once, with a status for each, a copyable checksummed list and a CSV download.
Every EVM chain
EIP-55 applies unchanged on Polygon, BNB Chain, Arbitrum, Optimism, Base, Avalanche C-Chain and every other EVM network.
Runs offline
The Keccak-256 hash is computed by a small in-page implementation that matches the Ethereum test vectors.
How EIP-55 works, step by step
Only the first 40 hash digits matter, which is why the explanation table shows 40 columns of a 64-digit hash. Addresses that happen to contain only digits, or whose letters all land on low hash digits, come out entirely lowercase and are still valid.
- Strip
0xand lowercase the 40 hex characters. - Compute Keccak-256 of that ASCII string (not of the 20 raw bytes — a common implementation bug).
- Walk the address and the hash together. For position i, if the hash’s i-th hex digit is 8, 9, a, b, c, d, e or f, write the address character in upper case; otherwise lower case. Digits 0–9 have no case and are left alone.
- Prefix
0x. To verify an address, run the same steps and compare: any difference in case is a checksum failure.
Test vectors from the EIP
These are the examples published with EIP-55. Paste any of them in lowercase and the converter must reproduce the exact capitalisation.
| Checksummed address | Note |
|---|---|
0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed | Mixed case |
0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359 | Mixed case |
0x52908400098527886E0F7030069857D2E4169EE7 | All capitals — every letter landed on a high digit |
0xde709f2102306220921060314715629080e2fb77 | All lowercase — still a valid checksum |
When to use which form
- Checksummed — sharing an address with people, QR codes, wallet address books, contract verification pages. Most wallets refuse to send to a mixed-case address whose checksum fails.
- Lowercase — database keys, log files, subgraph queries and anything that compares strings byte for byte. Normalise on input so
0xAbC…and0xabc…do not become two different users. - Uppercase — occasionally seen in older tooling; carries no checksum. Treat it like lowercase.
- For non-EVM chains (Bitcoin, Solana, Tron, Polkadot) use the wallet address validator, which applies each chain’s own checksum. To resolve a human-readable name instead, the ENS name normaliser computes namehashes.
Ethereum Address Checksum Converter FAQ
Is a lowercase Ethereum address valid?
Yes. A lowercase address is accepted everywhere and refers to the same account; it just carries no checksum, so a typo cannot be detected. Convert it here before sharing it.
Why does my wallet say “invalid checksum”?
At least one letter in a mixed-case address has the wrong case, usually from a copy-paste error, an OCR mistake or a manually typed character. Paste it here to see which positions disagree, then re-copy the address from the original source rather than “fixing” it.
Does EIP-55 work on Polygon, BNB Chain or Base?
Yes. All EVM-compatible chains share the same 20-byte address format and the same checksum rule, so one checksummed address is valid on every one of them.
Is the checksum part of the address stored on chain?
No. The blockchain only stores the 20 bytes. The capital letters are a display convention that wallets and explorers use to catch transcription errors.
What is the difference between EIP-55 and EIP-1191?
EIP-1191 proposed mixing the chain ID into the hash so a checksum would also be chain-specific. It was adopted by only a few chains (notably RSK) and most tooling still uses plain EIP-55, which this Ethereum address checksum converter implements.
Is it safe to paste addresses here?
Yes. Addresses are public information and the page processes them locally without any network request. Never paste private keys or seed phrases anywhere online.