Introduction
Ethereum addresses are 20-byte hex values, typically shown as 0x followed by 40 hex characters. Unlike Bitcoin addresses, they have no built-in checksum in their Base58-style encoding. A single typo in an Ethereum address can send your ETH to a black hole with no recovery. EIP-55 fixes this by mixing uppercase and lowercase letters in the address to create a checksum that catches transcription errors. This tool validates whether an Ethereum address has a correct EIP-55 checksum and generates the properly checksummed version from any valid address. Paste an address and the result appears instantly.
What this tool does
- Validate that an input string is a well-formed Ethereum address (0x prefix followed by exactly 40 hex characters)
- Detect whether the address has a mixed-case EIP-55 checksum (all-lowercase or all-uppercase addresses have no checksum)
- Verify the checksum by recomputing the Keccak-256 hash and comparing the expected capitalization against the input
- Generate the correct EIP-55 checksummed address from any valid 40-hex-character input, regardless of its current casing
- Show a clear validation status: valid checksum, no checksum detected (all same case), or checksum mismatch (mixed case but wrong)
- Run entirely client-side: no address is sent to any server
How this tool works
The tool takes your input, trims whitespace, and checks it against the pattern 0x followed by 40 hex characters. If the format is invalid, it reports an error immediately. If the format is valid, it proceeds to checksum analysis.
First, the tool determines whether the address has a checksum. An all-lowercase address (0xabcdef...) or all-uppercase address (0xABCDEF...) has no checksum because the casing carries no information. Only mixed-case addresses have a checksum.
For mixed-case addresses, the tool computes the EIP-55 checksum. It strips the 0x prefix, converts the remaining 40 characters to lowercase, and computes the Keccak-256 hash of that lowercase hex string. The hash is 32 bytes (64 hex characters). For each character in the address, if it is a letter (a-f) and the corresponding nibble (4 bits) of the hash is 8 or greater, the letter is capitalized. Otherwise it stays lowercase. Digits (0-9) are never capitalized. The resulting mixed-case string, with 0x prepended, is the checksummed address.
The tool compares this computed checksum against your input. If they match, the checksum is valid. If they differ, the checksum is invalid and the tool shows the correct version in the output field. If the input has no checksum (all same case), the tool generates and displays the correct checksummed version.
All computation happens in your browser. The Keccak-256 hash is computed locally. No address is transmitted to any server.
How EIP-55 checksums work (Keccak-256 based mixed-case encoding)
EIP-55 was proposed by Vitalik Buterin and Alexey Akhunov in EIP-55: Mixed-case checksum address encoding. The Ethereum Yellow Paper (Ethereum Yellow Paper) defines addresses as the rightmost 20 bytes of the Keccak-256 hash of the public key, prefixed with 0x.
The problem EIP-55 solves is specific to Ethereum. Bitcoin addresses use Base58Check, which includes a 4-byte checksum that catches most single-character errors. Ethereum addresses are raw hex with no checksum. If you type 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed and accidentally write 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAee (last character d changed to e), the address is still valid hex and a transaction would send funds to a wrong or nonexistent address. There is no rollback.
EIP-55 uses the Keccak-256 hash of the lowercase address to determine which letters should be capitalized. Keccak-256 is the hash function used throughout Ethereum (not to be confused with SHA-3, which has a different padding scheme). The hash provides a pseudo-random pattern of capitalization that changes completely if any character in the address is altered. A single wrong character produces a different hash, which changes the capitalization pattern, which makes the checksum fail.
The checksum catches approximately 99.996% of single-character errors and most multi-character errors. It does not catch all possible errors (for example, swapping two adjacent characters that are both digits), but it catches the most common transcription mistakes. Wallets and exchanges should always enforce EIP-55 checksums before allowing a withdrawal.
The checksum is opt-in. Addresses can be used in all-lowercase form without any checksum, and many older tools and block explorers display them that way. Modern wallets display and require checksummed addresses, and most will warn or refuse if you paste an address with an invalid checksum.
How to use this tool
- Paste an Ethereum address into the input field. It must start with 0x followed by 40 hex characters (0-9, a-f, A-F)
- The tool validates the format. If the address is not 42 characters or contains non-hex characters, it reports an error
- Check the validation results panel. It shows whether the format is valid, whether a checksum is present (mixed case), and whether the checksum matches
- If the address has no checksum (all lowercase or all uppercase), the tool generates the correct EIP-55 checksummed version in the output field
- If the address has a checksum mismatch, compare your input against the output field to find the typo
- Copy the checksummed address from the output field and use it in your transaction or wallet
Real-world examples
Validating a correct EIP-55 checksum
Input: `0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed`. This is the example address from the EIP-55 specification. The tool computes the Keccak-256 hash of the lowercase hex string, applies the capitalization rule, and confirms the checksum matches. The result panel shows 'Valid checksum' and the output field shows the same address, confirming it is safe to use.
Detecting a typo with a checksum mismatch
Input: `0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAee` (last character changed from d to e). The tool computes the checksum and finds it does not match. The result panel shows 'Checksum mismatch' in red. The output field shows the correct checksummed address `0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed`, revealing the typo. Without EIP-55, this error would have gone undetected and funds would be lost.
Converting an all-lowercase address to checksummed form
Input: `0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaed` (all lowercase). The tool detects no checksum (all same case) and generates the correct EIP-55 version: `0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed`. The output field shows the checksummed address. Many block explorers accept all-lowercase addresses, but using the checksummed form protects against future typos.
Rejecting a malformed address
Input: `0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeA` (only 38 hex characters after 0x). The tool reports 'Address must be 0x followed by exactly 40 hex characters.' No checksum computation is performed because the format is invalid. This catches truncation errors where part of the address was lost during copy-paste.
Comparison with similar methods
| Method | Complexity | Typical use |
|---|---|---|
| EIP-55 (Ethereum) | Keccak-256 hash, mixed-case encoding | Ethereum and EVM-compatible chain addresses |
| Base58Check (Bitcoin) | Double SHA-256, 4-byte checksum | Bitcoin P2PKH and P2SH addresses |
| Bech32 (Bitcoin SegWit) | BCH error code, 30-char checksum | Bitcoin P2WPKH and P2TR addresses |
| No checksum (raw hex) | None | Legacy systems, unsafe for value transfer |
| CRC-32 | 32-bit polynomial checksum | File integrity, not cryptographic |
Limitations or considerations
The EIP-55 checksum catches most single-character transcription errors but is not a cryptographic guarantee. It does not catch all possible errors. For example, if two adjacent digit characters are swapped (like 12 becoming 21), the checksum may not change because digits are never capitalized. The checksum is designed for human error detection, not for adversarial tamper resistance.
This tool validates the checksum format only. It does not check whether an address exists on the blockchain, whether it has a balance, or whether it is a contract address or an externally owned account (EOA). For on-chain verification, use a block explorer like Etherscan.
The tool does not validate addresses on other EVM-compatible chains (Polygon, Arbitrum, Optimism, BSC) separately. These chains use the same address format and the same EIP-55 checksum, so validation results apply across all EVM chains. However, an address can exist on one chain and not another.
EIP-55 does not protect against address poisoning attacks, where an attacker generates a vanity address with the same first and last few characters as your target address and intercepts a copy-paste operation. Always verify the full address character by character before sending funds.
For Bitcoin address validation, see the Bitcoin Address Generator. For the Base58Check encoding used in Bitcoin, see the Base58Check Encoder/Decoder. For multi-chain address validation, see the Crypto Address Validator.
Frequently asked questions
What is EIP-55 and why does it matter?
EIP-55 is an Ethereum Improvement Proposal that defines a mixed-case checksum for Ethereum addresses. It uses the Keccak-256 hash of the lowercase address to determine which letters should be capitalized. This catches transcription errors that would otherwise send funds to the wrong address. Without it, a single typo in a 40-character hex string can cause irreversible loss.
Why does Ethereum use Keccak-256 instead of SHA-256?
Ethereum was designed with Keccak-256 as its native hash function. Keccak-256 was selected before NIST finalized SHA-3, which changed the padding scheme. Ethereum's Keccak-256 and the final SHA-3-256 produce different outputs for the same input despite both being based on the Keccak sponge construction. The EIP-55 checksum specifically requires Keccak-256 as used in Ethereum.
Can I use an all-lowercase Ethereum address?
Yes, all-lowercase addresses are valid and accepted by most wallets and smart contracts. However, they have no checksum, so typos go undetected. Best practice is to convert to the EIP-55 checksummed form before sharing an address or sending a transaction. This tool does that conversion automatically.
Does EIP-55 catch all typos?
No. It catches most single-character errors and many multi-character errors, but not all. Swapping two adjacent digit characters (like 12 to 21) will not change the checksum because digits are never capitalized. The checksum is designed for common human transcription errors, not for adversarial tamper detection.
Do EIP-55 checksums work on Layer 2 chains like Arbitrum and Optimism?
Yes. Arbitrum, Optimism, Polygon, BSC, and other EVM-compatible chains use the same address format and the same Keccak-256 based checksum. An EIP-55 checksummed address is valid on every EVM chain. However, an address can have a balance on one chain and be empty on another, so always verify on the correct chain.
Conclusion
EIP-55 checksums are a simple but effective guard against the most common cause of lost Ethereum: typos in addresses. This tool validates existing checksums and generates correct ones from any valid address, all in your browser. For Bitcoin's address format and derivation, see the Bitcoin Address Generator. For the Base58Check encoding used in Bitcoin addresses, see the Base58Check Encoder/Decoder. For validating addresses across multiple blockchains, see the Crypto Address Validator.