FORENSIAWeb3 forensicsOpen workspace

Sanctions list screening

How addresses are checked against the U.S. Treasury sanctions list, how fresh the list is kept, and what a non-match does and does not mean.

2 min read · Screening and labels

#Plain languageIn plain terms

Governments publish lists of sanctioned people and organisations. The U.S. Treasury's list includes cryptocurrency addresses tied to some of them. Dealing with a listed address can have legal consequences.

Forensia checks the address you searched, and the addresses it dealt with, against that list. A match is shown as the government's listing, with the list's date. It is not Forensia's opinion about anyone.

#How it worksHow it works

  1. Twice a day, download the published list and pull out every cryptocurrency address in it.
  2. Refuse the download if it looks truncated or malformed.
  3. On each lookup, check the subject and its counterparties for an exact match.
  4. Report the outcome with the list's publication date.
  5. If the list is missing, too old or unreadable, say that no sanctions status can be shown.

#Technical detailThe exact rules

The source is the OFAC Specially Designated Nationals list, in its published XML form. Entries marked "Digital Currency Address" are extracted, whatever the currency.

SettingValue
RefreshEvery 12 hours
Freshness limit36 hours since the last successful refresh
Smallest list accepted250 addresses
Largest download accepted96 MiB
Addresses screened per lookupThe subject plus up to 256 others

The 250-address floor exists so that a cut-off or broken download can never silently replace a good list. If a refresh fails, the previous list stays in place until it ages past the freshness limit.

Matching is exact. Ethereum-style addresses are compared without regard to letter case. SegWit Bitcoin addresses are lowercased. Legacy Bitcoin addresses are compared exactly as written. Screened addresses are the subject plus every sender, recipient and token contract in the activity, plus every node on the graph.

OutcomeFindingClass
The subject is listedfinding:ofac-sdn-listed-subjectAttribution
A counterparty is listedfinding:ofac-sdn-listed-counterpartiesAttribution
The subject is not listedfinding:ofac-sdn-not-listed-subjectLimitation
Nobody in a transaction is listedfinding:ofac-sdn-not-listed-participantsLimitation
The list could not be usedfinding:sanctions-screening-unavailableLimitation

On the Analysis view, a non-match or the unavailable notice appears under "Lists checked", labelled "List check". A match on the subject appears on the fact sheet at the top and a match on a counterparty under "Who it dealt with", each labelled "Sanctions list".

A listed counterparty is drawn with risk emphasis on the graph. This is the only thing that ever marks a graph node that way.

#LimitsWhat it does not tell you

  • Only this one list is checked. Other countries' lists are not.
  • The match is on the address alone, across networks. A listing recorded for one currency will match the same address string on another network, and the result says which network you are on.
  • A recorded interaction with a listed address does not make the searched address sanctioned or establish intent.
  • Listings change. Confirm current status with the Treasury's own search before acting.
  • When the list is stale, screening fails closed: no status is shown, including for addresses that may be listed.