The check

One call, one clear verdict.

Before a transaction is signed, send the payer and the destination. We compare the recipient against the payer's real transaction history and its on-chain activity, then return a verdict your app can act on.

Verify recipient block
Sending to0x441c…9c7e
Looks like0x441c…3fdf
Recipient history2 tx · fresh
Paid beforenever
→ look-alike of a wallet you trust · do not send
Request
POST /api/pre-send/verify-recipient
{
  "payer":     "0x9c4f…a71b",
  "recipient": "0x441c…9c7e",
  "chain":     "ethereum"
}

// response
{
  "verdict":    "block",
  "reason":     "lookalike-of-trusted",
  "lookalikeOf": "0x441c…3fdf",
  "recipient":  { "txCount": 2, "fresh": true },
  "paidBefore": false
}
Three verdicts

Clear enough to wire into checkout.

No score to interpret. Allow lets the payment through, warn shows a confirmation, block stops it. You decide how each maps to your UX.

allow

Known and safe

The recipient is a wallet the payer has paid before, or an established counterparty with real history. Let it through.

warn

Worth a second look

The recipient resembles a trusted address but has real activity of its own. Show a confirmation before the send.

block

Look-alike drainer

A fresh wallet that copies a trusted counterparty's first and last characters and was never paid before. Stop the send.

The method

Grounded in the research.

The detector follows the payoff-confirmation model from peer-reviewed on-chain phishing research (arXiv:2501.16681): a wallet is only a confirmed threat when the same look-alike first baited the victim and then received a payment, not merely when two addresses share a prefix.

Detection

Prefix and suffix collision

Flags addresses that copy a counterparty's leading and trailing characters, the copy-paste trap.

Detection

Counterfeit-token bait

Catches fake tokens that borrow a real symbol from a contract that is not the legitimate one.

Signal

Counterparty history

Weighs the recipient's real activity, so an established vendor is never mistaken for a drainer.

Get started

Add pre-send protection
to your send screen.

Apply for the pilot cohort. One endpoint, one verdict, no drainers. We respond within 48 hours.