What is a checksum?
- Author
- CRYPTO PORT Editorial
- Published
- Updated
- Reading time
- 4 min
In short
A checksum is a small verification value appended to data, and it is why a wallet says 'invalid address' when you mistype one character. Both addresses and seed phrases carry one. It cannot, however, catch a correctly typed address belonging to the wrong recipient, so manual checks still matter.
Key points
- A verification value added to catch input errors
- Present in both addresses and seed phrases
- It detects errors; it does not correct them
- A valid address for the wrong person still passes
Definition
A short value computed from data and attached to it, so a recipient who recomputes it can tell whether the data was corrupted or mistyped.
A legacy Bitcoin address hashes the public key hash twice with SHA-256 and appends the first four bytes. Mistype a character and those four bytes no longer match, so the wallet rejects it before you send. The chance of a wrong address passing by coincidence is roughly one in 4.3 billion.
Ethereum addresses were originally all lowercase with no checksum at all. EIP-55 added one by capitalising certain letters according to a hash of the address. A 0x address with mixed case is in EIP-55 form, and wallets that support it can flag typos.
BIP39 phrases carry a checksum too: four bits of it live in the last of twelve words, so one misspelled word produces 'invalid phrase'. It is not impossible to land on a different valid phrase by accident, though, which is why a restore test right after writing the words down is worth the effort.
Watch out for
- · Passing the checksum does not mean the address belongs to the intended person
- · Checking only a few characters invites addresses crafted to share the same prefix and suffix
- · Run any restore test only on a device you control