OFAC sanctions screening API for crypto addresses and names
One call screens a crypto address on any chain, and/or a person or company name, against the official US Treasury OFAC SDN and Consolidated lists. Returns clear, match or possible_match with the matched entries and the list date.
An agent that sends USDC, lists a token or onboards a counterparty should check first that the other side is not on a US sanctions list. GET /compliance/sanctions-screen does that in one call for $0.01. You can send a crypto address, a name, or both.
What it checks
- Addresses on any chain. OFAC lists digital currency addresses on SDN entries for Bitcoin, Ethereum, Tron, USDT, Solana, Litecoin, Monero and other assets. We match your address against every one of them. EVM addresses are compared without case, so an address OFAC lists under ETH also matches on Base, Arbitrum and other EVM chains.
- Names. We compare your name with every primary name and a.k.a. on both lists and give each one a fuzzy score from 0 to 100. Word order, accents, punctuation and small typos don't break the match. A score of 98 or more is reported as
match. A score from yourminScore(85 by default) up to 97 is reported aspossible_match. - Fresh lists. We download Treasury's official SDN and Consolidated XML files, as OFAC asks automated users to do. We refresh them twice a day. Every response includes the list publish dates,
asOfand the source URLs.
Example
GET /compliance/sanctions-screen?address=0xdcbEfFBECcE100cCE9E4b153C4e15cB885643193
Trimmed real response on Nov 11, 2026 (this address is listed on Roman Semenov's SDN entry):
{
"result": "match",
"summary": "Address is on the OFAC list: Roman SEMENOV (SDN; DPRK3)",
"addressScreen": { "matched": true, "assets": ["ETH"],
"matches": [{ "list": "SDN", "uid": 44718, "name": "Roman SEMENOV",
"type": "Individual", "programs": ["DPRK3"] }] },
"lists": { "sdnPublishDate": "2026-11-09", "digitalCurrencyAddresses": 1064 },
"disclaimer": "Informational screen of OFAC's public SDN and Consolidated lists only. Not legal or compliance advice..."
}
A name check works the same way: ?name=Lazarus%20Group. Send both address and name to screen a counterparty in one call.
Pay per call on Base or Solana
An unpaid request returns HTTP 402 offering USDC on Base and on Solana. If the input is bad (no address or name, or a malformed address), you get a 400 before any payment, so you are never charged for it. The route is also a tool called sanctions_screen on the remote MCP server.
What it does not do
This is an informational screen of OFAC's public lists. It is not legal or compliance advice, and it is not a certified BSA/AML or KYC product. It is not endorsed by OFAC or the US Treasury. A clear result does not give you legal clearance. It does not cover entities that sanctioned parties own or control, other countries' lists, or funds that passed through other wallets. A name match may be a different person with the same name. Confirm any hit at ofac.treasury.gov before you act.
Try it free
Get a free API key (100 calls a month, no card), then pass it in the x-api-key header. This route uses 1 call of the monthly quota.
curl -X POST https://signals.incomefather.com/billing/free \
-H 'content-type: application/json' -d '{"email":"you@example.com"}'
curl -H "x-api-key: $TRADING_SIGNALS_API_KEY" \
"https://signals.incomefather.com/compliance/sanctions-screen?address=0xdcbEfFBECcE100cCE9E4b153C4e15cB885643193"
Agents that hold a wallet can skip the key entirely and pay per call over x402 (see x402 pay-per-call market data). Copy-paste code for curl, JavaScript, Python, MCP (Claude Desktop, Cursor, Cline), LangChain and the OpenAI Agents SDK is in gdietsch/trading-signals-examples.
More guides
- ES futures session brief API
- SEC insider buying API
- AI trade brief API for agents
- Solana token safety check API
- Wallet pay-readiness API for Base and Solana
- SEC 13F holdings API for fund portfolios and notable holders
- Token pre-trade check API for Solana and Base
- CFTC COT positioning screener API
- Treasury auction and yields API
- x402 pay-per-call market data