← Back to Blog

Address poisoning attack: how it works and how to stop it

By Al Jobson · 10 min read · September 2026

Address poisoning attack surface across wallets

On 3 May 2024 a single Ethereum wallet sent 1,155 WBTC, worth $68 million at the time, to an attacker in a textbook address-poisoning attack[1]. The victim had just moved the same funds between two of their own wallets. The attacker watched the transaction, generated a vanity address whose first and last six characters matched the intended recipient, sent a $0 transfer from it to appear in the sender's history, and waited. The next transfer copied the wrong address out of history. Funds gone in one click. Here is how the attack works, why the UI makes it work, and what actually helps in 2026.

The mechanic, in one page

An Ethereum address is 42 characters: 0x plus 40 hex characters. No wallet UI shows all 40. Metamask, Trust, Rabby, Etherscan and every mobile explorer truncate to 0xABCD…1234 or similar. That truncation is the vulnerability. If an attacker generates a private key whose address matches the first 4 to 8 hex characters and the last 4 to 8 hex characters of your target, the two addresses look identical in every wallet UI shipping today[2].

Generating a vanity address that matches an 8-hex prefix and 8-hex suffix takes about 2^64 elliptic-curve keypair generations. Infeasible on a laptop, trivial on a rack of GPUs. Halborn put the cost at hundreds of dollars for an 8+8 match; commodity Profanity-style tools crank out 6+6 in minutes[3]. The economics work at that price because one successful hit pays back the entire GPU farm.

Once the attacker has the vanity address, they push a transaction into the victim's history. Three variants:

Pre-sign risk lab: transaction simulation before signing

Scale, 2023 to 2025

Address poisoning is high-volume and low-hit-rate. Bitrace and PeckShield indexed more than 270,000 unique poisoning senders on Tron alone by end of 2024[5]. Cyvers put cumulative EVM losses at $83M across 2022 to 2024, with a long tail of individual $1k to $5k victims and a small number of very large ones[6].

Date Chain Amount Notes
May 2024Ethereum1,155 WBTC ≈ $68MAttacker returned funds after negotiation[1]
Jan 2024Arbitrum$4.7MUSDC to lookalike, PeckShield alert[7]
Dec 2023Ethereum$1.7MChainalysis timeline[8]
Sep 2024Ethereum$32MInstitutional victim, 0-value ERC-20 variant
Q1 2025Tron$1.8M / month avgBitrace quarterly report[5]

Two patterns show in the data. First, the attack is chain-agnostic. EVM, Tron and Solana each have their own variant because each has a truncated-address UI. Second, retail loss is per-victim small and per-attacker high, exactly the profile that funds industrialised operation.

Why the UI is the vulnerability

The technical primitive, a 40-hex address, is not the problem. The problem is what wallet UIs did with it. Three UX shortcuts, each individually reasonable, combine into a class of attack:

  1. Truncated display. Users read the first and last few characters, never the middle. Vanity-address generation defeats prefix+suffix matching, not full-string matching.
  2. Transaction history as address book. The most common way retail users select a recipient is to scroll transaction history and tap. History includes anything on-chain, not just what the user chose.
  3. Zero-value events treated as normal. Explorers and wallets display every emitted Transfer event without distinguishing "value transferred" from "event fired." Attackers exploit this to make hostile transactions look like historical friendly ones.

The fix is on the client. Every technical mitigation below closes one of these three shortcuts.

Defenses that actually work

Defense What it fixes Effort
Address bookNever copy from historyUser discipline, one-time save
ENS / SNS namesHuman-readable recipientSender + recipient both need it[9]
Full-address confirmationTruncation attackWallet feature: show all 42 chars on send
Zero-value tx filteringPoisoned historyWallet feature: hide 0-value incoming
Spam-token filteringFake USDT/USDC variantWallet feature: verified token list
Lookalike warningRecipient similar to prior useWallet feature: Levenshtein / prefix-suffix check
First-time-recipient flagAttacker's fresh addressWallet feature: hard-block or warn
Transaction simulationShows real transfer + recipientBlockaid, Rabby, Wallet Guard[10]

Wallet-by-wallet, where the mitigations are shipped

Wallet Address book 0-value filter Lookalike warn 1st-time flag
MetaMaskYes (Contacts)Partial (2024 update)[11]No nativeNo
RabbyYes (Whitelist)YesYesYes[12]
Trust WalletYesPartialNoWarning banner
PhantomYesYes (Solana spam filter)[13]NoWarning
Ledger LiveYesNoNoNo
Coinbase WalletYesYesYesYes
VEYRNOXYesYes (default)Yes (Levenshtein + prefix-suffix)Hard warn on unknown recipient

The pattern is clear. Wallets that treat the send screen as a security surface (Rabby, Coinbase Wallet, VEYRNOX) ship real defenses. Wallets that inherit their history view straight from a chain explorer ship the attack surface with it.

Practical guidance for individual users

What the industry still needs to fix

Explorers should stop rendering zero-value events as identical to real transfers. Etherscan's 2024 filtering pass helped, but did not close the ERC-20 event variant. Wallets should default to hiding zero-value incoming transactions instead of making it a setting. Every send screen should show the full recipient address and flag first-time recipients above a value threshold. None of this is technically hard. Every wallet SDK team has known about the attack since at least the SafeMoon variant in 2022[14].

Chain-level answers have been proposed (EIP-3770 chain-specific addresses, payment request URIs, and account abstraction with signer-side allowlists[15]), but adoption is slow. The reliable defense in 2026 is client-side: use a wallet that ships the mitigations, and never trust an address you copied off a screen without reading every character.

Bottom line

Address poisoning is not a cryptographic failure. It is a UX failure the industry has known about for four years and shipped mitigations for unevenly. One $0 transfer, a truncated display, and a copied address is all that stands between a wallet and a total loss. The fix is boring: address book, full-address verification, first-time-recipient warning, transaction simulation. Every one of those exists in production wallets today. Use a wallet that ships them, and stop copying addresses from your history.

Address safety in VEYRNOX

VEYRNOX filters zero-value incoming events by default, flags recipients whose prefix or suffix matches a previously-used address, and requires an extra confirmation for first-time recipients above a user-set threshold. Download or read the security model.

Sources

  1. CertiK, "$68M WBTC address-poisoning post-mortem." certik.com
  2. Chainalysis, "Address Poisoning Explained." chainalysis.com
  3. Halborn, "Vanity address generation cost." halborn.com
  4. SlowMist, "Zero-value transferFrom poisoning technique." slowmist.medium.com
  5. Bitrace, "2024 Tron Poisoning Report." bitrace.io
  6. Cyvers, "Address Poisoning 2022-2024 Retrospective." cyvers.ai
  7. PeckShield alert stream, Twitter/X. x.com/peckshieldalert
  8. Chainalysis, "2024 Crypto Crime Timeline." chainalysis.com
  9. ENS Documentation. docs.ens.domains
  10. Blockaid, transaction simulation. blockaid.io
  11. MetaMask, "Address-poisoning mitigations." support.metamask.io
  12. Rabby, whitelist and first-time-recipient warnings. rabby.io
  13. Phantom, "Solana spam-token filtering." phantom.com
  14. Elliptic, "SafeMoon address-poisoning variant." elliptic.co
  15. EIP-3770, Chain-specific addresses. eips.ethereum.org
  16. Etherscan, "Zero-value transfer display policy." info.etherscan.com
  17. Coinbase Wallet, security features. help.coinbase.com
  18. Trail of Bits, "Address-poisoning threat model." blog.trailofbits.com
  19. Trust Wallet, address-verification docs. community.trustwallet.com
  20. Cointelegraph, coverage of $68M WBTC case. cointelegraph.com
  21. ScamSniffer, address-poisoning tracker. x.com/realScamSniffer
  22. Web3 Antivirus, wallet risk scoring. web3antivirus.io

Al Socrates Jobson, Co-Founder & CTO, Veyrnox LTD · ← Back to Blog