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

ActionEffectMCP toolTitle
check-addressreadchainalysis-sanctions__check-addressScreen 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

bash
curl -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"} }'

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.codeService statusRetryableMessage
connection_unauthorized401noChainalysis rejected the API key; check the connection.
forbidden403noChainalysis rejected the API key; check the connection.
rate_limited429yesChainalysis rate limit reached for this key; retry shortly.
invalid_request400, 422noChainalysis rejected the address.
Ask a question... ⌘I