Skip to main content
GET
$0.10 — per-source labels + Aegis consensus risk score
Tier: $0.10 · Asset: USDC · Network: Base
Tier 0+1+2+3 in one call:
  • sdn_match — direct lookup against OFAC SDN, UK OFSI, and EU sanctions lists. If the address is sanctioned, this is populated and risk.risk_level is forced to "sanctioned".
  • labels[] — per-source claims from openly licensed public sources (sanctions lists, Tether/Circle blacklists, GraphSense tagpacks and other open registries, our VASP registry). Licensed commercial intelligence informs the score but is never listed — see Source naming.
  • risk — the Aegis verdict: multi-source consensus (Tier 1+2) plus 1-hop inheritance (Tier 3) from the address’s immediate counterparties on TRON and EVM chains. No multi-hop BFS.
  • smart_contract — what kind of address it is, verified live on chain: EOA, contract, token_contract or unknown, plus the token’s symbol, decimals and icon.
  • entity — who owns the address (name + PNG logo), from any corroborated link.
Designed for “what is this address, and is it dangerous?” — sanctions screen + AML labels + risk score in a single $0.10 settlement.
2026-05-05. This endpoint replaces the old $0.10 /label and $0.20 /screen/light paths. Both are removed — same data is now returned here for $0.10. If your client still hits the old paths, it will get HTTP 404; update to /screen/{chain}/{address}.

Path parameters

Request

Response — 200

A wallet of a known exchange:
A token contract (USDT) — kind: token_contract, with the token’s icon:
SDN hit example (sdn_match populated; risk.risk_level is always "sanctioned" when this is non-null):

Top level

entity object

Who owns the address, for showing a name and a logo next to the verdict. entity is null when the address has no corroborated link to a VASP, when the verdict carries hack / scam / phishing / ransomware categories (a victim’s logo is never shown on an attacker’s address), and for unattributed placeholder entities. The logo URL follows the registry’s main branch, so an image can be replaced over time: cache it on your side, but do not treat it as immutable.

sdn_match object (when non-null)

labels[] rows

Stale claims are filtered out — you only see currently-believed labels. Sorted newest-last_seen_at first.

risk object

smart_contract object

Verified live (an on-chain code check, not only our database), so a fresh contract is recognised too.

coverage object

If we have no signal at all (no claims AND no consensus row), the endpoint still returns 200 with labels: [] and risk.consensus_found: false. Same paid-for-lookup contract: you paid for the lookup, not for a guarantee of a hit.

Response — 402

See Authentication for the quote schema.

Response — 503 (busy)

When screening capacity is saturated the endpoint answers within a few seconds with 503 and a Retry-After header, instead of holding the connection open. Retry after the indicated number of seconds.

When to use this vs other tiers

  • Use Check Address ($1.00) when you need multi-hop BFS exposure (source of funds several hops away). This tier stops at immediate counterparties.
  • Use Check Transfer ($0.50) to screen an inbound transaction rather than a single address.

High-volume B2B integrations

If you’re a wallet or exchange running a pre-send screen on every user-typed address, paying $0.10 per click adds up fast. Use the V2 API’s POST /v2/screen instead — sanctions + consensus (no 1-hop), billed from a prepaid balance, with no on-chain settlement floor.

Path Parameters

chain
string
required
address
string
required

Response

Successful Response

The response is of type Response Tier Screen Screen Chain Address Get · object.