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:
- Take the lowercase 40-character hex address (no
0x). - Compute Keccak-256 of that lowercase string (as ASCII bytes).
- For each hex character at position
iin 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,
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.