BitcoinDatabase.com
All posts
Buyer guides

Best Bitcoin Sanctions Screening API for Fintech Compliance Teams

We parsed the OFAC SDN list ourselves on 4 September 2026 and checksum-validated every Bitcoin address in it. The authoritative XML carries 532. The CSV published the same day yields 252, because its remarks column is capped at 1,000 characters and cuts long address lists off mid-string. Hydra Market alone loses 105 of its 117 addresses. One entry filed as Bitcoin is a Tron address, there is not a single Taproot address on the list, and two SDN entries hold 99.46 percent of the 9,305.64 BTC still sitting on sanctioned addresses.

By the BitcoinDatabase team

September 2026 · 9 min read

Query Console
btc
try:

Hit Run to query the fully-indexed Bitcoin blockchain.

BTC

30-day trend

informational on-chain data · not financial advice

REST API · SQL · dashboards, one indexed dataset. Querying the indexed Bitcoin blockchain ...

The short answer

Judge a Bitcoin sanctions screening vendor on how it ingests the list, not on how it scores an address. On 4 September 2026 we parsed the OFAC SDN file ourselves. The authoritative XML carries 532 unique Bitcoin addresses and every one passes checksum validation. The CSV published the same day yields only 252, because its remarks column is capped at 1,000 characters and cuts long address lists off mid-string. That is 280 sanctioned Bitcoin addresses, 52.6 percent of the list, missing from a file a lot of screening pipelines are built on.

Every vendor in this category sells you the same thing at the top of the funnel: an address goes in, a risk verdict comes out. Chainalysis, Elliptic, TRM Labs and a dozen smaller shops all pitch coverage, accuracy and speed. Those are hard to compare from the outside, which is why buying committees end up choosing on brand and on who the examiner has heard of.

There is a cheaper test, and you can run it before you take a single sales call. Ask how the vendor ingests the underlying sanctions list, and what it does when the source is wrong. We spent a morning measuring the source itself, and the results say more about screening quality than any accuracy claim we have seen published.

How many Bitcoin addresses are on the OFAC SDN list?

532, as of the SDN file published 4 September 2026, record count 19,329. We pulled it, extracted every identifier typed Digital Currency Address - XBT, deduplicated, and validated each one with real arithmetic: base58check double-SHA256 for legacy and P2SH addresses, bech32 and bech32m polynomial checksums for the rest. All 532 validate. Zero malformed.

That number is not what you get if you use the file most people reach for first.

The CSV drops half the Bitcoin addresses

OFAC publishes the SDN list in several formats. The CSV is the one that turns up in tutorials and sample code because it opens in a spreadsheet and parses in four lines. It is also lossy in a way the file never announces.

Crypto addresses do not have their own column in the CSV. They are appended into a free-text remarks field, and that field is hard-capped at exactly 1,000 characters. When an SDN entry has a long list of addresses, the list is simply cut off at the cap, sometimes in the middle of an address. We found 35 rows sitting at exactly 1,000 characters, and 8 Bitcoin addresses truncated mid-string into fragments like 1B11Ezqg3AXj and bc1qtnr3t28l.

The damage is concentrated on exactly the entries you would most want to catch, because the entries with the most addresses are the ones that overflow first.

SDN entryBTC addresses in XMLRecoverable from CSVRemarks length
HYDRA MARKET117121,000 (capped)
BLENDER.IO46111,000 (capped)
WANG, Yunhe4691,000 (capped)
PARSARAD4491,000 (capped)
GRIMM, Matthew Simon36121,000 (capped)
Whole list532252280 missing (52.6%)

Hydra Market is the clearest case. It is one of the largest darknet market designations OFAC has ever made, it carries 117 Bitcoin addresses in the structured feed, and a CSV-based pipeline sees 12 of them. The other 105 are not flagged as missing. They are just absent, and the file parses cleanly.

The fix is not clever engineering. Use the structured feed, where each address is its own <idNumber> element with an explicit <idType>, and never regex a free-text field for something a schema already models. Teams that instead key their screening off published notices and PDFs are doing document data extraction on a compliance-critical input, which is a harder problem than it looks and an odd one to take on when a machine-readable feed exists.

One entry on the list is not a Bitcoin address at all

While validating, one identifier typed as XBT failed to look like anything on Bitcoin: TUCsTq7TofTCJRRoHk6RvhMoS2mJLm5Yzq. It is not malformed. It is a perfectly valid base58check string whose version byte is 0x41, which is the Tron mainnet prefix. Bitcoin uses 0x00 for P2PKH and 0x05 for P2SH. The address is real and it is sanctioned; it is simply filed under the wrong currency.

This is a small thing that tells you something big about how to build the ingest. A screening system that trusts the currency label will try to look this address up on Bitcoin, find nothing, and move on. A system that validates the version byte and routes on what the address actually is will screen it on the right chain. Ask your vendor which one they do.

The list looks nothing like the live Bitcoin chain

We classified all 532 addresses by script type and put them next to a full-block census we ran on block 963,670, and next to the money that is actually sitting on the sanctioned addresses today.

Address typeShare of SDN listShare of BTC still heldShare of live block outputs
P2PKH (legacy, 1...)39.17%0.53%4.60%
P2SH (3...)33.33%0.01%4.26%
P2WPKH (bc1q, 42 char)25.61%99.46%56.91%
P2WSH (bc1q, 62 char)1.88%0.00%2.26%
P2TR (taproot, bc1p)0.00%0.00%12.54%

Two things jump out. There is not a single Taproot address on the SDN list, while Taproot is 12.54 percent of outputs in a live block. And the legacy-heavy shape of the list is a historical artifact: legacy and P2SH are 72 percent of the entries and hold half of one percent of the remaining money, while native SegWit is a quarter of the entries and holds 99.46 percent of it.

If you are sizing an address database or writing parsing code, that distribution matters, and it is the opposite of what the live chain looks like. Our full breakdown of the formats and their lengths is on the Bitcoin address types page.

Do sanctioned Bitcoin addresses still hold money?

Mostly not, and the exceptions are extremely concentrated. We queried the current on-chain state of all 532 addresses, and 531 returned cleanly.

On-chain statusAddressesShareBTC held now
Used, now empty44082.9%0
Still holding a balance8716.4%9,305.64407535
Never received anything40.8%0
All measured531100%9,305.64407535

Across all of them, 249,771.22 BTC has passed through at some point, spread over 167,424 transactions. What remains is 9,305.64 BTC, and three addresses hold 7,230.10 of it, or 77.7 percent. Two SDN entries, Zhi Chen and Yunhe Wang, account for 99.46 percent of every satoshi still sitting on a sanctioned Bitcoin address.

There is a tell in the balances worth knowing about. Ten addresses hold exactly 100.00000330 BTC, another ten hold exactly 99.99998030 BTC, and twelve hold exactly 0.00001000 BTC. Identical balances to the satoshi across many addresses are the signature of a scripted distribution, not of hand-managed wallets, and that pattern is visible from balances alone.

What to actually ask a screening vendor

The measurements above turn into four questions that are hard to answer with marketing copy:

  • Which OFAC file do you ingest, and how often? If the answer is the CSV, they are working from roughly half the Bitcoin addresses. If they cannot tell you, that is the answer.
  • Do you validate address checksums and version bytes on ingest? The Tron address filed as XBT is a live test case sitting in the current file.
  • Can you show me the evidence behind a verdict months later? An examiner will ask. A score alone does not reconstruct.
  • What happens when OFAC delists? Removal is as operationally real as addition, and it is where stale caches show up.

None of that requires you to distrust the big vendors. Chainalysis, Elliptic and TRM Labs all maintain their own attribution work that goes far beyond the published list, and for a regulated VASP or bank there is real value in a third party that will stand behind a verdict. We wrote up where each of them fits on our Elliptic alternative, Chainalysis alternative and TRM Labs alternative pages, including the parts where they are clearly the better buy.

Where a raw chain index fits

Screening vendors answer "is this address risky". They are not built to answer "show me every transaction this address made, in order, with the UTXOs, so I can reconstruct the alert". Those are different products, and most compliance teams eventually need both.

The work in this article is the second kind. Validating an ingested list, checking the on-chain status of listed addresses, backtesting a rule change against history, and reproducing an alert for an examiner are all chain-data questions. BitcoinDatabase indexes the full Bitcoin chain and exposes it over REST, SQL and dashboards, so a team can run exactly these checks against data it holds rather than re-asking a vendor. The Bitcoin address screening API and crypto AML API pages cover the endpoints, and our walkthrough of how to screen a Bitcoin address for sanctions shows the query shape. Everything is on-chain data and analytics to support your own review, not a compliance verdict and not legal advice.

What we did not measure

Being clear about the edges, because the numbers above are only as good as their scope:

  • This is the OFAC SDN list only. It is not the EU, UN or HM Treasury lists, and it is not the OFAC Non-SDN lists. A real screening stack ingests several.
  • We measured direct listing only. We did not trace exposure, so an address that received funds from a sanctioned address is not counted here. Indirect exposure is most of what screening vendors actually sell.
  • Balances are a single reading at Bitcoin block 965,562. They move.
  • We did not evaluate any vendor's proprietary attribution, which is the part of their dataset that is not derivable from the public list and is genuinely hard to reproduce.
  • One of the 532 addresses did not return a clean on-chain response and is excluded from the status table, which is why that table totals 531.

The verdict

If you are a regulated fintech, buy a screening vendor. You need someone to stand behind the verdict, and Chainalysis, Elliptic and TRM Labs all do that credibly. Do not choose between them on claimed accuracy, which you cannot verify, and do not choose on list coverage either, since they all start from the same public source.

Choose on ingest quality and evidence. Ask the four questions above, ask them to screen the Tron-labelled address in front of you, and ask what their pipeline does when a source file silently loses half its Bitcoin entries. Then keep a raw chain index alongside it, because the day an examiner asks you to show your work, a risk score is not going to be enough.

Method: OFAC SDN file published 4 September 2026, record count 19,329, in both CSV and XML. Addresses extracted from typed identifier elements, deduplicated, and validated with base58check and bech32 checksum arithmetic. On-chain state read at block 965,562. Live block comparison from our own census of block 963,670. Anyone can reproduce this from the same two public files.

Query the Bitcoin blockchain yourself

Pull balances, UTXOs, transactions, on-chain metrics and fund flows from the fully indexed Bitcoin blockchain by REST API, SQL and dashboards. Indexed since 2009, new blocks within seconds, no node to run.

Keep reading

More from the BitcoinDatabase blog

Buyer guides

Best Bitcoin Dust Attack Detection Tools for Exchanges and Wallet Teams

Bitcoin has five dust limits, not one, from 294 to 546 satoshis by script type. We fetched every output of two recent blocks, 12,958 spendable outputs, and found zero below threshold: dust attacks send the smallest amount that will still relay, computed per recipient script type. Plus what a real 20 address spray cost (1,125 satoshis), why Bitcoin Core release 30 made it ten times cheaper, and pricing visibility checked first-hand across four screening vendors.

Read
Buyer guides

Best Bitcoin Ordinals API for Wallet and Marketplace Teams

We called every realistic Bitcoin ordinals API on 2 September 2026 without keys. Hiro answers HTTP 410 Gone and the migration link inside that error returns 404. Xverse and Ordiscan both answer HTTP 402 Payment Required with per request payment challenges, and UniSat wants a bearer token. Four providers, four different status codes for the same refusal, and only some of them will ever answer a question that starts with an address.

Read
Compliance

How to Screen a Bitcoin Address for Sanctions and Risk

How to screen a Bitcoin address for sanctions: check it against OFAC and other lists, trace exposure to high-risk entities, and turn the result into a risk decision your compliance team can defend.

Read
Buyer guides

Bitcoin RPC Node Providers Compared: Best for Wallet and Exchange Teams

We called three public Bitcoin RPC endpoints and ran the same 31 Core methods against each. Every address method failed on every provider, and the one call that could have answered was blocked on one, timed out on another and rate limited on the third. They also disagree on how to say no: -32601, HTTP 501 with -32701, and a bare HTTP 429. One returned HTTP 200 with an empty result for a call that should not exist on mainnet.

Read

Query the whole Bitcoin blockchain

BitcoinDatabase indexes the public Bitcoin blockchain block by block and returns balances, UTXOs, transactions, on-chain metrics and fund flows by REST API, SQL and dashboards, with no node to run.

REST + SQL + dashboards · indexed since 2009 · new blocks within seconds

Informational on-chain data only · not financial, investment or legal advice · AML features are compliance tooling to support your own review.