Chainalysis sanctions screening
The io.b3os/chainalysis-sanctions pack: 1 actions with call snippets, fixture outputs, connection setup and error codes, generated from version 1.0.0.
io.b3os/chainalysis-sanctions 1.0.0 · compliance, crypto, security · MIT
Screen a blockchain address against the sanctions lists Chainalysis tracks (OFAC SDN and others) with your own free Chainalysis sanctions API key. Chain-agnostic: EVM, Bitcoin, Solana and other address formats. Returns whether the address is listed, the categories and every listing with its source URL. A clean result means no listing at the time of the call, not a compliance determination.
Every call's result carries upstream_status and timing: validate_ms, inject_ms, render_ms, upstream_ms, map_ms and total_ms. upstream is the service's time; the others are B3OS's own (call actions). The snippets below show no timing values, because a fixture records none.
Connection
chainalysis, type api_key: Chainalysis sanctions API key.
Your key for the Chainalysis sanctions screening API (free registration), sent as the X-API-Key header to public.chainalysis.com only.
How to get one: auth-developers.chainalysis.com.
The credential is sent only to public.chainalysis.com.
Store the credential once as a vault connection for this pack and key, then name its id in a call's connections. Leave the key out and B3OS uses the project's newest connection for the pack and key without a subject (connections).
Hosts it reaches: public.chainalysis.com.
Actions
| Action | Effect | MCP tool | Title |
|---|---|---|---|
check-address | read | chainalysis-sanctions__check-address | Screen Address for Sanctions |
check-address
Screen Address for Sanctions. Check whether a blockchain address is on any sanctions list tracked by Chainalysis (OFAC SDN, EU, UN, etc.). Returns a boolean sanctioned flag, unique categories, and the full identifications list with source URLs. Chain-agnostic (EVM, BTC, Solana). Ideal for: compliance workflows, pre-transaction screening, counterparty risk checks, AML monitoring, audit trails.
Ref io.b3os/chainalysis-sanctions/check-address@1.0.0 · effect read · connection chainalysis · MCP tool chainalysis-sanctions__check-address
bashcurl -s https://beta-api.b3os.org/v1/actions/call \ -H "Authorization: Bearer $B3OS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "ref": "io.b3os/chainalysis-sanctions/check-address@1", "input": {"address": "0x1111111111111111111111111111111111111111"}, "connections": {"chainalysis": "conn_01m5t6cbgdjs1ketgcqwa2sne8"} }'
tsimport { B3OS } from "@b3os/sdk";const b3os = new B3OS();const result = await b3os.actions.call({ ref: "io.b3os/chainalysis-sanctions/check-address@1", input: { address: "0x1111111111111111111111111111111111111111" }, connections: { chainalysis: "conn_01m5t6cbgdjs1ketgcqwa2sne8" },});console.log(result.output);
pythonfrom b3os import B3OSb3os = B3OS()result = b3os.actions.call({ "ref": "io.b3os/chainalysis-sanctions/check-address@1", "input": {"address": "0x1111111111111111111111111111111111111111"}, "connections": {"chainalysis": "conn_01m5t6cbgdjs1ketgcqwa2sne8"},})print(result["output"])
json{ "method": "tools/call", "params": { "name": "chainalysis-sanctions__check-address", "arguments": {"address": "0x1111111111111111111111111111111111111111"} }}
Expose the pack as tools with --packs chainalysis-sanctions on the local server or ?packs=chainalysis-sanctions on the remote URL, and the agent calls chainalysis-sanctions__check-address with the action's input. The tool uses your newest connection for each key without a subject. Without exposing the pack, actions_call takes the same input with ref.
Output, labeled fixture: Screen Address for Sanctions (documented response shape, example values). From the bundle's fixtures/check-address-sanctioned.json, not a live call.
json{ "address": "0x1111111111111111111111111111111111111111", "isSanctioned": true, "identificationsCount": 2, "categories": ["sanctions"], "identifications": [ { "category": "sanctions", "name": "SANCTIONS: OFAC SDN Example Entity 2026-01-01 1111111111111111111111111111111111111111", "description": "Example listing description in the documented shape.", "url": "https://home.treasury.gov/policy-issues/financial-sanctions/recent-actions" }, { "category": "sanctions", "name": "SANCTIONS: OFAC SDN Example Alias 2026-01-01 1111111111111111111111111111111111111111", "description": "Second listing for the same address.", "url": "https://home.treasury.gov/policy-issues/financial-sanctions/recent-actions" } ]}
When the service answers with an error, the call fails with upstream_error and pack_error.code is one of:
pack_error.code | Service status | Retryable | Message |
|---|---|---|---|
connection_unauthorized | 401 | no | Chainalysis rejected the API key; check the connection. |
forbidden | 403 | no | Chainalysis rejected the API key; check the connection. |
rate_limited | 429 | yes | Chainalysis rate limit reached for this key; retry shortly. |
invalid_request | 400, 422 | no | Chainalysis rejected the address. |