Verified vs likely: how we prove which wallet a trader uses

Why a wallet is only marked verified when an on-chain transaction proves it, what likely means, and how to use both labels in your product.

Every wallet the API returns carries one of two labels: verified or likely. The difference is the most important thing in the dataset, so it is worth knowing exactly what each one promises.

The problem

A trader’s fomo profile shows their trades, but traders often run several wallets, and many tools link a handle to a wallet by guesswork: similar timing, similar tokens, a wallet that “looks like” theirs. Guesswork is fine for browsing. It is dangerous when a bot copies trades or when research attributes a dump to a named person.

What verified means

We mark a wallet verified only when an on-chain transaction moved that wallet’s balance in step with one of the trader’s swaps. The trade the trader reported and the on-chain transfer are the same event. That is proof, and it is checkable on-chain by anyone.

Traders add wallets over time, so a record is a snapshot of what we knew when we last looked. That is why every trader lookup carries asOf.walletsCheckedAt.

What likely means

likely means there is evidence linking the wallet to the trader, but not that proof. It is still useful: it is often right, and it tells you where to look. It is never upgraded to verified by volume of circumstantial evidence, only by a matching transaction.

What you will not see

  • Guessed wallets marked verified. If the proof is not there, the label says so.
  • One label for a whole trader. Status is per wallet and per chain: a trader can have a verified wallet on one chain and a likely one on another.
  • Silent zeros. A trader nobody has checked has checked: false, not an empty wallet list pretending to be an answer.

Using the labels in a product

Use caseUse
Copy-trading, automated alertsverified only
Trader profile pages, dashboardsBoth, with the label visible
Research, due diligenceBoth, and record walletsCheckedAt
Attributing an address to a personverified and conflict: false

A simple filter in Python:

proven = [w["address"] for w in trader["walletList"] if w["status"] == "verified"]

Why this matters for pricing

Because the evidence work happens once and lands in our wallet map, reading it back is cheap. That is why a wallet lookup costs 500 credits and why a lookup that finds nothing costs nothing.