An address poisoning attack plants a lookalike address in a victim's transaction history so that, the next time they copy a recipient from that history, they send funds to the attacker instead. The attacker generates an address whose first and last characters match one the victim uses regularly, then creates a transaction that makes the fake address appear in the victim's recent activity. The attack succeeds when someone checks only the start and end of an address, or copies from history rather than from a verified source.
It is a simple attack with large losses. A 2025 USENIX Security paper measured hundreds of millions of attempts on Ethereum and BNB Smart Chain, and the attack has caught highly experienced holders. For organisations that move funds regularly, it is a process failure rather than a technical one, which means it can be designed out.
How Address Poisoning Works
Blockchain addresses on Ethereum and similar chains are 40-character hexadecimal strings. Wallets, explorers and dashboards routinely shorten them to a prefix and suffix, such as 0x1a2b...9f8e, and people select recipients from recent history instead of typing them. The Carnegie Mellon researchers behind the USENIX paper describe exactly this behaviour as the condition the attack depends on.
- The attacker watches the chain for a victim who regularly sends tokens to a particular counterparty.
- They generate a lookalike address that shares the counterparty's leading and trailing characters. The paper identifies a large attacker group that appears to use GPUs to do this at scale.
- They create a transaction linking the victim and the lookalike, so the fake address appears in the victim's history.
- They wait. Most attempts fail. The ones that succeed can be very large.
The Three Variants
The USENIX paper classifies poisoning transfers into three types, and the differences matter for detection.
- Tiny transfer. The attacker sends a small amount of the same token the victim previously sent to the real counterparty, from the lookalike address to the victim. The lookalike now appears as a sender in the victim's history.
- Zero-value transfer. The attacker calls
transferFromwith a value of zero, naming the victim as sender and the lookalike as recipient. The paper notes that popular token implementations allow callers to specify an arbitrary sender when the value is zero, so the victim's history appears to show an outgoing transfer they never made. The researchers consider this potentially more dangerous than a tiny transfer, because the victim seems to have paid that address before. - Counterfeit token transfer. The attacker deploys a token with a similar-looking name and records a transfer of the same amount the victim sent, from the victim to the lookalike. Because the attacker controls the token contract, it can emit transfers on anyone's behalf.
None of these variants requires access to the victim's keys. They exploit how wallets and explorers present history, which is why wallet hardening alone does not solve the problem.
How Big the Problem Is
The USENIX Security 2025 paper by Tsuchiya, Dong, Soska and Christin measured two years of activity on Ethereum and BNB Smart Chain. It identified 270 million on-chain attack attempts targeting 17 million victims, and 6,633 incidents causing at least $83.8 million in losses, which the authors describe as one of the largest cryptocurrency phishing schemes observed in the wild. They also report that they found 13 times more attack attempts than previous studies.
Chainalysis's analysis of a single campaign that ran from 28 February to 4 May 2024 traced 82,031 seeded lookalike addresses from eight seeder wallets. Only 0.03% of those addresses received more than $100 from victims, but the campaign still netted around $3 million excluding the funds later returned. Its victims had an average wallet balance above $338,900 and an average of 598 transfers, which suggests the attack targets active, well-funded users rather than newcomers.
The $68 Million WBTC Case and the Test Payment Trap
Chainalysis describes the largest case in that campaign. On 3 May 2024 at 09:14 UTC, the victim sent a small transfer to the intended address, which began 0xd9A1b. Minutes later, the victim sent approximately $68 million in wrapped bitcoin to an attacker-controlled address beginning 0xd9A1c. The funds were returned on 9 May after on-chain negotiation, though Chainalysis notes the attacker kept roughly $3 million in price appreciation.
The victim did the textbook thing and sent a test payment first. The test went to the right address. The main transfer did not. A test payment only protects you if the main transfer uses exactly the same address that the test used, taken from the same verified source.
This is the most important operational lesson of address poisoning. Many treasury procedures say "send a test transaction" without saying where the address for the main transfer must come from. If the operator copies the test address from a verified record and then re-selects the recipient from wallet history for the main transfer, the test proves nothing about the transfer that matters.
Why Organisations Are Exposed
Organisations produce exactly the pattern attackers look for: repeated transfers of the same tokens to the same counterparties. Common exposure points include:
- Regular settlements with OTC desks, market makers and exchanges, where deposit addresses are reused.
- Payroll and contractor payments in stablecoins on a predictable schedule.
- Rebalancing between hot, warm and cold wallets, which creates a visible, repetitive flow between known addresses.
- Multisig proposers who build transactions by pasting a recipient from an explorer page or a previous proposal.
- Signers who verify only the truncated address shown on a hardware wallet or signing interface.
The last two are closely related to the verification failures discussed in our guide to crypto multisig security: a quorum of signers adds no protection if every signer checks the same shortened address against the same poisoned history.
Controls That Remove the Attack Surface
1. A controlled address book as the only source of recipients
Every outbound destination should come from an approved address book, never from transaction history, explorers, chat messages or email. Adding or changing an entry should be a controlled change: requested by one person, approved by another, and confirmed with the counterparty through an independent channel such as a call to a number already on file. This is the same principle that stops payment-redirection fraud in traditional finance, and it fits naturally into the approval workflows described in our treasury management security guide.
2. Enforce the allowlist technically
Policy is stronger when the signing platform enforces it. Custody platforms and policy engines can restrict transfers to allowlisted destinations, and smart account setups can use guard or module logic to do the same on-chain. Transfers to new addresses should require an elevated approval path and, for material amounts, a time delay.
3. Verify the full address, not the edges
Lookalike generation targets the characters people check, which is usually the prefix and suffix. Verification procedures should compare the full address, ideally by software that checks the destination against the address book entry rather than by eye. Where humans must verify, check a segment from the middle of the address as well as both ends.
4. Make test payments meaningful
Write the test payment procedure so that the main transfer must reuse the exact destination of the test, taken from the address book, and so that the counterparty confirms receipt of the test through an independent channel before the main transfer is approved.
5. Reduce what history can do
Configure wallets and dashboards to hide zero-value transfers and unknown tokens where the option exists, and disable "recent recipients" shortcuts for treasury operators. These are secondary controls. They reduce the chance of a mistake but do not replace an enforced allowlist.
6. Train for this specific failure
General phishing awareness rarely covers address poisoning. Show operators and signers real examples of zero-value and counterfeit token transfers in their own wallet history. Our guide to building a crypto security awareness programme covers how to make this kind of training stick.
Detection: Treat Poisoning Attempts as Reconnaissance
Poisoning transfers land in your history before any loss occurs, which makes them an early warning. A monitoring rule that flags inbound tiny transfers, zero-value transferFrom events and transfers of unknown tokens involving any treasury address, and compares the counterparty against address book entries for prefix and suffix similarity, tells you which flows are being targeted. That information should go to the treasury team, not just the security team, because it identifies which counterparties need extra verification. Our guide to Web3 SIEM and security logging covers how to route on-chain alerts.
If Funds Are Sent to a Poisoned Address
- Act within minutes. Identify the token, the receiving address and the time, and stop any further scheduled transfers to the same counterparty.
- Contact the token issuer if the asset is one whose issuer can freeze balances, and provide transaction hashes.
- Alert exchanges and analytics providers so that onward deposits can be flagged. The Chainalysis campaign analysis shows funds moving through centralised exchanges and DeFi platforms, where early alerts give the best chance of interception.
- Report to law enforcement and preserve evidence of the poisoning transfers as well as the loss.
- Run a post-incident review focused on the process step that allowed an unverified address to be used, and fix that step.
Our incident response plan guide covers how to build these steps into a tested playbook.
Frequently Asked Questions
What is an address poisoning attack?
An address poisoning attack plants a lookalike address in a victim's transaction history, using a tiny transfer, a zero-value transfer or a counterfeit token transfer, so that the victim later copies the fake address from history and sends funds to the attacker.
How does a zero-value transfer scam work?
The attacker calls the token's transferFrom function with a value of zero, naming the victim as sender and a lookalike address as recipient. Many token implementations allow this, so the victim's history appears to show a previous payment to the lookalike address, making it look trustworthy.
How much has been lost to address poisoning?
A USENIX Security 2025 study of Ethereum and BNB Smart Chain over two years identified 270 million attack attempts targeting 17 million victims, with 6,633 incidents causing at least $83.8 million in losses.
Does sending a test transaction prevent address poisoning?
Only if the main transfer uses exactly the same address as the test, taken from a verified source. In the May 2024 WBTC case, the victim's test payment went to the correct address but the main $68 million transfer went to a lookalike.
How can a crypto treasury prevent address poisoning?
Use an approved address book as the only source of recipients, change it only through dual approval and independent confirmation, enforce allowlists in the signing platform, verify full addresses by software, and monitor for poisoning transfers as an early warning.
