Step-by-step
- Copy the address from Receive or an explorer you typed. Do not copy from a random QR in a DM. Receive on any EVM net shows the same 0x with EIP-55 casing.
- Run the encoder on this page. Paste lowercase or mixed-case. The widget uses the same mixed-case rule as the wallet. Never paste a seed.
- Paste the result into Send on the correct network. Checksum-valid is still the wrong chain if the tokens live on Base and you selected Ethereum. Open Send in /app and pick the asset row for that net.
What GaurdWallet rejects
Unit tests feed a dead RPC transport: validation never hits the network. Broken mixed-case (two letters flipped on Vitalik’s public address) returns false. A bc1 or TRON T… string is false on EVM. Missing 0x is false.
| Input | EVM validateAddress |
|---|---|
| Correct mixed-case EIP-55 | true |
| All lowercase 40 hex | true |
| Mixed-case with flipped letters | false → Invalid address for this network |
| 39 or 41 hex chars | false |
All-uppercase hex is unusual; treat it like a missing checksum. Prefer the encoder output or lowercase.
Checksum is not a chain id
The same checksummed 0x is used on Ethereum, Base, BNB Chain, and every other EVM net GaurdWallet lists. EIP-55 cannot tell you which chain holds the USDT. Pair this with Receive’s network warning and, for custom RPCs, the chain-id probe.
keccak256(utf8(lowercase_hex_without_0x))
for i in 0..39: if hash_nibble >= 8: uppercase hex[i]
A valid checksum does not mean the recipient is honest. Confirm addresses out of band.
FAQ
Why does my exchange show all-lowercase? Many UIs strip checksum bits. GaurdWallet still accepts that. Mixed-case is extra protection against typos, not a different account.
Is EIP-55 the same as ICAP? No. ICAP is a different encoding. We use 0x + 40 hex with optional mixed case.
Do Solana addresses use EIP-55? No. Solana is base58 ed25519. Running this encoder on a mint will fail the 40-hex check.