02What it actually checks
Whether the string is internally consistent. Most address formats were designed with a checksum, so a single mistyped character breaks it and the tool can tell.
- Legacy Bitcoin addresses (starting 1 or 3): Base58Check — two rounds of SHA-256 over the body, compared against the trailing four bytes.
- Bitcoin Bech32 and Bech32m (starting bc1): the polynomial checksum from BIP-173 and BIP-350, plus a check that the witness version matches the encoding.
- EVM addresses (starting 0x): length and character set first; if the address is mixed case, the capitalisation is recomputed with Keccak-256 per EIP-55 and compared position by position.
- Tron addresses (starting T): Base58Check, plus confirming the version byte is 0x41.
- Solana addresses: Base58 decoding, confirming the result is 32 bytes.
All of that lives in this site's /assets/addr-check.js and calls no external service. Disconnect from the internet and this page produces identical results.
03What it cannot check (the important section)
A valid format is not a correct recipient. A checksum only proves the characters have not been corrupted. It does not know who the address belongs to, and it does not know which chain you meant.
Specifically, it will catch none of these:
- A clipboard substitution. What the attacker swapped in is a perfectly valid address, so it passes.
- The other person gave you the wrong address. Valid, and not the one you wanted.
- The wrong chain. EVM chains share one address format, so the tool cannot know which you intended. That trap is in what a chain is, and what happens when you pick the wrong one.
- The destination is a contract. Formally identical to a user address, and funds sent there may be unrecoverable.
- Go back to the source and verify the address again, middle characters included, not just the ends.
- Send a small amount first and only continue once it lands. Full process in moving coins from an exchange into your wallet.
04Coverage and known limits
| Format | Check performed | Strength |
|---|---|---|
| Bitcoin Base58Check starts 1 or 3 | Double SHA-256 checksum plus version byte | Detects transcription errors |
| Bitcoin Bech32 / Bech32m starts bc1 or tb1 | Polynomial checksum plus version/encoding match | Strong, pinpoints character errors |
| EVM, mixed case starts 0x | EIP-55 Keccak-256 case checksum | Detects transcription errors |
| EVM, all one case | Length and character set only | Weak; the address carries no checksum information |
| Tron starts T | Base58Check plus version byte 0x41 | Detects transcription errors |
| Solana | Only whether Base58 decodes to 32 bytes | Weak; the format contains no checksum |
Anything not listed is not recognised, and the tool says so plainly rather than guessing at an answer.