Sanctions screening

Wallet screening API for crypto compliance

Submit an onchain address — or an ENS name — and get back a structured verdict against OFAC and every other enabled sanctions, crime and risk list, with the designated entity and official source record on every match.

GET /api/v1/screen/crypto/{address}

curl https://api.compliapi.com/api/v1/screen/crypto/0x098B716B8Aaf21512996dC57EB0615e2383E2f96 \
  -H "Authorization: Bearer $COMPLIAPI_TOKEN"

Response

{
  "value": "0x098b716b8aaf21512996dc57eb0615e2383e2f96",
  "flagged": true,
  "sanctioned": true,
  "lists_checked": ["ofac", "us_fbi_lazarus_crypto", "il_mod_crypto", "fr_tresor", "jp_mof_sanctions", "uk_fcdo_sanctions"],
  "matches": [
    {
      "list": "ofac",
      "list_name": "US OFAC SDN",
      "list_type": "sanctions",
      "match": "exact",
      "value": "0x098B716B8Aaf21512996dC57EB0615e2383E2f96",
      "source_url": "https://sanctionssearch.ofac.treas.gov/Details.aspx?id=27307",
      "metadata": {
        "symbol": "ETH",
        "name": "Ethereum",
        "sdn_name": "LAZARUS GROUP",
        "sdn_type": "Entity",
        "programs": "DPRK3"
      }
    }
  ]
}

Addresses across chains

Screens the crypto addresses published in OFAC SDN records — ETH, BTC, XMR, USDT and more.

ENS resolution built in

Pass an ENS name like vitalik.eth and CompliAPI resolves it on Ethereum mainnet before screening, so a readable name can't hide a listed address.

15-minute refresh

SDN data is ingested automatically every 15 minutes, and delistings are tracked.

Beyond the SDN list

The multi-list /screen/crypto endpoint also checks FBI-published Lazarus Group addresses, the French Trésor asset-freeze register, Japan MOF and EU consolidated sanctions, and known ransomware payment addresses (Ransomwhere, labeled crime intelligence) — every match names the list it came from.

Source record included

Every match links to the official OFAC entry for reviewer context.

Request logging

Every screening call is recorded for your organization — useful when you need to show what was checked before a transaction.

Automated crypto address screening, not batch jobs

The standard way to do crypto wallet address screening is still to download OFAC's data files on a daily cron, parse them, and diff against yesterday. That leaves a window — up to a day — where a newly designated address passes your checks. CompliAPI closes it: OFAC's change feed is polled every 15 minutes and new publications are ingested immediately, the other lists reconcile on daily or weekly schedules matched to how often they actually change, and delistings are applied on the same cycles.

Because the pipeline is on our side of the API, screening is automated end to end from your first request: no files to fetch, no parser to maintain, no staleness to explain to an auditor. Each check is a real-time lookup against the current data, and re-screening your stored addresses is the same GET request on whatever schedule your policy requires.

What's in the data

Blockchain wallet screening checks every enabled list in one call, and every match names its list and type — sanctions, crime intelligence, or risk exposure — so a Lazarus Group designation and a ransomware payment address never look the same in your logs. Listed onchain addresses at the time of writing, by source:

SourceList typeOnchain addresses
US OFAC SDNSanctions≈950
Israel NBCTF seizure ordersSanctions≈690
FBI Lazarus Group addressesSanctions33
UK FCDO, Japan MOF, French TrésorSanctions≈50
Ransomwhere ransomware paymentsCrime intelligence≈11,200
Tornado Cash depositors & relayersRisk exposure≈68,500
Total81,000+

Integration options for crypto compliance requirements

REST is the primary integration: one authenticated GET per address, structured JSON back, so screening drops into an onboarding flow, a withdrawal path, or a payment pipeline as a single call. There are no SDKs to adopt — if your stack can make an HTTPS request, it can screen.

The same screening is exposed as an MCP server, so AI agents and assistants can run wallet checks as native tool calls with the same token, quota and request log. There is no webhook or push interface: screening is a synchronous check by design, and continuous monitoring of addresses is a different product category.

Choosing a wallet screening API

Crypto wallet screening tools blur very different products behind similar vendor pages. Whatever you pick — including us — these are the questions that separate them:

CriterionWhat to askCompliAPI's answer
Data freshnessHow long after OFAC publishes does a new address fail your checks?OFAC change feed polled every 15 minutes; other lists daily or weekly.
List coverageWhich lists, exactly — and does a match say which list produced it?OFAC SDN plus UK, EU, France, Japan, NBCTF, FBI, and labeled crime/risk lists; every match names its list and links the official record.
Chain coverageFixed chain list, or does coverage follow what the lists publish?Follows the lists: any address format they publish (BTC, ETH, XMR, USDT and more), plus ENS resolution.
Direct vs indirect exposureList screening or graph analytics? They answer different questions.Direct list screening only — no clustering or hop analysis; pair with an analytics platform if your risk profile needs it.
Access and pricingSelf-serve with public pricing, or sales-gated?A free crypto wallet screening tier and published plans; a token takes minutes, no sales call.

For financial institutions

Crypto wallet screening software for financial institutions has to survive an examiner, not just a code review. Every CompliAPI screening call is logged for your organization — what was screened, when, and with what result — so "show me the check you ran before releasing that payment" has a concrete answer. Matches carry the official source record for reviewer context, delistings are tracked rather than silently dropped, and quotas and tokens are managed at the organization level so screening activity is attributable.

The scope boundary matters for your compliance file too: this is direct screening against officially listed identifiers, documented as exactly that — not a probabilistic risk score you would have to defend.

A direct SDN address check, without the pipeline

Checking wallet addresses against OFAC data yourself means parsing SDN records for digital-currency identifiers across many chains, normalizing address formats, resolving ENS names to the underlying address, and re-ingesting the list every time it changes.

CompliAPI maintains that pipeline for you. Your application submits an address — or an ENS name — and gets back a structured JSON answer about whether it appears in the current SDN data, in a single request you can put in front of deposits, withdrawals, or wallet connections.

This is a check against officially listed identifiers plus clearly-labeled direct-interaction lists (the Tornado Cash association lists carry list_type "risk" and record addresses that themselves deposited into or relayed for the mixer, with the evidencing transaction attached). It is not graph analytics: CompliAPI does not cluster addresses, trace multi-hop flows, or score indirect exposure, and it is not a substitute for tools like Chainalysis or TRM where your risk profile requires them.

How it works

  1. Send an address or ENS name

    A hex address on any chain represented in SDN records, or an ENS name resolved via Ethereum mainnet.

  2. CompliAPI checks the current SDN data

    The address is normalized and checked for direct appearance in OFAC SDN records, refreshed every 15 minutes.

  3. Receive a structured result

    JSON with the address, a match type of "exact" or "partial", a sanctioned flag, and the official OFAC source record for matches.

What you can screen

  • Hex wallet addresses on chains represented in OFAC SDN records (ETH, BTC, XMR, USDT and more)
  • ENS names (resolved on Ethereum mainnet before screening)

Where teams use it

Withdrawal address checks

Screen destination addresses before processing a withdrawal or payout.

Deposit screening

Check the source address of incoming deposits and route matches to review.

Wallet-connect gating

Screen a wallet when it connects to your DeFi frontend, before it can interact with your contracts.

Marketplace payouts

Verify seller wallet addresses before releasing funds from escrow.

AI-agent checks

The same screening is available as an MCP tool, so agents can screen an address before executing a transaction.

Scope and limitations

Wallet screening answers one precise question: does this address appear directly in the supported OFAC data? It deliberately does not attempt broader blockchain intelligence:

Direct listing, not indirect exposure

An address that has transacted with a sanctioned address, but is not itself listed, will not match. Exposure analysis requires blockchain-analytics tooling.

No transaction tracing or attribution

CompliAPI does not analyze transaction history, cluster related addresses, or attribute addresses to entities beyond what OFAC publishes.

No risk scores

Responses are factual match results, not probabilistic risk ratings.

Point-in-time checks

Each request screens against the list as of that moment. CompliAPI does not watch addresses continuously — re-screen on the schedule your policy requires.

Frequently asked questions

Does wallet screening analyze transaction history?

Not in the blockchain-analytics sense. Screening checks whether an address appears on the enabled lists — official sanctions data plus the labeled Tornado Cash direct-interaction lists, which record addresses that deposited into or relayed for the mixer. There is no clustering, multi-hop tracing, or indirect-exposure scoring; every risk-list match carries the on-chain transaction that put the address on the list.

Is this a replacement for Chainalysis or TRM?

No — it answers a narrower question. Blockchain-analytics platforms model indirect exposure, attribution and fund flows. CompliAPI gives you a fast, direct check against officially listed identifiers, which may be sufficient on its own or complement an analytics platform, depending on your obligations.

Which blockchains are covered?

Any address type that OFAC publishes in SDN records, including ETH, BTC, XMR and USDT addresses. Coverage follows the official list rather than a fixed set of chains.

Can I screen ENS names?

Yes. Pass an ENS name (for example vitalik.eth) and CompliAPI resolves it via Ethereum mainnet, then screens the resolved address.

Which sanctions lists does wallet screening check?

Every enabled list in one call: the US OFAC SDN list, Israel NBCTF seizure orders, FBI-published Lazarus Group addresses, the UK Sanctions List, the EU consolidated list, the French Trésor register and Japan MOF sanctions — plus clearly labeled crime and risk lists (Ransomwhere, Tornado Cash association), which set flagged but never sanctioned. A ?lists= filter narrows the scope.

What does a match look like?

A match returns the address, the list that produced it with its list_type, a match type of "exact" or "partial", metadata including the designated entity where the list publishes it, and a source_url linking to the official record. Clear addresses return sanctioned: false and flagged: false.

Does the API support batch screening?

There is no dedicated batch endpoint — each address is one GET request. Checks return in real time, so bulk sweeps and scheduled re-screening are typically a loop over stored addresses; requests are metered against your organization's monthly quota, and paid plans size that quota for production volumes.

Related

Add wallet screening to your application

Get a free API key and screen your first address in minutes.

14-day free trial. No credit card required.

CompliAPI provides data and tools that support compliance workflows. It does not provide legal advice, and organizations should determine their obligations with qualified counsel.