Skip to content
SpendTheBits

Safety · 7 min read

Address poisoning: the copy-paste crypto scam and how to stop it

By , Founder, SpendTheBits ·

In short

Address poisoning is a scam where an attacker plants a look-alike address in your transaction history with a tiny or zero-value transfer, hoping you copy it for your next payment. It works because wallets and explorers shorten addresses. Defeat it by never copying from history, using saved contacts, and sending a small test first.

$62M
lost by two victims to address poisoning since DecemberSource: Cointelegraph

Most crypto scams need you to click something or sign something. Address poisoning needs far less. It waits for you to do something perfectly normal: pay a person you have paid before. The attacker does not break into your wallet. They simply tidy up your history with a decoy and let your own habits do the rest.

This is a quiet, patient attack, and it is not a small problem. Security researchers reported that two victims lost over $62 million between December and January [4]. Address poisoning has been a recurring headline for years because it pays off from a single mistake. Below is how it works step by step, what the reported numbers say, and the habits that defeat it.

A gold magnifying glass revealing a crack in one of two near-identical address bars

The look-alike address: why the first and last characters are enough

An address is a long string of letters and numbers, and almost nobody reads all of it. Wallets and block explorers usually show a shortened version, with the middle replaced by dots. Attackers know this, so they aim for the part you do see. Using a vanity address generator, they search for a fresh address that matches the first and last few characters of one you have used [1].

Once the middle is hidden, the fake and the real address look the same on screen. One example in Etherscan's write-up shows a real address and a bad one that share the same start and the same ending, with only the middle different [1]. Researchers describe the same trick: the poisoner generates full addresses that match the first and last few characters you see, while the middle differs [4].

The effort rises with every extra character the attacker must match, which is why some explorers show more of each end of an address [1]. Still, matching a handful of characters is cheap for a machine. Your eye is the weak point, because a person skims, sees a familiar start and end, and moves on. That tiny shortcut in attention is the entire foundation of the scam, and it costs the attacker almost nothing to exploit.

The SpendTheBits Send screen where an address is entered and checked before a payment
The Send screen is the last checkpoint before a payment leaves your wallet.

The dust transfer that plants the decoy in your history

A look-alike address is useless if it never reaches you. So the attacker pushes it into your transaction history. The simplest way is a tiny transfer of a real token such as USDC or USDT sent from the fake address to yours, hoping you later copy that spoofed address by mistake [1]. Because the amount is trivial, you may never notice it arrive.

A second route uses a zero-value transfer. Attackers call the transferFrom function with a value of zero, and since every address defaults to zero approval, the Transfer event is still emitted and shows up in your history [1]. This is how a record of a payment you never made ends up looking like part of your normal activity.

Timing makes it sharper. Attackers watch the chain for frequent or large stablecoin transfers and create spoofed events as soon as one minute after the real one [1]. Imagine you pay someone, then need to pay again two minutes later. You assume the newest address in your history is right and copy it, and the money goes to the attacker [1]. Cheaper network use may be adding to the noise: Coin Metrics found that 38% of stablecoin balance updates on Ethereum between November 2025 and January 2026 were under a single penny, consistent with millions of wallets receiving tiny poisoning deposits [4].

The copy-paste moment and what it has cost people

The attack only pays off at one instant: when you go to send and reach for your history instead of your contacts. You open a past transaction, tap the address, paste it into the send box, and confirm. Nothing looks wrong because the start and end match. The transaction is final, and a transaction sent on Ethereum is irreversible [2].

Because one big mistake is enough to cover the attacker's costs, the attack keeps coming back [1]. The reported losses show why. One victim lost $12.2 million in January by copying the wrong address from their transaction history, following a similar $50 million loss in December [4]. In an earlier case, a victim mistakenly sent $20 million to a spoofed address whose first and last characters closely matched the real one [1].

Smaller cases add up too. A spoofed transfer shown inside a wallet interface led one victim to copy the wrong receiver and lose about $1.45 million [1]. Web3 Antivirus tracked some of the largest address-poisoning losses over time, ranging from $4 million to $126 million, and said recent incidents show the trend is not slowing [4]. These are not careless beginners. They are people moving real money who trusted a screen that showed them a familiar-looking string.

Fake tokens and spoofed events: the same trick in other costumes

Address poisoning often travels with two helpers. The first is token spoofing. Attackers deploy token contracts with a name and symbol that copy a well-known token, so a fake USDT can sit beside the real one [1]. Because ERC-20 contracts can share the same name and symbol, you cannot rely on those fields for security [3].

The second helper is event spoofing. A contract decides what its own Transfer events say, so a scammer can write one that shows a transfer from a respected address or an airdrop from a known name [1][3]. Legitimate-looking owners and legitimate-looking transfers can both be faked, since the balances and events live in the scammer's contract [3].

The point is that your history is not a trusted record. It is a list of events that anyone can try to write into, and some interfaces blend real and fake transactions in one tab [1]. Etherscan responds by hiding zero-value transfers by default and hiding transfers of tokens with poor reputation, and it shows a reminder when you copy an address from a transfer with warning signs [1]. A good wallet should do the same kind of filtering for you, so decoys never get the chance to sit there waiting.

Habits that defeat address poisoning

The first habit is simple: never treat your history as an address book. Save the people you pay as contacts, and send to the saved entry. Etherscan's own advice for this scam is to use a wallet's contact list or allowlist feature, and to tag frequent addresses with meaningful names [1]. A saved contact cannot be swapped for a look-alike by a stranger's dust.

The second habit is to check the whole address, not the ends. Ethereum.org says to make sure the address you send to exactly matches the intended recipient before sending [2]. When the amount is large, send a small test first and confirm it arrived. A tiny test costs little, and it turns a possible total loss into a minor one.

The third habit is to cut the noise. Hide zero-value and low-reputation transfers where your tools allow it, and treat any unexpected small deposit as bait rather than a gift [1]. Browser tools can help too: Revoke.cash added address poisoning detection to its paid extension tier [5]. For a longer look at limits that catch mistakes before money leaves, see our piece on spending limits and allowlists, and for general self-custody habits, our guide to self-custody.

How SpendTheBits is built to break the trick

SpendTheBits is a fully non-custodial wallet, so the checks below happen on your phone and the keys never leave it. The design target is the two moments the scam relies on: the decoy arriving, and you copying it. For the first, tiny inbound transfers from a look-alike of an address you already paid are hidden from Activity and never trigger a notification, so they cannot sit in your history waiting to be copied.

For the second, the Send screen speaks up before a payment goes out. It warns in plain words when an address looks almost identical to one you have paid or saved, which is the address-poisoning case. It also warns when it is the first time you are sending to that address, and when a first payment to a new address is large, it suggests a small test send first. Every recipient is also risk-screened before the send.

Related protections sit nearby. Unknown inbound tokens are quarantined so a fake token cannot pose as a real balance, and a request that would grant a contract unlimited spending approval is flagged before signing. Your saved contacts and a clear read of the fake token and scam transfer help page round it out. No tool removes the need to look, but these warnings put the right question in front of you at the right second. You can also set spending guardrails for an extra layer.

The SpendTheBits Activity screen listing recent transactions
Look-alike dust is hidden from Activity so it cannot wait there to be copied.

In the app · 3 steps

Send only to addresses you saved

Address poisoning works when you copy an address from history. Save it once instead.

  1. Save trusted recipients

    Contacts keeps the addresses you pay often, so you never copy one from your activity list.

    The SpendTheBits Contacts screen
    The SpendTheBits Contacts screen
  2. Read the recipient before you sign

    Paste or scan the address, then check it on the review screen before you approve.

    The SpendTheBits Send screen with the recipient field
    The SpendTheBits Send screen with the recipient field
  3. Check Activity for look-alike transfers

    A tiny transfer you did not expect is a warning sign, not a recipient to reuse.

    The SpendTheBits Activity list
    The SpendTheBits Activity list

Hold your own keys, keep the yield, skip the middleman.

SpendTheBits is a fully non-custodial wallet for 13 chains, free on iOS and Android.

Frequently asked

It is a scam where an attacker sends a tiny or zero-value transfer from an address that looks like one you use, so it appears in your history. If you copy it for your next payment, the funds go to the attacker.

Almost never. A transaction sent on Ethereum is irreversible, and unless you know the address owner and can persuade them to return it, you cannot retrieve the funds [2].

No. The attacker did not access your keys. They only wrote a decoy into your history and need you to copy it. Ignore the transfer and never reuse that address.

Check the full string for large or first-time payments, or send a small test first. For regular payees, pay from a saved contact instead of your history.

Sources

  1. 1.Address Poisoning Attacks | Etherscan Information Center · Etherscan Information Center · accessed 2026-10-18
  2. 2.Ethereum security and scam prevention | ethereum.org · ethereum.org · accessed 2026-10-18
  3. 3.How to identify scam tokens | ethereum.org · ethereum.org · accessed 2026-10-18
  4. 4.Two Victims Lose $62 Million To Address Poisoning Since December · Cointelegraph · accessed 2026-10-18
  5. 5.Quarterly Update: Q1 2026 | Revoke.cash · Revoke.cash · accessed 2026-10-18

This article is educational and reflects observed data and public sources on the date shown. It is not financial, legal or tax advice. Digital assets can lose value; yields shown are observed, not promised.

STB Weekly, every tuesday

The short version of pieces like this one, plus what moved in AI in finance and agent payments. What you get

Product updates and release notes. No price calls, no spam, unsubscribe in one click. We email you once to confirm before anything else is sent.