> ## Documentation Index
> Fetch the complete documentation index at: https://docs.range.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Sanctions and Blacklist Check

> Check if a blockchain address is on a government sanctions list, such as OFAC, UK, or EU, or blacklisted by stablecoin issuers.


Check if a blockchain address is blacklisted by token issuers (Tether, Circle, Coinbase, PayPal, Paxos, Agora, Ripple) or listed on any sanctions list Range ingests: OFAC, UK, EU, EU Russia sanctions packages, France, and Japan, plus Israeli NBCTF seizure orders and FBI IC3 advisories. See [Understanding Risk Scores](/risk-api/product-info/understanding-risk-scores) for how this fits into Range's broader risk methodology.

* **Token Blacklist Events**: Real-time monitoring on Ethereum, Tron, Solana, Base, Arbitrum, Optimism, Polygon, and Avalanche for specific token issuers.
* **Sanctions Lists**: Sourced from official government publications and network-agnostic. The response names every list the address is on in `sanctions`.

<Info>
  **`is_sanctioned` and `is_ofac_sanctioned` are different flags.** `is_sanctioned` is `true` when the address is on any government sanctions list: OFAC, UK, EU, EU Russia packages, France, or Japan. `is_ofac_sanctioned` covers OFAC only, so an address sanctioned by the UK but not by OFAC returns `is_ofac_sanctioned: false` and `is_sanctioned: true`. Israeli NBCTF seizure orders and FBI IC3 advisories appear in `sanctions` but do not set `is_sanctioned`. For a broader check for malicious actors and exposure, use [Address Risk (v2)](/risk-api/risk-v2/get-address-risk) or [Address Risk Score (v1)](/risk-api/risk/get-address-risk-score).
</Info>

<Warning>
  **Pre-sign gates must fail closed.** `lists_checked: false` means a sanctions or blacklist store could not be read, so the result may be incomplete. `is_sanctioned` is then `null` unless a listing was found anyway, and `false` values in `is_ofac_sanctioned` and `is_token_blacklisted` are not a clean result either. Treat the address as unknown: block or retry, never allow.
</Warning>

***

## How It Works

The endpoint performs these checks:

1. **Token Blacklist Check**: Monitors onchain blacklist events emitted by token issuer contracts on **Ethereum, Tron, Solana, Base, Arbitrum, Optimism, Polygon, and Avalanche**. When issuers like Tether or Circle blacklist an address, it is blocked from transferring their tokens. The endpoint tracks freezes (`blacklist`), releases (`unblacklist`) and burns of a frozen balance (`destroyedblackfunds`) in real-time to determine the **current** status.

2. **OFAC Sanctions Check**: Cross-references the address against the US Treasury OFAC Specially Designated Nationals (SDN) list. OFAC data is sourced from official published reports and covers any network published by OFAC.

3. **Other Sanctions Lists**: Cross-references the address against every other list Range ingests (see [Sanctions List Coverage](#sanctions-list-coverage)). Each list the address is on, OFAC included, is one entry in `sanctions`.

4. **Attribution Data**: In addition to real-time blacklist events, the endpoint includes attribution labels that may provide extended context and information beyond what is captured in onchain events.

> **Note:** The `is_token_blacklisted` field reflects the **current** status based on the most recent event. An address that was blacklisted and later unblacklisted will show `false`. Use `blacklist_event_history` to view the complete history.

***

## Path Parameters

| Name | Type | Required | Description |
| - | - | - | - |
| address | string | ✅ | Blockchain address to check |

## Query Parameters

| Name | Type | Required | Default | Description |
| - | - | - | - | - |
| network | string | ❌ | none | `ethereum`, `tron`, `solana`, `base`, `arbitrum`, `optimism`, `polygon`, or `avalanche`. Does not narrow the check (see below) |
| include\_details | boolean | ❌ | true | Include event history, token status breakdown, and attribution |

> **Note:** `network` does not narrow the check. Blacklist status and sanctions lists are looked up by the address alone, across every network, so an EVM address frozen on any EVM network is flagged whichever network you pass. The value is only echoed in `network` when the address has no record. Accepted values are `ethereum`, `tron`, `solana`, `base`, `arbitrum`, `optimism`, `polygon`, and `avalanche`. Any other value returns HTTP 400.

***

### Sanctions List Coverage

Sanctions list data is sourced from official government publications and is network-agnostic. If an address appears on a list, it is flagged across all 300+ supported networks. See [Supported Chains](/risk-api/product-info/supported-chains) for full coverage.

| `signal_id` | `source` | `jurisdiction` | `basis` | Sets `is_sanctioned` |
| - | - | - | - | :-: |
| `ofac-sanctioned` | OFAC SDN | `US` | `direct` | ✅ |
| `uk-sanctioned` | UK FCDO / OFSI | `UK` | `direct` | ✅ |
| `eu-sanctioned` | EU sanctions | `EU` | `direct` or `indirect` | ✅ |
| `eu-sanction-ru` | EU Russia sanctions packages | `EU` | `indirect` | ✅ |
| `france-sanctioned` | France Trésor | `FR` | `direct` | ✅ |
| `japan-sanctioned` | Japan MoF | `JP` | `direct` | ✅ |
| `sanctioned` | Government sanctions list | `null` | `indirect` | ✅ |
| `nbctf-terror-financing` | Israel NBCTF | `IL` | `direct` | ❌ |
| `fbi-fraud` | FBI IC3 | `US` | `direct` | ❌ |

The `signal_id` is the same signal the Address Risk endpoints fire for that list: the `signal` value in [Address Risk (v2)](/risk-api/risk-v2/get-address-risk) and a `risk_categories` entry in [Address Risk Score (v1)](/risk-api/risk/get-address-risk-score). [List Signals & Behaviours](/risk-api/risk-v2/get-signals) returns the full catalog. `sanctioned` is Range's generic label for an address on a government sanctions list with no single named list; it is left out of `sanctions` when the address is also on a named government sanctions list. NBCTF and FBI IC3 listings do not count, so an address on NBCTF and the generic label keeps both entries. See [Risk Data Sources](/risk-api/product-info/risk-data-sources) for each source.

#### Direct and Indirect Listings

* **`direct`**: the list names this address itself. OFAC, UK, France, Japan, NBCTF, and FBI IC3 entries are direct, and so are EU entries where the EU financial sanctions file names the address.
* **`indirect`**: the list designates an entity or token, not the address, and Range attributed the address to it. The EU lists name entities rather than crypto addresses, so most EU entries are indirect, for example a wallet of an EU-sanctioned Russian entity or an A7A5 token holder. The generic `sanctioned` label is also indirect.

Both set `is_sanctioned`. An indirect entry rests on Range attribution, not on the list itself, so you can route it to review instead of an automatic block if your policy distinguishes the two.

### Supported Networks & Tokens (Blacklist Events)

Real-time blacklist event monitoring is available for the following token issuers:

| Network | Tokens monitored |
| - | - |
| Ethereum | USDT, USDC, EURC, cbBTC, PYUSD, AUSD, XAUT, RLUSD, USDP, USDG, PAXG, BUSD |
| Tron | USDT, USDC |
| Solana | USDT, USDC, PYUSD |
| Base | USDC, EURC, cbBTC, AUSD |
| Arbitrum | USDT, USDC, cbBTC, PYUSD, AUSD, XAUT |
| Optimism | USDT, USDC |
| Polygon | USDT, USDC, AUSD, XAUT |
| Avalanche | USDT, USDC, EURC, AUSD |

An EVM address is looked up by the address alone, so a freeze on any EVM network flags it on every network. See [Supported Tokens](/risk-api/product-info/supported-tokens#blacklist-monitoring) for the issuer of each token.

***

## Response Schema

The response contains the sanctions and blacklist status for the queried address. This example is a Bitcoin address of Rapira Group, on the UK sanctions list but not on OFAC's.

```json theme={null}
{
  "address": "bc1q72ud4m6zf5g37jkhc2ty95zm5vel9ufdxquqpm",
  "network": null,
  "is_token_blacklisted": false,
  "is_ofac_sanctioned": false,
  "checked_at": "2026-09-30T08:00:00.000Z",
  "token_status_summary": null,
  "blacklist_event_history": null,
  "ofac_info": null,
  "attribution": null,
  "lists_checked": true,
  "sanctions": [
    {
      "signal_id": "uk-sanctioned",
      "source": "UK FCDO / OFSI",
      "jurisdiction": "UK",
      "listed_at": "2026-05-26",
      "programs": ["RUSSIA"],
      "basis": "direct"
    }
  ],
  "is_sanctioned": true
}
```

### Top-Level Fields

| Field | Type | Description |
| - | - | - |
| `address` | string | The blockchain address that was checked. |
| `network` | string \| null | The address's network as stored with its record (a Range network id such as `eth`, `tron`, `arb1`). For an address with no record, the requested `network`, or `null`. |
| `is_token_blacklisted` | boolean | `true` if the address is **currently** blacklisted by any token issuer, on any network. |
| `is_ofac_sanctioned` | boolean | `true` if the address appears on the OFAC sanctions list. OFAC only; see `is_sanctioned` for every government list. |
| `is_sanctioned` | boolean \| null | `true` if the address is on any government sanctions list: OFAC, UK, EU, EU Russia packages, France, or Japan, direct or indirect. `false` when every list was read and none matched. `null` when a list could not be read and no listing was found: treat it as unknown, not clean. |
| `lists_checked` | boolean | `true` only when every sanctions and blacklist store answered. `false` means the result may be incomplete: fail closed or retry. |
| `sanctions` | array | One entry per list the address is on, OFAC included. Empty when none. See [Sanctions](#sanctions). |
| `checked_at` | string | Timestamp (ISO 8601) when this check was performed. |
| `token_status_summary` | array \| null | Breakdown of blacklist status per token. `null` when `include_details=false` or no blacklist data exists. |
| `blacklist_event_history` | array \| null | Chronological list of onchain blacklist, unblacklist and burn events. `null` when `include_details=false` or no events exist. |
| `ofac_info` | object \| null | Details about the OFAC sanction. `null` if not sanctioned. |
| `attribution` | object \| null | Additional labels and context for the address. `null` when `include_details=false` or no attribution exists. |

### Sanctions

One entry per list the address is on. See [Sanctions List Coverage](#sanctions-list-coverage) for every value of `signal_id`, `source`, and `jurisdiction`.

| Field | Type | Description |
| - | - | - |
| `signal_id` | string | The Address Risk signal for this list, e.g. `ofac-sanctioned`, `uk-sanctioned`, `eu-sanction-ru`. See [GET /v2/risk/signals](/risk-api/risk-v2/get-signals). |
| `source` | string | The list the address is on, e.g. `OFAC SDN`, `UK FCDO / OFSI`. |
| `jurisdiction` | string \| null | Jurisdiction of the list: `US`, `UK`, `EU`, `FR`, `JP`, or `IL`. `null` for the generic `sanctioned` label. |
| `listed_at` | string \| null | Date the address was first listed (YYYY-MM-DD) when the list gives one. EU Russia packages and France currently give none. |
| `programs` | array | Sanctions programs or regimes the listing falls under, e.g. `["RUSSIA"]`, `["CYBER2"]`. Empty when the list gives none. |
| `basis` | string | `direct` when the list names this address, `indirect` when the list names an entity or token and Range attributed the address to it. See [Direct and indirect listings](#direct-and-indirect-listings). |

### Token Status Summary

Shows the current blacklist status for each token and network that has flagged this address, one entry per token and network.

| Field | Type | Description |
| - | - | - |
| `token` | string | Token symbol, for example `USDT`, `USDC`, `cbBTC`, `PYUSD`. See [Supported Tokens](/risk-api/product-info/supported-tokens#blacklist-monitoring). |
| `issuer` | string | The company that issued the token: `Tether`, `Circle`, `Coinbase`, `PayPal`, `Paxos`, `Agora`, or `Ripple`. |
| `network` | string | Network of these events, as a Range network id: `eth`, `tron`, `solana`, `base`, `arb1`, `oeth`, `pol`, `avax`. |
| `is_currently_blacklisted` | boolean | `true` if the address is currently blocked from using this token on this network. |
| `first_blacklisted_date` | string | When the address was first blacklisted for this token on this network (YYYY-MM-DD). |
| `last_event_date` | string | Date of the most recent event. |
| `last_event_type` | string | `blacklist`, `unblacklist`, or `destroyedblackfunds`. Anything but `unblacklist` means currently blacklisted. |

### Blacklist Event History

A chronological record of all onchain blacklist and unblacklist events.

| Field | Type | Description |
| - | - | - |
| `event_type` | string | `blacklist` (address blocked), `unblacklist` (address unblocked), or `destroyedblackfunds` (frozen balance burned). |
| `token` | string | Token symbol. |
| `issuer` | string | Token issuer. |
| `network` | string | Network where the event occurred, as a Range network id: `eth`, `tron`, `solana`, `base`, `arb1`, `oeth`, `pol`, `avax`. |
| `date` | string | Event date (YYYY-MM-DD). |
| `block_number` | integer | Block number of the transaction. |
| `block_timestamp` | string | Timestamp of the block. |
| `transaction_hash` | string | Onchain transaction hash for verification. |
| `token_account` | string \| null | The token account address (Solana only). `null` for EVM chains. |

### OFAC Info

Details about OFAC sanctions. Only present when the address is sanctioned.

| Field | Type | Description |
| - | - | - |
| `is_sanctioned` | boolean | Always `true` when this object is present. |
| `name_tag` | string | Name of the sanctioned individual or entity. |
| `category` | string | Sanction category (e.g., "OFAC Sanctioned"). |
| `entity` | string | Sanctioning body (e.g., "OFAC"). |
| `address_role` | string | `Individual` or `Entity`. |
| `first_sanctioned_date` | string | Date when the address was first sanctioned (YYYY-MM-DD). |
| `sanction_url` | string | Link to the official OFAC announcement. |
| `programs` | array | OFAC sanctions programs, e.g. `["CYBER2"]`. |

### Attribution

Additional context and labels for the address, which may include information beyond onchain events.

| Field | Type | Description |
| - | - | - |
| `name` | string | Human-readable name or label for the address. |
| `category` | string | Category (e.g., "USDT Blacklist", "Multi-Provider Blacklist"). |
| `role` | string | Role description (e.g., "Blacklisted Address"). |
| `entity` | string \| null | Associated entity, if known. |
| `tags` | array \| null | List of tags (e.g., `["BLACKLISTED", "COMPLIANCE"]`). |
| `malicious` | boolean | `true` if the address is considered malicious. |

***

## Examples

### UK Sanctioned Only (Not OFAC)

The Rapira Group address from [Response Schema](#response-schema) is on the UK list only. `is_ofac_sanctioned` is `false`, while `is_sanctioned` is `true` and `sanctions` names the UK list.

```bash theme={null}
curl -G "https://api.range.org/v1/risk/sanctions/bc1q72ud4m6zf5g37jkhc2ty95zm5vel9ufdxquqpm" \
  -H "Authorization: Bearer your_api_key_here"
```

### Sanctioned on Several Lists

Garantex (`0x7FF9cFad3877F21d41Da833E2F775dB0569eE3D9`) is on OFAC, UK, and EU lists and is token blacklisted. The response has `is_token_blacklisted: true`, `is_ofac_sanctioned: true`, and `is_sanctioned: true`, with one `sanctions` entry per list. The two EU entries are `indirect` because the EU designates the entity, not the address.

| `signal_id` | `source` | `listed_at` | `programs` | `basis` |
| - | - | - | - | - |
| `ofac-sanctioned` | OFAC SDN | `2022-04-05` | `["CYBER4", "RUSSIA-EO14024"]` | `direct` |
| `uk-sanctioned` | UK FCDO / OFSI | `2022-05-04` | `["RUSSIA"]` | `direct` |
| `eu-sanctioned` | EU sanctions | `null` | `[]` | `indirect` |
| `eu-sanction-ru` | EU Russia sanctions packages | `null` | `[]` | `indirect` |

The OFAC entry's `listed_at` and `programs` come from `ofac_info.first_sanctioned_date` and `ofac_info.programs`.

### Lists Could Not Be Read

When a sanctions or blacklist store does not answer and no listing is found, the response still returns 200 with these fields:

```json theme={null}
{
  "lists_checked": false,
  "sanctions": [],
  "is_sanctioned": null
}
```

`is_ofac_sanctioned` and `is_token_blacklisted` can read `false` in this case without the address being clean. Block or retry; do not allow.

<Note>
  The examples below focus on the blacklist and OFAC fields. They omit `lists_checked`, `sanctions`, and `is_sanctioned`, which every response also carries.
</Note>

### Multi-Provider Blacklisted Address

An address blacklisted by multiple stablecoin issuers (USDT, USDC, USDP, CBBTC) on Ethereum.

```bash theme={null}
curl -G "https://api.range.org/v1/risk/sanctions/0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a" \
  -H "Authorization: Bearer your_api_key_here"
```

```json theme={null}
{
  "address": "0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a",
  "network": null,
  "is_token_blacklisted": true,
  "is_ofac_sanctioned": false,
  "checked_at": "2025-12-01T16:05:38.977186Z",
  "token_status_summary": [
    {
      "token": "CBBTC",
      "issuer": "Coinbase",
      "is_currently_blacklisted": true,
      "first_blacklisted_date": "2024-09-09",
      "last_event_date": "2025-09-11",
      "last_event_type": "blacklist"
    },
    {
      "token": "USDC",
      "issuer": "Circle",
      "is_currently_blacklisted": true,
      "first_blacklisted_date": "2021-04-21",
      "last_event_date": "2021-04-21",
      "last_event_type": "blacklist"
    },
    {
      "token": "USDP",
      "issuer": "Paxos",
      "is_currently_blacklisted": true,
      "first_blacklisted_date": "2024-01-03",
      "last_event_date": "2024-01-03",
      "last_event_type": "blacklist"
    },
    {
      "token": "USDT",
      "issuer": "Tether",
      "is_currently_blacklisted": true,
      "first_blacklisted_date": "2023-12-09",
      "last_event_date": "2023-12-09",
      "last_event_type": "blacklist"
    }
  ],
  "blacklist_event_history": [
    {
      "event_type": "blacklist",
      "token": "USDC",
      "issuer": "Circle",
      "network": "ethereum",
      "date": "2021-04-21",
      "block_number": 12285873,
      "block_timestamp": "2021-04-21 23:04:36",
      "transaction_hash": "72959622df120df8cfe27fa371c5b82542cda695d09568975259c0cf70430bf9",
      "token_account": null
    },
    {
      "event_type": "blacklist",
      "token": "USDT",
      "issuer": "Tether",
      "network": "ethereum",
      "date": "2023-12-09",
      "block_number": 18749975,
      "block_timestamp": "2023-12-09 17:51:23",
      "transaction_hash": "15fa3cb1cea19b075d8dafeb3a003061f7191025f9ef9d785374786eb4c9e6a2",
      "token_account": null
    },
    {
      "event_type": "blacklist",
      "token": "USDP",
      "issuer": "Paxos",
      "network": "ethereum",
      "date": "2024-01-03",
      "block_number": 18928262,
      "block_timestamp": "2024-01-03 18:16:59",
      "transaction_hash": "087498e654622570d0c5f8639c1e02db28ea8ac647c31a470f89412387cd0ab4",
      "token_account": null
    },
    {
      "event_type": "blacklist",
      "token": "CBBTC",
      "issuer": "Coinbase",
      "network": "ethereum",
      "date": "2024-09-09",
      "block_number": 20714651,
      "block_timestamp": "2024-09-09 19:49:23",
      "transaction_hash": "b051ee06b9fc656c0a2c8009d2a553a2ba8a09dbaf0eff35c2899197815306f8",
      "token_account": null
    }
  ],
  "ofac_info": null,
  "attribution": {
    "name": "Multi-Provider Blacklisted Address (9b5a)",
    "category": "Multi-Provider Blacklist",
    "role": "Blacklisted Address",
    "entity": null,
    "tags": ["BLACKLISTED", "STABLECOIN-ISSUER", "COMPLIANCE"],
    "malicious": true
  }
}
```

### OFAC Sanctioned and Token Blacklisted

An address that is both OFAC sanctioned and token blacklisted by multiple providers.

```bash theme={null}
curl -G "https://api.range.org/v1/risk/sanctions/0x8576acc5c05d6ce88f4e49bf65bdf0c62f91353c" \
  -H "Authorization: Bearer your_api_key_here"
```

```json theme={null}
{
  "address": "0x8576acc5c05d6ce88f4e49bf65bdf0c62f91353c",
  "network": null,
  "is_token_blacklisted": true,
  "is_ofac_sanctioned": true,
  "checked_at": "2025-12-01T16:06:07.870004Z",
  "token_status_summary": [
    {
      "token": "USDC",
      "issuer": "Circle",
      "is_currently_blacklisted": true,
      "first_blacklisted_date": "2022-03-29",
      "last_event_date": "2022-03-29",
      "last_event_type": "blacklist"
    },
    {
      "token": "USDT",
      "issuer": "Tether",
      "is_currently_blacklisted": true,
      "first_blacklisted_date": "2023-12-09",
      "last_event_date": "2023-12-09",
      "last_event_type": "blacklist"
    }
  ],
  "blacklist_event_history": [
    {
      "event_type": "blacklist",
      "token": "USDC",
      "issuer": "Circle",
      "network": "ethereum",
      "date": "2022-03-29",
      "block_number": 14481178,
      "block_timestamp": "2022-03-29 14:49:03",
      "transaction_hash": "5906c3dac2d75f141b72baa61842a9881e9d31ee36f761ffc7059ffc86c7e452",
      "token_account": null
    },
    {
      "event_type": "blacklist",
      "token": "USDT",
      "issuer": "Tether",
      "network": "ethereum",
      "date": "2023-12-09",
      "block_number": 18750100,
      "block_timestamp": "2023-12-09 18:17:11",
      "transaction_hash": "dbd24a66f187242bf3a8f8ce4a50a4b9143889dc988c7113d2e1069165332534",
      "token_account": null
    }
  ],
  "ofac_info": {
    "is_sanctioned": true,
    "name_tag": "ANDREYEV, Anton Nikolaeyvich",
    "category": "OFAC Sanctioned",
    "entity": "OFAC",
    "address_role": "Individual",
    "first_sanctioned_date": "2020-09-10",
    "sanction_url": "https://ofac.treasury.gov/recent-actions/20200910"
  },
  "attribution": {
    "name": "USDP Blacklisted Address (353c)",
    "category": "Multi-Provider Blacklist",
    "role": "Blacklisted Address",
    "entity": "OFAC",
    "tags": ["BLACKLISTED", "STABLECOIN-ISSUER", "COMPLIANCE"],
    "malicious": true
  }
}
```

### OFAC Sanctioned Only

A Tron address that is OFAC sanctioned but not token blacklisted.

```bash theme={null}
curl -G "https://api.range.org/v1/risk/sanctions/TMGLqRQ4twjW8wJhVH1mQR7nUThpGHUsN3" \
  -H "Authorization: Bearer your_api_key_here"
```

```json theme={null}
{
  "address": "TMGLqRQ4twjW8wJhVH1mQR7nUThpGHUsN3",
  "network": null,
  "is_token_blacklisted": false,
  "is_ofac_sanctioned": true,
  "checked_at": "2025-12-01T16:06:15.993588Z",
  "token_status_summary": null,
  "blacklist_event_history": null,
  "ofac_info": {
    "is_sanctioned": true,
    "name_tag": "GAMBASHIDZE, Ilya Andreevich",
    "category": "OFAC Sanctioned",
    "entity": "OFAC",
    "address_role": "Individual",
    "first_sanctioned_date": "2024-03-20",
    "sanction_url": "https://ofac.treasury.gov/recent-actions/20240703"
  },
  "attribution": {
    "name": "GAMBASHIDZE, Ilya Andreevich",
    "category": "OFAC Sanctioned",
    "role": "Individual",
    "entity": "OFAC",
    "tags": null,
    "malicious": true
  }
}
```

### Solana Blacklisted Address

A Solana address blacklisted by Tether. Note the `token_account` field which is specific to Solana.

```bash theme={null}
curl -G "https://api.range.org/v1/risk/sanctions/6sEk1enayZBGFyNvvJMTP7qs5S3uC7KLrQWaEk38hSHH" \
  -H "Authorization: Bearer your_api_key_here"
```

```json theme={null}
{
  "address": "6sEk1enayZBGFyNvvJMTP7qs5S3uC7KLrQWaEk38hSHH",
  "network": null,
  "is_token_blacklisted": true,
  "is_ofac_sanctioned": false,
  "checked_at": "2025-12-01T16:06:27.732211Z",
  "token_status_summary": [
    {
      "token": "USDT",
      "issuer": "Tether",
      "is_currently_blacklisted": true,
      "first_blacklisted_date": "2022-11-12",
      "last_event_date": "2022-11-12",
      "last_event_type": "blacklist"
    }
  ],
  "blacklist_event_history": [
    {
      "event_type": "blacklist",
      "token": "USDT",
      "issuer": "Tether",
      "network": "solana",
      "date": "2022-11-12",
      "block_number": 160590544,
      "block_timestamp": "2022-11-12 07:26:36",
      "transaction_hash": "5vQBXFxiSgufuLUpm6ugfxynd43P8tAa94SDeqtFvvvqzXa1DW8us4GRM3MS4QFnvcSHqD9DNPihuqnYJ9GbY7Qh",
      "token_account": "EdP6JNB26MrKzfsieCPz593VUgrDrpziQKstzCAFvNBP"
    }
  ],
  "ofac_info": null,
  "attribution": {
    "name": "",
    "category": "",
    "role": "",
    "entity": null,
    "tags": ["BLACKLISTED", "STABLECOIN-ISSUER", "COMPLIANCE"],
    "malicious": true
  }
}
```

### Previously Blacklisted (Now Unblacklisted)

An address that was blacklisted then unblacklisted. `is_token_blacklisted` is `false` but the full history is preserved.

```bash theme={null}
curl -G "https://api.range.org/v1/risk/sanctions/0x9faf5515f177f3a8a845d48c19032b33cc54c09c" \
  -H "Authorization: Bearer your_api_key_here"
```

```json theme={null}
{
  "address": "0x9faf5515f177f3a8a845d48c19032b33cc54c09c",
  "network": null,
  "is_token_blacklisted": false,
  "is_ofac_sanctioned": false,
  "checked_at": "2025-12-01T16:06:37.232941Z",
  "token_status_summary": [
    {
      "token": "USDT",
      "issuer": "Tether",
      "is_currently_blacklisted": false,
      "first_blacklisted_date": "2017-11-28",
      "last_event_date": "2017-11-28",
      "last_event_type": "unblacklist"
    }
  ],
  "blacklist_event_history": [
    {
      "event_type": "blacklist",
      "token": "USDT",
      "issuer": "Tether",
      "network": "ethereum",
      "date": "2017-11-28",
      "block_number": 4638805,
      "block_timestamp": "2017-11-28 17:39:10",
      "transaction_hash": "17ce88e3e2417f6c13db93f619423cc4c5f51e89660587631dc34c823fac54a8",
      "token_account": null
    },
    {
      "event_type": "unblacklist",
      "token": "USDT",
      "issuer": "Tether",
      "network": "ethereum",
      "date": "2017-11-28",
      "block_number": 4638882,
      "block_timestamp": "2017-11-28 17:59:39",
      "transaction_hash": "520a66112467b4b79016c2a62658b56e8f78049bae8bf6f4ce4bf39ec2d75ba8",
      "token_account": null
    }
  ],
  "ofac_info": null,
  "attribution": {
    "name": "USDT Unblacklisted Address (0x9fa)",
    "category": "USDT Blacklist",
    "role": "Unblacklisted Address",
    "entity": null,
    "tags": ["UNBLACKLISTED", "STABLECOIN-ISSUER", "COMPLIANCE"],
    "malicious": true
  }
}
```

### Clean Address

An address with no sanctions or blacklist history.

```bash theme={null}
curl -G "https://api.range.org/v1/risk/sanctions/0x1234567890abcdef1234567890abcdef12345678" \
  -H "Authorization: Bearer your_api_key_here"
```

```json theme={null}
{
  "address": "0x1234567890abcdef1234567890abcdef12345678",
  "network": null,
  "is_token_blacklisted": false,
  "is_ofac_sanctioned": false,
  "checked_at": "2025-12-01T16:07:06.387337Z",
  "token_status_summary": null,
  "blacklist_event_history": null,
  "ofac_info": null,
  "attribution": null
}
```

### Minimal Response

Use `include_details=false` for high-volume screening when you only need pass/fail results.

```bash theme={null}
curl -G "https://api.range.org/v1/risk/sanctions/0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a" \
  --data-urlencode "include_details=false" \
  -H "Authorization: Bearer your_api_key_here"
```

```json theme={null}
{
  "address": "0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a",
  "network": null,
  "is_token_blacklisted": true,
  "is_ofac_sanctioned": false,
  "checked_at": "2025-12-01T16:07:27.972840Z",
  "token_status_summary": null,
  "blacklist_event_history": null,
  "ofac_info": null,
  "attribution": null
}
```

***

## Errors

| HTTP Code | Cause | Recommended Action |
| -: | - | - |
| **400** | Invalid address format | Validate the address format before making the request |
| **429** | Rate limit exceeded | Implement exponential backoff and retry |
| **5xx** | Internal server error | Retry after a short delay; contact support if persists |

***

## Case Auto-Creation

When the request uses a workspace-scoped key and `case_auto_create` is enabled in the workspace [risk configuration](/risk-api/risk-v2/get-config), a hit opens a `sanctions_screen` case:

* **OFAC or an issuer blacklist**: a `severe` case, always.
* **Any other government sanctions list**: a case only when that list's signal is enabled in the workspace's `attribution_signals`, at the severity the workspace configured for it. When the address is on several such lists, the case takes the highest configured severity.
* **Israel NBCTF and FBI IC3 entries**: no case, since they do not set `is_sanctioned`.

***

## Best Practices

* **Gate on the right flags**: For sanctions screening across every government list, check `is_sanctioned` and `is_token_blacklisted`. Check `is_ofac_sanctioned` only when a policy is OFAC-specific.
* **Fail closed**: Treat `lists_checked: false` or `is_sanctioned: null` as unknown, not clean. Block or retry.
* **Decide on indirect listings**: Use `sanctions[].basis` to route `indirect` entries to review if your policy treats Range attribution differently from a list naming the address.
* **Real-time checks**: Blacklist status can change; avoid caching for high-risk use cases.
* **Use full details**: Keep `include_details=true` (default) when you need event history.
* **Addresses are case-insensitive**: Both `0x1DA5...` and `0x1da5...` return identical results.

***

## Use Cases

* **Pre-transaction screening**: Check counterparty addresses before processing payments or transfers.
* **Exchange compliance**: Screen addresses during deposit/withdrawal flows.
* **DeFi integration**: Add sanctions checks to smart contract interactions or front-ends.
* **Audit trails**: Generate compliance reports with full event history.


## OpenAPI

````yaml get /v1/risk/sanctions/{address}
openapi: 3.0.0
info:
  title: Range Risk API
  description: The Range Risk API for risk assessment of crypto addresses.
  version: 1.7.29
  contact: {}
servers:
  - url: https://api.range.org
    description: Range API Server
security:
  - Authorization: []
tags:
  - name: Risk
    description: Get risk information about a crypto address.
  - name: Risk v2
    description: >-
      Address risk assessment, workspace configuration, and signals catalogue
      (API v2).
  - name: Simulator
    description: Simulate a transaction on a network.
paths:
  /v1/risk/sanctions/{address}:
    get:
      tags:
        - Risk
      summary: Check Blacklist & Sanctions
      description: >-
        Check if an address is blacklisted by token issuers (Tether, Circle,
        Coinbase, PayPal, Paxos, Agora, Ripple) or on a sanctions list: OFAC,
        UK, EU, France, Japan, plus Israeli NBCTF seizure orders and FBI IC3
        advisories. `is_sanctioned` covers every government sanctions list;
        `is_ofac_sanctioned` covers OFAC only. Issuer blacklists are monitored
        on Ethereum, Tron, Solana, Base, Arbitrum, Optimism, Polygon, Avalanche;
        an EVM address frozen on any of them is flagged on all.
      operationId: getBlacklistCheck
      parameters:
        - name: address
          required: true
          in: path
          description: Blockchain address to check (EVM, Solana, or Tron format)
          schema:
            example: '0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a'
            type: string
        - name: network
          required: false
          in: query
          description: >-
            Does not narrow the check: the address is looked up across every
            network, so an EVM address frozen on any network is flagged. Only
            echoed in the response `network` when the address has no record.
          schema:
            enum:
              - ethereum
              - tron
              - solana
              - base
              - arbitrum
              - optimism
              - polygon
              - avalanche
            type: string
        - name: include_details
          required: false
          in: query
          description: 'Include detailed event history and attribution (default: true)'
          schema:
            default: true
            type: boolean
      responses:
        '200':
          description: Blacklist and sanctions check result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlacklistCheckResponse'
              examples:
                uk_listed:
                  summary: On the UK list only (Rapira Group LLC)
                  value:
                    address: bc1q72ud4m6zf5g37jkhc2ty95zm5vel9ufdxquqpm
                    network: null
                    is_token_blacklisted: false
                    is_ofac_sanctioned: false
                    token_status_summary: null
                    blacklist_event_history: null
                    ofac_info: null
                    attribution: null
                    checked_at: '2026-09-30T09:18:06.419Z'
                    lists_checked: true
                    sanctions:
                      - signal_id: uk-sanctioned
                        source: UK FCDO / OFSI
                        jurisdiction: UK
                        listed_at: '2026-05-26'
                        programs:
                          - RUSSIA
                        basis: direct
                    is_sanctioned: true
                lists_unavailable:
                  summary: 'A list could not be read: unknown, not clean'
                  value:
                    address: bc1q72ud4m6zf5g37jkhc2ty95zm5vel9ufdxquqpm
                    network: null
                    is_token_blacklisted: false
                    is_ofac_sanctioned: false
                    token_status_summary: null
                    blacklist_event_history: null
                    ofac_info: null
                    attribution: null
                    checked_at: '2026-09-30T09:18:06.419Z'
                    lists_checked: false
                    sanctions: []
                    is_sanctioned: null
components:
  schemas:
    BlacklistCheckResponse:
      type: object
      properties:
        address:
          type: string
          description: The queried blockchain address
          example: '0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a'
        network:
          type: string
          nullable: true
          description: Network filter applied (null if all networks checked)
          example: ethereum
        is_token_blacklisted:
          type: boolean
          description: Whether address is currently blacklisted by any token issuer
          example: true
        is_ofac_sanctioned:
          type: boolean
          description: Whether address is on OFAC sanctions list
          example: false
        is_sanctioned:
          type: boolean
          nullable: true
          description: >-
            Whether the address is on any government sanctions list: OFAC, UK,
            EU, EU Russia packages, France, Japan. Israeli NBCTF seizure orders
            and FBI IC3 advisories appear in `sanctions` but do not set this.
            Indirect designations count (see `sanctions[].basis`). null when a
            list could not be read (`lists_checked: false`) and none was found:
            treat it as unknown, not as clean.
          example: true
        lists_checked:
          type: boolean
          description: >-
            Whether every sanctions and blacklist store answered. false means
            the result may be incomplete: a caller gating on it should fail
            closed or retry.
          example: true
        sanctions:
          description: >-
            Every list the address is on, one entry per list, including OFAC
            (empty when none)
          type: array
          items:
            $ref: '#/components/schemas/SanctionsListing'
        checked_at:
          type: string
          description: UTC timestamp when check was performed (ISO 8601)
          example: '2025-11-28T12:53:24Z'
        token_status_summary:
          nullable: true
          description: >-
            Current blacklist status per token and network (when
            include_details=true)
          type: array
          items:
            $ref: '#/components/schemas/TokenBlacklistStatus'
        blacklist_event_history:
          nullable: true
          description: >-
            Chronological list of blacklist/unblacklist events (when
            include_details=true)
          type: array
          items:
            $ref: '#/components/schemas/BlacklistEvent'
        ofac_info:
          nullable: true
          description: OFAC sanction details (when sanctioned)
          type: object
          allOf:
            - $ref: '#/components/schemas/OFACSanctionInfo'
        attribution:
          nullable: true
          description: Known attribution/label for the address
          type: object
          allOf:
            - $ref: '#/components/schemas/BlacklistAttribution'
      required:
        - address
        - network
        - is_token_blacklisted
        - is_ofac_sanctioned
        - checked_at
    SanctionsListing:
      type: object
      properties:
        signal_id:
          type: string
          description: >-
            Risk signal id this list fires on /v1 and /v2 risk/address (see GET
            /v2/risk/signals)
          enum:
            - ofac-sanctioned
            - uk-sanctioned
            - eu-sanctioned
            - eu-sanction-ru
            - france-sanctioned
            - japan-sanctioned
            - sanctioned
            - nbctf-terror-financing
            - fbi-fraud
          example: uk-sanctioned
        source:
          type: string
          description: List the address is on
          example: UK FCDO / OFSI
        jurisdiction:
          type: string
          nullable: true
          description: Jurisdiction of the list (null for an unspecified government list)
          example: UK
        listed_at:
          type: string
          nullable: true
          description: >-
            Date the address was first listed (YYYY-MM-DD), when the list gives
            one
          example: '2026-05-26'
        programs:
          description: Sanctions programs or regimes the listing falls under
          example:
            - RUSSIA
          type: array
          items:
            type: string
        basis:
          type: string
          description: >-
            `direct`: the list names this address. `indirect`: the list names an
            entity or token (the EU lists name entities, not addresses) and
            Range attributed this address to it, e.g. a wallet of a designated
            Russian entity or an A7A5 token holder. Both set `is_sanctioned`;
            `indirect` rests on Range attribution, not on the list itself.
          enum:
            - direct
            - indirect
          example: direct
      required:
        - signal_id
        - source
        - jurisdiction
        - listed_at
        - programs
        - basis
    TokenBlacklistStatus:
      type: object
      properties:
        token:
          type: string
          description: Token symbol, e.g. USDT, USDC, PYUSD
          example: USDT
        issuer:
          type: string
          description: >-
            Token issuer (Tether, Circle, Coinbase, PayPal, Paxos, Agora,
            Ripple)
          example: Tether
        network:
          type: string
          description: >-
            Range network id this status is for (eth, base, arb1, oeth, pol,
            avax, tron, solana). A token can have one entry per network. An EVM
            address frozen on any chain counts as blacklisted on every EVM
            chain: the same address has the same owner.
          example: eth
        is_currently_blacklisted:
          type: boolean
          description: Whether address is currently blacklisted by this token
        first_blacklisted_date:
          type: string
          description: Date of first blacklist event (YYYY-MM-DD)
          example: '2023-12-09'
        last_event_date:
          type: string
          description: Date of most recent event
          example: '2023-12-09'
        last_event_type:
          type: string
          description: >-
            Type of most recent event. Anything but unblacklist means currently
            blacklisted.
          enum:
            - blacklist
            - unblacklist
            - destroyedblackfunds
      required:
        - token
        - issuer
        - is_currently_blacklisted
    BlacklistEvent:
      type: object
      properties:
        event_type:
          type: string
          description: Event type
          enum:
            - blacklist
            - unblacklist
            - destroyedblackfunds
        token:
          type: string
          description: Token symbol
          example: USDC
        issuer:
          type: string
          description: Token issuer
          example: Circle
        network:
          type: string
          description: >-
            Range network id where the event happened (eth, base, arb1, oeth,
            pol, avax, tron, solana)
          example: eth
        date:
          type: string
          description: Event date (YYYY-MM-DD)
          example: '2021-04-21'
        block_number:
          type: number
          description: Block number
          example: 12285873
        block_timestamp:
          type: string
          description: Block timestamp
          example: '2021-04-21 23:04:36'
        transaction_hash:
          type: string
          description: Transaction hash
        token_account:
          type: string
          description: Token account address (Solana only)
      required:
        - event_type
        - token
        - issuer
        - network
        - date
    OFACSanctionInfo:
      type: object
      properties:
        is_sanctioned:
          type: boolean
          description: Whether address is OFAC sanctioned
        name_tag:
          type: string
          description: Name of sanctioned entity/individual
          example: ANDREYEV, Anton Nikolaeyvich
        category:
          type: string
          description: Category
          example: OFAC Sanctioned
        entity:
          type: string
          description: Entity name
          example: OFAC
        address_role:
          type: string
          description: 'Role type: Individual or Entity'
          example: Individual
        first_sanctioned_date:
          type: string
          description: Date of sanction (YYYY-MM-DD)
          example: '2020-09-10'
        sanction_url:
          type: string
          description: URL to OFAC announcement
          example: https://ofac.treasury.gov/recent-actions/20200910
        programs:
          description: OFAC sanctions programs
          example:
            - CYBER2
          type: array
          items:
            type: string
      required:
        - is_sanctioned
    BlacklistAttribution:
      type: object
      properties:
        name:
          type: string
          description: Name tag for the address
          example: cbBTC Blacklisted Address (9b5a)
        category:
          type: string
          description: Category
          example: cbBTC Blacklist
        role:
          type: string
          description: Address role
          example: Blacklisted Address
        entity:
          type: string
          description: Associated entity
        tags:
          description: Tags associated with the address
          example:
            - BLACKLISTED
            - STABLECOIN-ISSUER
            - COMPLIANCE
          type: array
          items:
            type: string
        malicious:
          type: boolean
          description: Whether marked as malicious
  securitySchemes:
    Authorization:
      type: apiKey
      in: header
      name: X-API-KEY
      description: Authorization method required to allow user to access the api endpoints.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.