79trust / 100
Screen Multi
by Sanctions Screening by nsgoods in Security & trust
x402 APIPassing, checked 19 min ago
Use this before an AI agent pays a wallet address, to check that the payee is not sanctioned. Screens one address (EVM, Solana, Bitcoin, TRON and similar) against OFAC, UN, EU and UK lists, each reported separately with its own list date inside a signed verdict. Pay only if verdict is clean and any_list_match is false. $0.01 in USDC on Base or Solana. An invalid address returns 400, not charged. Free preview: GET /screen-multi/preview
GET https://sanctions.nsgoods.org/screen-multi
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 383 ms typical, 477 ms slowest 5%
- Last check
- 19 min ago
- Next check
- in 14 min
How to call it
# See the payment challenge (nothing is charged)
curl -i -X GET "https://sanctions.nsgoods.org/screen-multi?address=0x098B716B8Aaf21512996dC57EB0615e2383E2f96&chain=ethereum"import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fsanctions.nsgoods.org%2Fscreen-multi
const res = await pay("https://sanctions.nsgoods.org/screen-multi?address=0x098B716B8Aaf21512996dC57EB0615e2383E2f96&chain=ethereum");
console.log(await res.json());Example input
{
"address": "0x098B716B8Aaf21512996dC57EB0615e2383E2f96",
"chain": "ethereum"
}Example output
{
"address": "0x098B716B8Aaf21512996dC57EB0615e2383E2f96",
"any_list_match": true,
"chain": "ethereum",
"list_health": {
"EU": {
"available": true,
"note": "official (public token)",
"version_date": "2026-09-22T20:01:34.799+02:00"
},
"HMT": {
"available": true,
"note": null,
"version_date": "29/09/2026"
},
"OFAC": {
"available": true,
"note": null,
"version_date": "2026-09-23T19:02:12.183846+00:00"
},
"UN": {
"available": true,
"note": null,
"version_date": "2026-09-29T16:07:00.700Z"
}
},
"lists": [
{
"chain": "ETH",
"entry_id": null,
"list": "OFAC",
"list_version_date": "2026-09-23T19:02:12.183846+00:00",
"matched": true
},
{
"list": "UN",
"list_version_date": "2026-09-29T16:07:00.700Z",
"matched": false
},
{
"list": "HMT",
"list_version_date": "29/09/2026",
"matched": false
},
{
"list": "EU",
"list_version_date": "2026-09-22T20:01:34.799+02:00",
"matched": false,
"note": "official (public token)"
}
],
"matched_label": "ETH",
"sanctioned": true,
"signature": "0x…",
"signed_by": "0x57fF0F084Cba33e6761503f90eEF0Da9F159350c",
"verdict": "deny"
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 19 min ago | Passed | 402 | 383 ms | $0.01 |
| 4 h ago | Passed | 402 | 375 ms | $0.01 |
| 7 h ago | Passed | 402 | 352 ms | $0.01 |
| 11 h ago | Passed | 402 | 394 ms | $0.01 |
| 15 h ago | Passed | 402 | 396 ms | $0.01 |
| 18 h ago | Passed | 402 | 477 ms | $0.01 |
| 23 h ago | Passed | 402 | 396 ms | $0.01 |
| 26 h ago | Passed | 402 | 381 ms | $0.01 |
| 29 h ago | Passed | 402 | 677 ms | $0.01 |
| 34 h ago | Passed | 402 | 356 ms | $0.01 |