Skip to main content
POST
Cheap labels + consensus risk (Tier 0+1+2)
Auth: Required · Cost: 0.1 credit per call (1 credit = 1 USDT of top-up) · Provider: Aegis only (Tier 0+1+2 — no graph traversal, no external providers)
The same SQL queries that x402-api’s $0.10 GET /screen/{chain}/{address} runs, billed as 0.1 credit against your credit balance instead of via on-chain USDC. Designed for high-volume B2B integrations: a wallet running a pre-send screen on every user-typed address will use this endpoint, not /v2/check-address. Same compute as x402’s /screen, but settled off-chain against your credit balance instead of an on-chain USDC transfer — no per-call settlement gas to amortise.

Request

There is no provider field — screen always runs Aegis (Tier 0+1+2). For the full 4-tier verdict (with 1-hop + BFS exposure), use POST /v2/check-address. Optional headers:

TON example

TON is a label-only network: the answer comes from labels and sanctions lists, and coverage.network_coverage says so explicitly (onchain_graph: false). A confirmed centralized-exchange wallet reads low with a score of at most 5, as on every other network.
TON addresses are case-sensitive; any spelling (UQ…, EQ…, raw 0:<hex>) is accepted and returned as the canonical UQ… form.

Response 200

coverage — read this before risk_level

risk_level: "none" means we found no risk signal, which is not the same as “this address is clean”. For an address nobody has ever enriched, a Tier 0+1+2 screen has nothing to say, and the honest verdict shape for that is none / 0. coverage.data_available is the field that tells the two apart:
Do not gate a transfer on risk_level === "none" alone. Treat coverage.data_available: false as unknown, not as clean — decide in your own policy whether unknown means allow, review, or escalate to /v2/check-address, which runs the full 4-tier analysis including the address’s counterparties.
graph_analysed is always false here by design — this endpoint never looks at who the address transacts with. An address that screens none can still come back high from /v2/check-address because its counterparties are what carry the risk. That is not a contradiction between two products; it is two different questions. Quota is charged whether or not we had data — the customer paid for the lookup, not for a guarantee of a hit.

Source naming

Every source named in this response is either Aegis itself or an openly licensed public source — sanctions registries (ofac-sdn, uk-ofsi-sanctions, eu-cfsp-sanctions), stablecoin issuer blacklists (tether-blacklist, circle-blacklist), open label registries (graphsense-tagpacks, ethereum-lists, …) and our own curated VASP registry. Their identity is the evidence, so they are cited by name. Labels from our internal working sources are not listed. Aegis also blends licensed commercial intelligence into its own verdict. That data moves risk_level / risk_score / risk_categories, but it is never returned as a row, a source slug or a label. The sources you see listed are therefore a subset of what moved the verdict — that gap is intentional. label is the owner’s name (the entity name when one is resolved, the token’s symbol for an ownerless token contract) or null. It is null whenever the name would come from a source we don’t publish, or the underlying claim is a risk annotation rather than an identity.

verdict object

Errors

Same envelope as POST /v2/check-address. Notable codes:

Pricing vs x402 /screen

This endpoint and x402 /screen return the same data — same SQL queries, same labels[] shape, same risk fields. They differ only in the commercial rail: If you’re a wallet putting this behind a “send to address” prompt for thousands of end-users, V2 is the right channel — same data, no on-chain settlement step on each call. Talk to sales for volume pricing.

See also

Authorizations

Authorization
string
header
required

Your aeg_… API key from the dashboard (Account → API tab).

Headers

Idempotency-Key
string | null

Body

application/json
address
string
required

On-chain wallet. EVM is lowercased internally; TRON/BTC/SOL preserved.

Required string length: 1 - 120
Examples:

"TScSLnUodZVsgoGchZspDoimDjDB9bwqVv"

"0x21a31ee1afc51d94c2efccaa2092ad1028285549"

network
string
required

Chain identifier (BSC, ETH, TRON, TON). See /v2/networks for allowed values.

Required string length: 1 - 20
Examples:

"TRON"

"ETH"

Response

Successful Response

The response is of type Response Check Address Light Screen Post · object.