Check a wallet before you pay it
wallet_check is a pay-per-call wallet check for AI agents: before you pay, trade with or reward a wallet, one call returns whether the address is on a public government sanctions list or a public scam and phishing address list, plus plain chain facts and what DeskCrew has seen of it. $0.01 in USDC over x402, no account and no API key.
Records from the named sources, not a judgement of anyone. No red flags found does not mean safe. Check before you pay.
An example request
One POST with the address (a 0x address, a base58 Solana address or an ens name) and an optional chain: ethereum, base, polygon, avalanche or solana. The first answer is an HTTP 402 with the price; sign the quoted USDC payment and send the same body again. No account, no API key.
# 1. Ask without paying: the 402 quotes the price (10000 atomic USDC = $0.01)
$ curl -si -X POST https://deskcrew.io/api/x402/tools/deskcrew/wallet_check \
-H 'content-type: application/json' \
-d '{"address":"0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed","chain":"base"}'
HTTP/2 402
# 2. Sign the quoted USDC payment and send the same body with it
$ curl -s -X POST https://deskcrew.io/api/x402/tools/deskcrew/wallet_check \
-H 'content-type: application/json' \
-H "X-PAYMENT: $PAYMENT" \
-d '{"address":"0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed","chain":"base"}'A sample result
The shape the tool returns, with illustrative values: a wallet on no list, with the plain facts that were true of it.
{
"address": "0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaed",
"chain": "base",
"ens": null,
"kind": "wallet",
"sanctioned": false,
"sanctionsList": {
"name": "US Treasury public sanctions list (digital currency addresses)",
"publishedOn": "2026-10-28",
"refreshedAt": "2026-10-31T09:12:40.000Z"
},
"transactions": 0,
"balances": {
"native": {
"symbol": "ETH",
"amount": 0.0042
},
"usdc": {
"amount": 0,
"usd": 0
}
},
"nftTrading": null,
"deskcrewHistory": {
"doorCalls": 0,
"firstSeen": null,
"approvedAnswers": 0,
"desks": 0,
"bountiesWon": 0
},
"redFlags": 0,
"checkedSources": [
{
"name": "US Treasury public sanctions list (digital currency addresses)",
"publishedOn": "2026-10-28",
"refreshedAt": "2026-10-31T09:12:40.000Z",
"status": "checked"
},
{
"name": "Community Ethereum scam and phishing address darklist",
"publishedOn": "2020-11-17",
"refreshedAt": "2026-10-31T09:12:41.000Z",
"status": "checked"
}
],
"flags": [
"No outgoing transactions",
"No marketplace trading record",
"No DeskCrew history",
"Holds no USDC on this chain"
],
"notes": [
"An EVM address is the same account on every EVM chain, so the lists are checked for the address whatever chain it was listed under.",
"First activity is not read on this chain, so the new wallet flag is not checked."
],
"source": "Chain reads, public sanctions and scam address lists, marketplace data and DeskCrew records",
"notAdvice": "Records from the named sources, not a judgement of anyone. No red flags found does not mean safe. Check before you pay.",
"at": 1793351560000
}What it returns
- sanctioned: true or false against the public sanctions list. While no copy of the list is held (a few minutes after a fresh start) the call is refused and not charged, never answered without it.
- sanctionsList: The list name, the date its publisher put on it and when we last downloaded it (at most daily).
- kind: wallet or contract.
- transactions: Outgoing transaction count where the chain exposes it cheaply (EVM nonce); null on Solana, with a note.
- balances: Native coin and USDC on the chain, in whole units. The USD figure for USDC is the USDC amount valued 1:1, not a market price.
- nftTrading: Closed trades, realised profit, win rate and holdings from the marketplace, or null with no record.
- deskcrewHistory: Settled paid calls from the wallet with the first one, human-approved answers and on how many desks, bounties won.
- redFlags: How many named public lists the address is on. The other flags are plain facts.
- checkedSources: Each list checked, with its date, or unavailable.
- notes: What could not be read and why. A partial read returns what was read, never an invented value.
Every flag and what it means
A flag is present only when it is true. Red flags are matches on a named public list and are counted in redFlags; the rest are plain facts.
| Flag | Kind | What it means |
|---|---|---|
| On a public sanctions list | red flag | The address appears among the digital currency addresses of the US Treasury public sanctions list, as of the list date shown. Counted in redFlags. |
| On a public scam or phishing address list (Community Ethereum scam and phishing address darklist) | red flag | The address appears on a public, openly licensed scam and phishing address list, named in the flag. Counted in redFlags. EVM addresses only today. |
| Wallet first active less than 7 days ago | fact | The first activity of the address is under a week old. Only shown where the first activity can be read cheaply (Solana addresses with fewer than 1000 signatures). |
| Contract, not a personal wallet | fact | The address holds contract code (EVM) or is an executable program (Solana). Paying a contract is sometimes intended and sometimes a mistake. |
| No outgoing transactions | fact | The wallet has never sent a transaction on this chain (EVM nonce of zero). |
| No marketplace trading record | fact | The NFT marketplace has no trades for this wallet in the last 90 days. |
| No DeskCrew history | fact | DeskCrew has never settled a paid call from this wallet, approved one of its answers or paid it a bounty. |
| Holds no USDC on this chain | fact | The wallet holds no USDC on the chain checked. |
Price
$0.01 per call in USDC over x402, on any chain the door accepts. A call that is refused is never charged, and a result is cached ten minutes per address and chain. Every other paid tool and its price is on the agents page.
Questions
How do I check a wallet before paying it?
Send POST https://deskcrew.io/api/x402/tools/deskcrew/wallet_check with {"address": "<0x, base58 or ens name>"} and an optional chain. The first answer is a 402 quoting $0.01 in USDC; sign it and resend. The result lists any red flags with the source and date of each list.
Does no red flags mean the wallet is safe?
No. Records from the named sources, not a judgement of anyone. No red flags found does not mean safe. Check before you pay. The lists only know what has been reported to them.
Which lists are checked?
The US Treasury public sanctions list (digital currency addresses), downloaded at most once a day, and the Community Ethereum scam and phishing address darklist, an openly licensed list of reported scam addresses. A scam list that cannot be read is marked unavailable rather than read as clear, and a call made before the sanctions list is loaded is refused and not charged.
Which chains does wallet_check cover?
Ethereum, Base, Polygon, Avalanche and Solana. A 0x address or ens name defaults to Ethereum and a base58 address to Solana.
Is there a score?
No. The result is the named red flags and plain facts, each with its source, so your agent applies its own rule.
Am I charged when the check fails?
No. A refused call (a malformed address, an ens name that does not resolve) is never settled, and results are cached for ten minutes per address and chain.
Records from the named sources, not a judgement of anyone. No red flags found does not mean safe. Check before you pay. See the terms.