EVMTools

Checksum Address Converter

Convert Ethereum addresses to EIP-55 checksummed format for safe usage in transactions.

What is EIP-55?

EIP-55 is a checksum standard for Ethereum addresses that uses mixed casing to detect typos. Each letter in the address is uppercased or lowercased based on the Keccak256 hash of the lowercase address. This provides a simple way to verify address integrity without changing the address itself.

How to Use This Checksum Address Converter

This free online tool converts Ethereum addresses to their EIP-55 checksummed format and validates existing checksums. Use it to ensure your addresses are correctly formatted before sending transactions.

  1. Paste an Ethereum address in any format (lowercase, uppercase, or mixed-case) into the input field.
  2. View the checksummed result — the tool converts the address to EIP-55 format with the correct mixed-case checksum.
  3. Check the validation status — if the input address was already mixed-case, the tool tells you whether the checksum is valid or invalid.
  4. Copy the checksummed address for use in your transactions, smart contracts, or configuration files.

All computation runs locally in your browser using keccak256. No addresses are sent to any server.

Common Use Cases

  • Transaction safety — Convert addresses to checksum format before sending ETH or tokens to catch typos that could result in lost funds.
  • Smart contract deployment — Ensure all addresses in constructor arguments and configuration are properly checksummed.
  • Code quality — Fix Solidity compiler warnings about non-checksummed addresses in your contract code.
  • Allowlist preparation — Convert a list of addresses to checksum format before building a Merkle tree for minting whitelists.
  • Address comparison — Normalize addresses to the same checksum format for reliable string comparison in scripts and databases.

Related Tools

Frequently Asked Questions

What is an EIP-55 checksum address?

EIP-55 is a standard for mixed-case Ethereum address checksumming. It converts a lowercase hex address into a mixed-case format where uppercase letters serve as a checksum. For example, 0xab5801a7d398351b8be11c439e05c5b3259aec9b becomes 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B. If any character is wrong, the checksum fails, catching typos before funds are sent.

How does EIP-55 checksumming work?

EIP-55 takes the keccak256 hash of the lowercase address (without 0x). For each character in the address: if the character is a letter (a-f) and the corresponding hex digit in the hash is 8 or higher, the character is uppercased. This creates a deterministic checksum that detects about 99.986% of random character changes.

Why are Ethereum addresses case-insensitive?

Ethereum addresses are derived from public keys and are fundamentally hexadecimal numbers where case does not affect the value (0xAB equals 0xab). EIP-55 repurposes the case to encode checksum information. Wallets and tools validate the checksum to catch typos, but the blockchain itself treats addresses as case-insensitive.

What happens if I use a non-checksummed address?

Using a non-checksummed address does not cause a transaction to fail on-chain. However, many wallets and tools (including MetaMask, ethers.js, and Solidity) issue warnings or errors when they encounter addresses that fail EIP-55 checksum validation. Using checksummed addresses is a best practice to prevent sending funds to mistyped addresses.

Do all EVM chains use EIP-55 checksumming?

Yes. EIP-55 checksumming is universal across all EVM-compatible chains including Ethereum, Polygon, Arbitrum, Optimism, BSC, and Avalanche. The checksum is computed from the address alone (not the chain ID), so the same checksummed address is valid on all chains. Some chains like RSK use a chain-specific variant (EIP-1191).

How do I validate an Ethereum address checksum?

To validate, compute the EIP-55 checksum of the lowercase address and compare it character-by-character with the provided mixed-case address. If they match, the checksum is valid. If the address is all-lowercase or all-uppercase, it is considered valid but not checksummed. Libraries like ethers.js and viem provide getAddress() functions that validate and convert automatically.