If you have ever pasted an address into a wallet and noticed a mix of uppercase and lowercase letters, you were looking at a checksum address. That mixed case is not random and it is not a styling choice. It is a built in error check that helps your wallet catch a mistyped or corrupted address before you send funds to it.
This matters more than it might seem. On Base, like on Ethereum and every other EVM chain, a transaction to the wrong address cannot be reversed. There is no bank to call, no chargeback, and usually no way to know who controls the address that received your funds. Understanding checksums helps you use one of the few automatic safety nets your wallet already gives you.
What an address actually looks like underneath
An EVM address, the kind used on Base, Ethereum, and other EVM compatible networks, is a 20 byte value. When it is displayed to you, it is written as 40 hexadecimal characters with a 0x prefix, for example something like 0x8f3a...b91c. Hexadecimal uses the digits 0 through 9 and the letters a through f, and by design those letters are case insensitive. 0xab is the same address as 0xAB as far as the underlying network is concerned.
That case insensitivity is convenient, but it also means that if you display an address in all lowercase, there is no redundancy in the text itself. A single mistyped character, or a single flipped bit from a bad copy and paste, a font rendering issue, or corrupted data, produces a different valid looking address with no way to tell just by looking at it.
How the checksum is built
EIP-55, the Ethereum proposal that defines this standard, solves the problem by using the unused case information as a checksum. Here is the general idea, without getting lost in cryptographic detail:
- The wallet takes the lowercase version of the address and runs it through the Keccak-256 hash function, the same hash function used throughout Ethereum and Base.
- For each letter in the address (a through f), the wallet looks at the corresponding character in the hash output.
- If that hash character indicates a high value, the letter in the address is capitalized. If not, it stays lowercase.
- Numbers in the address are never changed. Only the letters carry the checksum information.
The result is an address like 0x8f3aC2A9D9C9b9E1234567890AbCdEf12345678, where the specific pattern of capital and lowercase letters is a direct mathematical function of the address itself. A wallet that supports EIP-55 can take any address you paste in, recompute what the checksum casing should be, and compare it to what you typed or pasted. If they do not match, something is wrong.
According to the EIP-55 specification, this method catches the vast majority of typos and corrupted characters. A randomly mistyped address has only a small chance of accidentally passing the checksum, so in practice a mismatch is a reliable signal that the address is not what it should be.
What it means when your wallet flags an address
Most modern wallets, including browser extensions and mobile apps, will do one of a few things with checksum information:
- Silently validate. Many wallets check the casing automatically and simply refuse to proceed, or show a warning, if the checksum does not match.
- Display in checksum format. When a wallet shows you an address to confirm before sending, it often renders it in proper mixed case so that a visual comparison against the source is more reliable than comparing an all lowercase string.
- Accept all lowercase as a fallback. An address typed entirely in lowercase is technically valid too, since the standard is backward compatible. Older addresses, some contract deployment tools, and casual copy paste often produce all lowercase text. Your wallet will typically accept it without complaint, since a fully lowercase address has no checksum encoded either way. It just means you lose the automatic check that mixed case would have given you.
If your wallet shows an explicit error like "invalid checksum" or "address may be corrupted," take it seriously. It usually means at least one character does not match what the rest of the address implies, and continuing could send funds to an address nobody controls, or to an address you did not intend.
Checksums do not protect against everything
It is worth being clear about what a checksum address does and does not do, because it is easy to over trust it.
What it catches: typos, corrupted copy and paste, characters swapped by a bad clipboard manager, and most forms of accidental human or software error in transcribing an address.
What it does not catch: an address that is correctly typed but simply belongs to someone else. This is the core mechanism behind address poisoning scams, where an attacker sends you a tiny or zero value transfer from an address that looks similar to one you have used before, hoping you will copy it from your transaction history by mistake. That address will have a perfectly valid checksum. It is just the wrong address on purpose. If this is unfamiliar, it is worth reading up on address poisoning specifically, since checksum validation offers no defense against it.
A checksum also will not tell you whether an address belongs to a scam contract, a phishing wallet, or a legitimate exchange deposit address. It only verifies that the text you have matches a real, internally consistent address. Whether that address is the right one for your intent is a separate question entirely.
Practical habits that pair well with checksums
- Always let your wallet render the confirmation screen and read the full address, not just the first and last few characters. Address poisoning specifically exploits the habit of only checking the start and end.
- Copy and paste rather than retype whenever possible, and let the checksum catch any corruption introduced along the way.
- For large or first time transfers, send a small test amount first. A checksum confirms the address is well formed, not that it is the address you actually meant to use.
- Double check the network, not just the address. An address can be perfectly valid and checksummed on Base while still being the wrong destination if the asset or intended chain is different.
Why this is worth understanding, not just trusting
You do not need to calculate a checksum by hand to benefit from it, your wallet does that automatically. But understanding what that mixed case text actually represents changes how you treat it. It is not decoration and it is not something to casually retype from memory. Treating a checksummed address as a precise string, one where every character and every case matters, is a small habit that lines up with how the system was actually designed to protect you.
Sources: ERC-55: Mixed-case checksum address encoding, Add chain id to mixed-case checksum address encoding