Contents
Listed wallets (OFAC, FBI, post-mortems)
Listed wallets: addresses that an official source lists, with the source’s own category, wording, date and a link to the listing.
Description
Sources: the OFAC SDN list (every digital currency address, re-read daily; an address OFAC removes is delisted automatically and no longer returned), FBI / IC3 public service announcements that list addresses, and addresses an official incident post-mortem names (reviewed before they are published). listing reads "Listed as <category> by <source>, <date>"; for OFAC the date is the first SDN list in which we saw the address. No person is named and no counterparty is labelled. tracked = we follow its on-chain movements (EVM addresses on Ethereum, Arbitrum and Base, Bitcoin); other networks are listed only. Newest activity first, then newest listing. Paginated.
Who can call it
Available with every key and keyless (X-Blockmetric-Access: public). Keys of Free accounts get free-tier data (real-time feeds, 30 days of history, heatmap over time for every coin over the last 24 hours, liquidation levels now for every coin, the same as the free web plan); Pro and Desk keys the data of their plan; API Dev / API Pro raise the limits.
- No key
- 24 h
- Free
- 30 days
- Pro
- 365 days
- Desk
- 1095 days
- API Dev
- 365 days
- API Pro
- 1095 days
History window per plan. Limits: Authentication & limits.
Parameters
| Parameter | Description |
|---|---|
categorystring | sanctioned | stolen_funds | exploit | drainer | phishing | other (optional).one of sanctioned, stolen_funds, exploit, drainer, phishing, other |
networkstring | Address family: evm, bitcoin, tron, litecoin, monero … (optional).one of evm, bitcoin, tron, litecoin, monero, bitcoin_cash, dash, zcash, solana, ripple, dogecoin, bitcoin_gold, bitcoin_sv, verge, ethereum_classic, bnb_beacon, other |
sourcestring | ofac_sdn | fbi_ic3 | incident (optional).one of ofac_sdn, fbi_ic3, incident |
qstring | Address or part of one (optional). |
movedDaysinteger | Only addresses with a tracked movement in the last N days (1–400, optional).1–400 |
limitinteger | Number of items, default 100, clamped to 1–500.1–500 · default 100 |
cursorstring | Next page: the value of meta.nextCursor from the previous response (keep the other parameters unchanged). Cursors are signed: an edited cursor answers 400; paging stops at the plan history. |
fieldsstring | Comma-separated fields of every item to return, e.g. address,network,category,source (case-insensitive). All other fields are left out, so large lists get much smaller; an unknown name answers 400 with the list of fields. Default: every field. |
formatstring | json (default: the { data, meta } envelope) | csv (the rows with a header line; nested values as JSON text) | ndjson (one JSON object per row and line). csv and ndjson carry the meta block in headers: Link rel="next" and X-Blockmetric-Next-Cursor (next page), X-Blockmetric-Next-After (forward polling), X-Blockmetric-Updated-At, X-Blockmetric-Warnings, X-Blockmetric-License. Errors stay JSON.one of json, csv, ndjson · default json |
Response fields
Every success is { data, meta }; these are the fields of data. meta is the same on every endpoint.
| Field | Description |
|---|---|
[].addressstring | The address as listed (EVM and bech32 lower case, other formats as the source publishes them). |
[].networkstring | Address family: evm (one key on every EVM chain), bitcoin, tron, litecoin, monero … |
[].trackedboolean | We follow its on-chain movements (EVM on Ethereum, Arbitrum, Base; Bitcoin). |
[].category"sanctioned" | "stolen_funds" | "exploit" | "drainer" | "phishing" | "other" | The source’s classification. |
[].source"ofac_sdn" | "fbi_ic3" | "incident" | ofac_sdn | fbi_ic3 | incident. |
[].sourceLabelstring | How the source is named. |
[].sourceUrlstring | Link to the listing at the source. |
[].sourceDatestring · nullable | Date of the listing (YYYY-MM-DD). |
[].listingstring | "Listed as <category> by <source>, <date>". |
[].detailstring · nullable | The source’s own wording. Never a name. |
[].assetsstring · nullable | OFAC: currency tickers of the address fields. |
[].incidentIdinteger · nullable | Curated incident of the listing. |
[].firstSeenstring (ISO 8601) | When we first imported the listing. |
[].lastMoveTsstring (ISO 8601) · nullable | Newest tracked movement of the address. |
[].movementsinteger | Tracked movements of the address. |
[].balanceUsdnumber · nullable | Last known balance on the scanned EVM chains at our prices, null when not read or not priced (USD). |
[].balanceAtstring (ISO 8601) · nullable | When the balance was read. |
Errors
- 400
invalid_paramInvalid parameter - 401
unauthorizedMissing or invalid API key - 403
plan_requiredPlan does not include this - 403
scope_requiredKey not scoped for this API - 403
ip_not_allowedAddress not on the IP allowlist of the key - 403
origin_not_allowedKey used from a browser origin it does not allow - 403
source_restrictedExchange data not redistributed - 403
https_requiredhttps required - 429
rate_limitedPer-minute limit reachedretry - 429
daily_limit_exceededDaily limit reachedretry - 429
stream_limitToo many open streamsretry - 500
internal_errorInternal errorretry
Code snippets in these docs are licensed under MIT-0: copy them into your own code without attribution. The SDKs, CLI and MCP server will be, once published, Apache-2.0; the name Blockmetric is not licensed (forks must be renamed). Data from the API is governed by the API terms; third-party exchange data by the exchange’s terms.