Validate wallet addresses for format errors, wrong-network risk, and address-poisoning patterns before sending or publishing payment details. Use when checking a USDT address or payment setup.
EVM addresses are 20 bytes (40 hex characters), prefixed with 0x. Always verify length firstâany deviation indicates a malformed address. Valid characters are 0-9 and a-f (lowercase) or A-F (uppercase). Modern wallets implement EIP-55: mixed-case checksum encoding where certain letters must be uppercase based on a hash of the address. An all-lowercase or all-uppercase address lacks checksum protection and is higher risk for transcription errors.
EIP-55 validation rule: Convert the address to lowercase, hash it with Keccak-256, and compare each hex digit. If the hash digit is 8 through f, the corresponding character in the original address must be uppercase. Sending funds to a checksum-valid address that doesn't match this rule is a strong indicator of error.
TRON uses Base58Check encoding, producing addresses starting with T (mainnet) or N/X (testnet/nile). TRC-20 tokens use the same address format as TRX. Length should be 34 characters after the prefix. TRON addresses are not case-sensitive but should be copied exactlyânever re-type them. Some wallets display both hex (0x...) and Base58 formats; verify they represent the same wallet.
Solana addresses are Base58-encoded, typically 32-44 characters, starting with specific characters (not all Base58 chars are valid first characters). Unlike EVM, Solana has no native checksum in the address formatâvalidation relies on length and valid Base58 characters only. Use solana address-lookup-table or similar CLI tools to verify validity before transactions. The string must contain only characters from the Base58 alphabet: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz.
Address poisoning exploits human attention span by sending dust transactions from addresses that visually mimic part of your recipient address. Attackers generate addresses sharing the same first 4-6 and last 4-6 characters as your real address, then send a tiny dust amount (often <$1) to your wallet.
Defense protocol: Never paste addresses from transaction history. Maintain a curated address book in your wallet. Before any transfer, double-check the full address character-by-characterânever rely on truncated displays. For high-value transfers, verify one character group at a time, looking away between checks to reset pattern recognition.
Before broadcasting any transaction:
Agents must NEVER:
Agents must refuse to receive, store, or transmit seed phrases or private keys. Tell the user to keep them offline in their own secure storage.
Pre-transaction warning:
â ď¸ FINAL VERIFICATION REQUIRED
You are about to send [AMOUNT] [TOKEN] to:
[FULL ADDRESS]
Network: [CHAIN NAME]
Estimated network fee: [FEE]
Verify the address character-by-character. Is this address from your verified address book?
Address poisoning alert:
đĄď¸ ADDRESS POISONING DETECTED
A transaction was received from an address that resembles one of your recent recipients:
- Received from: [ATTACKER_ADDRESS]
- Resembles: [YOUR_RECIPIENT]
Do NOT use addresses from transaction history. Use your address book only.
Seed phrase security warning:
đ CRITICAL SECURITY NOTICE
NEVER share your seed phrase. No legitimate service, support team, or developer will ever ask for it. Anyone with your seed phrase has complete access to your funds.
Suspicious contract interaction:
â ď¸ CONTRACT APPROVAL WARNING
You are granting [SPENDER_ADDRESS] permission to spend your [TOKEN].
- Max spend: [AMOUNT/UNLIMITED]
- Contract: [CONTRACT_ADDRESS]
Verify this spender is trusted. Unlimited approvals allow the contract to drain your balance.