Wallet screening checks a crypto wallet address for AML risk before you accept funds from it or pay out to it. A screening returns a normalized assessment: risk score, severity, sanctions exposure, and source and destination of funds. Large exposure breakdowns are truncated to the riskiest entries plus the largest remaining positions.
Screening is on demand and independent of everything else - it takes a wallet address, not a user or a transaction. To screen an actual transfer against your own rules, use Transaction Monitoring instead.
In sandbox, requests past your monthly free quota are rejected with 429. In production, each successful screening records a billable usage event.
Wallet ownership proofs
Screening tells you whether an address is risky; an ownership proof tells you whether one of your users actually controls it. You supply the address and the email of an existing end user of yours, and we email that user a hosted link where they sign a one-time message with their wallet (EIP-191 personal_sign - no gas, nothing broadcast on-chain). The signer is recovered and checked against the address server-side, and the request moves from PENDING to VERIFIED. The link is also returned in the response so you can deliver it yourself.
The email must belong to a known end user of your account, otherwise the call returns 404. The same mechanism backs the self-hosted counterparty flow in Travel Rule.
In this section
| Endpoint | What it does |
|---|---|
POST /screening/wallet | Screen a wallet address and store the result |
GET /screening/wallets | List past screenings, filterable by address, chain, severity, reference |
GET /screening/wallets/{screening_id} | Fetch one stored screening |
POST /screening/wallet-ownership/requests | Ask a user to prove they control a self-hosted wallet |
GET /screening/wallet-ownership/requests | List proof requests, filterable by address and status |
POST /screening/wallet-ownership/requests/{request_id}/cancel | Invalidate a pending proof link |