Skip to main content
GET

Overview

Screen Address says whether an address is on a list. This endpoint answers the next question a compliance check asks: has the wallet dealt with one? It screens the address itself, then goes one hop out. Every address it has ever transacted with (native, internal and ERC-20 transfers, in either direction) and the address that first sent it value are screened against the same lists, in one pass.
A wallet funded by a Tornado Cash withdrawal shows the pool contract as its funding source: the withdrawal arrives as an internal transaction from the sanctioned contract. This is the case the funding-source check exists to catch.

Authentication

Path Parameters

string
required
Ethereum address or ENS name

Query Parameters

string
default:"1"
Comma-separated chain ids to read, at most 5 (e.g. 1,8453). OFAC lists one EVM address, so a listed address is listed on every chain; the chains only decide whose activity is read.

Response

boolean
true if the address itself is on a list. matches holds the direct list entries.
object
The address that first sent value to the wallet, with chain_id, timestamp, transaction_hash, whether it is sanctioned and its matches. certain is false when the chain’s oldest rows could not all be read, so an earlier funding transaction may exist. null when nothing of value ever arrived.
object
counterparties_checked is the number of distinct addresses screened. sanctioned_counterparties lists the listed ones, most recently seen first, each with chains, direction (in, out or both, relative to the screened address), transaction_count, first_seen, last_seen, recent (contact within the last 90 days) and matches. recent at the top is true when any listed counterparty is recent.
string
sanctioned (the address is listed), funded_by_sanctioned (its first funds came from a listed address), exposed (it has transacted with a listed address) or none, in that order of precedence.
string
complete when every chain’s full history was read. partial when a chain was unavailable (listed in unavailable_chains) or has more rows than one query returns: the newest 10,000 transfers of each kind are read, so the oldest activity of a very busy wallet may be missing. unavailable when no chain answered; the direct screening result still stands.

Caching

A chain’s counterparty set is cached for 30 minutes. The list match itself runs on every request, so a new designation shows up within an hour of OFAC publishing it.