Glossary

Checksum address

A checksum address is the EIP-55 mixed-case Ethereum address encoding that lets wallets detect typos before broadcasting a transaction.

A checksum address is the EIP-55 mixed-case encoding of an Ethereum

address. The underlying 20-byte value is the same as the lowercase form;

the case of each hex character carries an integrity check. Wallets and

explorers use the casing to catch typos before a user broadcasts a

transaction that sends funds into a void.

How EIP-55 works

EIP-55 specifies a deterministic capitalisation rule applied on top of the

lowercase hex address. The procedure:

  1. Take the lowercase 40-character hex address (no 0x).
  2. Compute Keccak-256 of that lowercase string (as ASCII bytes).
  3. For each hex character at position i in the address, if the

corresponding nibble of the hash at position i is >= 8, uppercase

the character; otherwise leave it lowercase. Digits 0-9 are unaffected.

The result is a mixed-case string like

0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359 where the case is fully

determined by the address itself.

To verify an address, re-run the procedure on the lowercased form and

compare the result to what the user supplied. If the mixed-case input does

not match the recomputed value, the address has a typo.

Why wallets reject mis-cased addresses

The EVM itself is case-insensitive: as far as a node is concerned,

0xFb6916... and 0xfb6916... are the same address. But because the

checksum is so cheap to verify, wallets, explorers, and tooling treat a

non-matching mixed-case address as an integrity failure.

  • A mixed-case address whose casing does not satisfy EIP-55 is almost

certainly the result of a typo, and wallets reject it rather than risk

sending to a wrong account.

  • A fully-lowercase or fully-uppercase address still works, because it

carries no checksum information. Wallets generally allow these but

encourage users to use the mixed-case form.

This protection applies on every EVM chain tx.taxi routes to, since the

address space and checksum rule are shared. ethereum,

base, arbitrum one,

optimism, polygon, and

bsc all use the same EIP-55 encoding for displayed

addresses.

EIP-1191: chain-specific checksums

EIP-1191 extends EIP-55 by mixing the chain ID into the hash input. This

yields different valid casings per chain for the same underlying bytes.

Some wallets implement EIP-1191 (notably for RSK and a handful of other

networks); most Ethereum tooling implements the original EIP-55, which is

why mainstream EVM addresses look the same across chains.

How to verify by hand

If you need to spot-check, look at the smart contract

or wallet address page on the explorer and

compare it to your source character-by-character. The explorer renders

addresses in their EIP-55 form, so any mismatch in case immediately stands

out.

Common gotchas

  • Copying an address as plain lowercase from a logs page strips the

checksum. The address is still valid, but you lose typo detection until

a wallet re-applies the casing.

  • An address that looks mixed-case but uses arbitrary casing (for

example, hand-typed) will not pass EIP-55 verification. The casing has

to be the one EIP-55 produces, not just any mix.

  • The checksum protects against transcription typos. It does not protect

against phishing addresses that happen to look similar.

Related