Cookie Settings

We use cookies to improve your experience. Essential and analytics cookies are automatically enabled. View cookie preferences

    Skip to main content
    Illustrative neon photocopier in a rainy alley printing glowing purple wallet-address cards with identical ends while a cyan coin slips into a forged copy.
    High
    Wallet Security

    The Four-Minute Twin: Address Poisoning on Base, Measured

    Published: November 1, 2026Editorial policy
    13 min read

    Cheap gas, fast hands, and a lookalike waiting in your history.

    You pay someone in USDC. Before the coffee cools, a second address turns up wearing the same face. No stolen keys. No signature from you. Just a forged-looking line waiting for your next copy-paste. We watched twenty minutes of Base, counted 2,101 zero-value entries and timed the twins. The interesting part is not the disguise. It is how quickly the wardrobe department works.

    The Scheme

    An automated operation watches real USDC payments on Base, generates an address matching the recipient's first and last four characters, and uses zero-value transferFrom calls in cheap batches to plant that twin in the payer's history. The bet is that the next repeat payment is copied from history instead of a verified contact.

    Twenty Minutes. One Busy Photocopier.

    On 20 October 2026, between 16:01:57 and 16:21:55 UTC, the desk read every USDC transfer event on Base across 600 consecutive blocks, numbers 52,861,385 to 52,861,984. That window held 62,009 USDC transfers. 2,101 of them moved exactly zero USDC, landing in the history of 1,650 different wallets.

    A transfer of nothing is not a payment. It is a calling card. A zero entry can have legitimate explanations; zero alone is not a conviction. But a recipient dressed to resemble someone the payer already used is rather more interesting. In those matched cases, the entry is the product: a calling card slipped into a place you normally trust. The photocopier is not printing money. It is printing somewhere for your money to go.

    Method note: we queried the official USDC contract on Base through a public node, then compared each zero-value transfer with the real, non-zero USDC payments made by the same wallet in the same window. Anyone with an RPC endpoint can rerun the same block range and get the same events. No wallet owner was contacted or identified.

    The Twin Beats the Coffee

    Of the 2,101 zero-value events, 1,534 had a recipient matching the first four and last four hexadecimal characters of a recipient in a genuine, non-zero payment by the same wallet inside our window. That is about 73%. The match uses the hex characters, not the “0x” prefix. It is a measured lookalike criterion, not proof that every zero event is hostile.

    In 1,520 matched cases the genuine payment preceded the zero-value event. Their median gap was 115 blocks: roughly 230 seconds at Base’s two-second block cadence, just under four minutes. A quarter arrived within about two and a half minutes; nine in ten within about eleven. Those timings describe the ordered matched subset, not all 2,101 entries.

    That is the difference between scattered junk mail and a letter addressed after watching your postman. The recipient is not merely similar to somebody somewhere: it resembles a counterparty this wallet used in the observed window. The sequence is consistent with automated monitoring and quick deployment. It does not tell us who runs the operation, which software they use or whether the same person owns every twin.

    The attack’s best prop is freshness. You remember making a payment; a second familiar-looking row appears while that memory is still warm. The history now offers two candidates for the next transfer. One has earned the place. The other has hired a costume.

    The Signature That Was Not Yours

    The trick separates two things a transaction list can make look identical: who submitted the transaction and which addresses appear inside a token’s Transfer event. The submitter signs the transaction. A token event can still name another address as the apparent sender. A row with your address in it is not, by itself, evidence that you signed anything.

    ERC-20 requires zero-value transfers to be treated as normal transfers and to emit the Transfer event. In Circle’s published implementation, a zero-value transferFrom can pass the amount-versus-allowance check even when the allowance is zero, subject to the contract’s other checks. This is not permission to move a positive balance. It is enough to write the zero-value entry. No secret key has to be stolen for that step. Published code explains the mechanism; we did not establish the active implementation at the historical blocks or decode the call path of every sampled event.

    Whether an explorer or wallet displays, labels or suppresses the event depends on that service. If it includes the event in token history, the apparent recipient can sit beside the real one. The lure depends on treating that display as a trusted recipient list. The blockchain records the event accurately; the dangerous inference is that a recorded recipient must be one you chose.

    We do not publish a real payer or recipient from the sample, even masked. The visual mechanism needs no victim exhibit: two different full addresses can share the displayed prefix and suffix while differing in the hidden middle. At four hex characters on each end, only eight of forty hex characters are being compared. The other thirty-two do not disappear. The screen merely declines to introduce them.

    This is not a cryptographic collision, a duplicate private key or an attacker taking over the genuine address. It is a collision in the abbreviated display. Same dinner jacket at the door; entirely different gentleman inside.

    Get alerted when a new scam drops

    No spam · Real investigations only

    The Batch Gets a Group Discount

    In our sample, the submitters grouped zero-value entries into batch transactions; Base itself does not manufacture the twins. The 2,101 zero-value transfers rode in only 247 transactions, and the largest single batch carried 217 entries. Volume is cheap when one envelope holds two hundred letters.

    We pulled the receipt of one batch that planted 120 poisoned USDC entries. Its total fee, execution plus the Layer 1 data charge Base passes on, was 0.0000132 ETH. That works out to about 0.00000011 ETH per fake line in a stranger's history.

    That price is the strategy. Base's own documentation explains that its fees combine a small execution charge with an L1 security fee, and blob data introduced by EIP-4844 made that data cheaper. Good news for everyone paying for coffee onchain. Equally good news for the gentleman mass-printing doppelgängers.

    The fee observation is one receipt, not a tariff for the entire campaign. It excludes the work of generating lookalike addresses, infrastructure and any other transactions. Fees also vary. We can demonstrate that this batch was inexpensive to submit; we cannot calculate an operator’s profit without knowing successful payments and wider costs. The invoice is small. The business accounts are not in our possession.

    The Arithmetic Behind the Queue

    There is another way to read our sample that a headline count misses. The 2,101 zero-value events are 3.39% of the 62,009 USDC Transfer events: about one in thirty. Across the recorded 19 minutes and 58 seconds, that is roughly 105 zero-value entries per minute. These are calculations from our window, not a new dataset or a daily forecast. And they count all zero-value events, not only the tailored subset.

    The 247 transactions carried an average of 8.51 zero-value entries each. The biggest, at 217 entries, accounts for about 10.3% of the entire zero-value count by itself. That is why “number of transfers” and “number of transactions” must not be used interchangeably. One submission can write many lines. Counting every line as a separate attacker would turn one man with a printer into a convention.

    Likewise, 1,650 distinct wallets is not 1,650 identified people. One person can use several wallets; one service can represent many people. Nor do 247 transactions establish 247 operators. Our distinctive finding is the combination of timing, visible-end matching and batching in the same bounded USDC sample. We make no claim that no one else has ever studied those features. The desk’s contribution is this particular measurement and its transparent denominators.

    The Fourteen That Do Not Get a Stopwatch

    Subtract 1,520 ordered matches from 1,534 total matches and fourteen remain. They meet the same-window resemblance criterion but are outside the subset where the genuine payment preceded the zero event. We do not fold them into the response-time median or invent a story about why they are there. Similarity and chronology are different tests; passing one does not automatically pass the other.

    The remaining 567 zero-value events did not meet our same-wallet, same-window match criterion. That does not classify them as safe or malicious. A genuine payment outside the twenty-minute window would not be available for this comparison. Other resemblance patterns would also fall outside a first-four/last-four rule. Our filter can identify what it matched, not explain everything it missed.

    There is a second boundary at the end of the window. A genuine payment near the closing block may have a twin arrive after collection stopped. The observed delay distribution describes pairs we could see, not every attack’s full response time. We did not follow later payments into the twins, cluster operators or calculate losses. Twenty minutes is a useful witness. It is not an omniscient narrator.

    An Old Trick, Not a New Verdict

    The trick itself is old. The peer-reviewed USENIX Security 2025 study by Tsuchiya, Dong, Soska and Christin measured 270 million poisoning attempts against 17 million victims over two years on Ethereum and BNB Smart Chain, with at least 83.8 million USD in confirmed losses.

    What changes on a cheap Layer 2 is the economics of failure. Low submission costs can make repeated failed attempts economically tolerable. A large misdirected payment could change that calculation, but our sample supplies no success rate or profit estimate. Cheap attempts are not the same thing as a proven profitable campaign.

    Industry telemetry points the same way. Webacy reported in April 2026 that poisoning events in its monitored wallets rose about fourfold between October 2025 and March 2026, and that Layer 2 networks such as Base account for a growing share. Our 20-minute snapshot is a single window, not a trend line, but it captures a busy window. It cannot establish that every hour looks like this.

    The Next Payment Is the Prize

    The matched pattern involves wallets making genuine, non-zero payments. We cannot tell whether those payments were payroll, suppliers, exchange deposits or friends settling a bill. Those are possible repeat-payment settings, not identities or purposes established by our logs. The common danger is simpler: a recipient selected from history rather than independently verified.

    We covered the retail version in the $0.08 USDC poisoning case, where one copied lookalike cost $9,850. The Kraken and HTX dust-attack investigation showed the same lookalike logic aimed at exchange flows. Base does not invent a new crime. It runs the old one at industrial volume and minute-level speed.

    One honest limit: our measurement shows attempts, not losses. We did not trace whether any of these 1,650 wallets later paid a twin. The danger is in the setup, and the setup was present in this window. Nobody needs to manufacture a victim to explain why it matters.

    Do Not Hire History as Your Accountant

    Start from the recipient, not the last row. Obtain the address through an independently verified recipient channel and save it as a labelled contact or allowlist entry. A label you assigned after checking is useful; a name displayed by an unknown sender is not the same assurance. Transaction history is a record of events, not a guest list approved by you.

    Compare the full destination. Check the complete address against that verified source on the correct network. Reading six characters in the middle can expose a simple imitation, but it is not a guarantee: attackers can select resemblance patterns. Do not substitute a longer glance for an independent source. The middle is where the costume often tears; the full address is still the identity.

    Treat unexpected entries as untrusted. A zero-value or dust event can be suspicious without moving funds. Hiding spam can reduce the lure if the wallet supports it, but does not remove the event from the chain or certify the remaining rows. A zero event alone is not proof that your keys were compromised. Revoking approvals does not prevent someone emitting another zero-value event.

    For a large transfer, test the verified destination. Send a small amount and ask the actual recipient, through the independently verified channel, to confirm receipt. Check the complete destination and transaction on BaseScan. Then reuse that exact saved destination. Sending a small test to the twin and seeing it onchain proves only that you sent the test to the twin. The dress rehearsal must have the right actor.

    If you already paid the wrong address, preserve evidence. Keep the transaction record and correspondence privately; contact the sending service promptly and use our official crypto-theft reporting guide. Do not pay a recovery stranger to “unlock” the transfer. Our address poisoning prevention guide gives the step-by-step routine. For this case, verify the actual transaction and full recipient on BaseScan; a general risk label cannot authenticate the person you meant to pay.

    Vocabulary, Decoded

    The con's vocabulary, translated before the villain changes hats.

    Address Poisoning

    Sounds like: Someone broke into the wallet and changed the address.

    Reality: A lookalike recipient is planted in activity history. The lure aims at a later payment you authorise yourself; the planted entry does not redirect an existing payment.

    Zero-Value Transfer

    Sounds like: A payment of zero must be harmless or impossible.

    Reality: A token can emit a Transfer event for zero. No tokens move in that event, but its addresses can still become a misleading history entry. Zero is an amount, not a character reference.

    Vanity Address

    Sounds like: A duplicate of the real recipient’s wallet.

    Reality: A separately generated address selected for a visible resemblance. It does not share the original private key. Matching the shown ends impersonates the display, not the cryptography.

    Dust Transaction

    Sounds like: The same thing as a zero-value event.

    Reality: Dust moves a tiny positive amount; zero moves none. Both can be used to attract attention to a recipient. This measurement counts zero-value USDC events, not all dust or every token.

    Layer 2 (L2)

    Sounds like: Cheap fees mean the history has been vetted.

    Reality: Base processes transactions with its own execution fees and L1 data costs. Lower cost helps legitimate users and can lower spam submission costs. Cheap is not checked.

    Address Book Allowlist

    Sounds like: Any recipient with a friendly label is verified.

    Reality: A destination you independently checked and deliberately saved. Its value is the verification step, not the label. Saving the twin only gives the wrong gentleman a reserved table.

    “Same face at both ends.”

    Different crook in the middle.

    Frequently Asked Questions

    Share This Article

    Sources & Citations

    Primary evidence: the desk's own read of USDC Transfer events on Base, blocks 52,861,385–52,861,984 (20 Oct 2026). Peer-reviewed research, industry telemetry and official fee documentation provide context.

    [1]
    Blockchain Address Poisoning (USENIX Security 2025)

    Tsuchiya, Dong, Soska, Christin / USENIX · 13 Aug 2025

    [3]
    Network Fees

    Base Documentation · 1 Sept 2026

    [4]
    EIP-4844: Shard Blob Transactions

    Ethereum Improvement Proposals · Date not published or not verified

    [5]
    USDC Contract Addresses

    Circle · Date not published or not verified

    [6]
    USD Coin (USDC) token on Base

    BaseScan · Date not published or not verified

    [7]
    ERC-20: Token Standard

    Ethereum Improvement Proposals · Date not published or not verified

    [8]
    FiatTokenV1 — transferFrom and _transfer implementation

    Circle · Date not published or not verified

    Verification: All blockchain transactions and addresses referenced in this article can be independently verified through the linked blockchain explorers. We encourage readers to conduct their own verification.

    Methodology: Every case needs at least two independent sources before publication, plus verifiable on-chain evidence whenever a public transaction trail exists. Full standards: /methodology

    Legal notice: This assessment is based on publicly available data, including on-chain records, official statements and reported incidents. It is journalistic and educational analysis, not legal advice, an accusation of criminal conduct or a court finding. Named companies, projects, domains, wallets and individuals are described as reported by the cited sources; a company name may appear because fraudsters impersonated it, not because the company did anything wrong. If you believe something is inaccurate or out of date, write to cryptostrapon@pm.me and we will correct it and log the change. Editorial policy