Check before you pay

Screen any wallet address before sending funds: AML/KYT screening (sanctions lists, mixer interaction, risk indicators) plus address-poisoning detection — catches lookalike dust-attack addresses that mimic your real counterparties. Returns risk score, flags, and a poisoningCheck field with suspicious addresses.

$0.75 USDC / call free trial: 1/day per IP contabo

Endpoint

POST https://contabo-vps.taild7e69a.ts.net/amlscreen/api/aml

Data source: Live data feed

Parameters

ParamTypeDescription
addressstring (body JSON)Wallet address 0x... to screen
chainstring (body JSON, optional)eip155:8453 | eip155:1, default base

Example request

curl -X POST "https://contabo-vps.taild7e69a.ts.net/amlscreen/api/aml" \
  -H "Content-Type: application/json" \
  -d '{ "address": "0x1fEa3e4ca80e1B6638b4fad01702799651B563a7" }'

Example response

{
  "address": "0x1fEa...",
  "risk_score": 12,
  "risk_level": "low",
  "flags": [],
  "poisoningCheck": {
    "detected": false,
    "suspiciousAddresses": [],
    "explanation": null
  }
}

How payment works (x402)

  1. Call the endpoint without any payment header → you get 402 Payment Required with the exact price, the USDC contract, the network (eip155:8453 = Base), and the pay-to address.
  2. Pay 0.75 USDC on Base to the pay-to address — with any wallet, the Coinbase CDP x402 SDK, or any x402 client library.
  3. Retry the same request with the X-PAYMENT header set to the base64-encoded signed payment payload → 200 with JSON.
# 1. Get the 402 payment requirements
curl -s -X POST "https://contabo-vps.taild7e69a.ts.net/amlscreen/api/aml" -H "Content-Type: application/json" -d '{ "address": "0x1fEa3e4ca80e1B6638b4fad01702799651B563a7" }'

# 2. Pay 0.75 USDC on Base, then retry with the payment proof
curl -X POST "https://contabo-vps.taild7e69a.ts.net/amlscreen/api/aml" \
  -H "Content-Type: application/json" \
  -H "X-PAYMENT: <base64-signed-payment-payload>" \
  -d '{ "address": "0x1fEa3e4ca80e1B6638b4fad01702799651B563a7" }'

Facilitators: Coinbase CDP and PayAI (no API key needed for either). Scheme: x402 v2 exact. Asset: USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 on Base.

Free trial

Every IP gets 1/day free calls to this endpoint — no payment needed. Free calls run automatically when you call without an X-PAYMENT header. The X-Free-Remaining response header shows how many free calls you have left today. When the quota is exhausted, the request falls through to the normal 402 payment flow.

FAQ

Which sanctions lists?
OFAC SDN, EU consolidated list, plus heuristic risk signals.
How is the score calculated?
0-100 scale combining sanctions matches, mixer interaction, and known-risk clustering.
What is address-poisoning detection?
Attackers send dust from lookalike addresses (same first/last characters as your real contacts) hoping you copy the wrong address from transaction history. This API compares inbound senders against your known counterparties and flags lookalike dust transfers before you pay.
Is this legal advice?
No. A screening signal, not a compliance determination.
Do I need an API key?
No. This API uses x402: call the endpoint, receive a 402 Payment Required with the price, pay in USDC on Base, and retry with the X-PAYMENT header. No signup, no API key, no account.
Which facilitators are supported?
Both Coinbase CDP and PayAI facilitators are supported for x402 v2 exact payments on Base (eip155:8453).
What if my payment is too low?
The facilitator verifies the on-chain amount against the price. If underpaid, you get 402 again; pay the full amount and retry.

More

All 37 x402 API docs · Postman collection (download) · About this API