poisoned

How lookalikes are found

Address poisoning: someone makes an address that starts and ends like one you pay, then sends you a tiny amount from it, so it sits in your history next to the real one. Wallets shorten addresses to their ends, so the copy looks right. If you later copy the address from your history instead of from where it came from, you pay the lookalike.

The rule, in full

A check reads the wallet's last 300 successful transactions and counts a lookalike attempt when all four hold:

  1. You did not sign it. Someone else's transaction sent you SOL or a token, or put its address in your history.
  2. The sender is not someone you had paid. It is not the wallet itself, and the wallet had not sent it SOL or a token in the window before this transfer.
  3. It looks like an address you paid (or like the wallet itself), comparing characters in their exact case:
    • the same first 3 or more characters and the same last 3 or more, or
    • at least 5 characters in all, at least 1 at each end (4 + 1, 3 + 2, 2 + 3…), arriving within 24 hours after you paid the address it copies. That timing is how most lookalikes arrive: seconds to minutes after a real payment.
    "Addresses you paid" are every address the wallet sent SOL to, and the owner of every token account it sent tokens to, in the same 300 transactions.
  4. What it sent is dust: nothing, under 0.001 SOL, under 0.001 of a token, or a token the wallet never traded in the window (fake tokens named like real ones fall here).

A transfer from a lookalike that sent more than that is listed under the result but not counted.

Why these numbers: by chance alone, two random Solana addresses share their first 3 and last 3 characters about once in tens of billions of pairs, so a match like that is made on purpose. Making one costs the sender computing time for every extra character, which is why many lookalikes copy only 4 + 1 or 3 + 2 characters; those count only when they arrive soon after a real payment.

You paid a lookalike

When two addresses you paid share their first 3 and last 3 characters, or the later one first sent you dust and shares 5 or more characters with the earlier one, the result says so at the top. It cannot tell which payment was meant: you can.

What a check reads

What a check misses

The drill

What is kept

WhatWhere, for how long
The address you checkSent to the server and to the RPC node that reads its history. The answer is cached for up to 24 hours so a re-check costs nothing. Not written to any database.
A share card (/x/…)Counts only: attempts, addresses imitated, the latest date, how many transactions were read, your drill score if you add it. No address.
Today's totalsEach wallet checked today as a hash salted with a key that is deleted after the day, with its count of attempts, so a wallet counts once a day.
Drill resultsScore, time and streak under a random id this browser made.
VisitsCounts of checks, drills and card views per day, per referring site, and once per visitor per day using a hash of the IP address salted with a key that is deleted after the day. Never the IP address itself.
This browserThe wallets you checked (to show what is new), your best drill and streak. Clear them any time.

Limits

New checks are limited per visitor per hour and per day for everyone. When the day's new checks are used up, wallets already checked today and every shared link still open, and new checks resume at 00:00 UTC.

Check a wallet