Cheap labels + consensus risk (Tier 0+1+2)
V2 Public API
POST /v2/screen
Cheap labels + consensus risk in one call — server-side mirror of x402 /screen, billed via subscription quota.
POST
Cheap labels + consensus risk (Tier 0+1+2)
Auth: Required · Cost: 1 quota unit · Provider: Aegis only (Tier 0+1+2 — no graph traversal, no external providers)
$0.10 GET /screen/{chain}/{address} runs, billed
via your V2 quota 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 through your
subscription quota instead of an on-chain USDC transfer — no
per-call settlement gas to amortise.
Request
| Field | Type | Notes |
|---|---|---|
address | string | EVM hex (auto-lowercased) or base58 (TRON/BTC/SOL — case preserved) |
network | string | Case-insensitive. Must be in Aegis ingestion footprint — currently BSC, ETH, TRON. Other networks return 400 unsupported_network |
provider field — light always runs Aegis (Tier
0+1+2). If you need provider_b / provider_a or full 4-tier (with 1-hop +
BFS), use POST /v2/check-address.
Optional headers:
| Header | Purpose |
|---|---|
Idempotency-Key: <≤64 chars> | Replay-safe within 24h. Same key + same body → cached response, no charge. Different body → HTTP 409. |
Response 200
verdict.consensus_found: false, verdict.labels: [], and quota is still charged — the
customer paid for the lookup, not for a guarantee of a hit.
verdict object
| Field | Type | Notes |
|---|---|---|
ok | bool | Always true when status is 200 |
risk_level | enum | null | none / low / medium / high / critical / sanctioned |
risk_score | int 0..100 | null | Aggregated across sources |
risk_categories | string[] | Slugs only — see risk categories |
consensus_found | bool | false → no consensus row exists for this address |
source_count | int | How many sources contributed |
confidence | float 0..1 | null | Confidence-weighted consensus |
primary_source_slug | string | null | Highest-trust source contributing to the verdict |
label | string | null | Best human-readable label |
sdn_match | object | null | Tier-0 sanctions hit (OFAC SDN / UK OFSI / EU) |
labels[] | array | Per-source label rows — same shape as x402 /screen |
Errors
Same envelope as POST /v2/check-address. Notable codes:| HTTP | code | Why |
|---|---|---|
| 400 | bad_request | empty address / unknown network |
| 400 | unsupported_network | network not in Aegis ingestion footprint (currently BSC / ETH / TRON). Body has supported_networks |
| 401 | missing_api_key | no Authorization: Bearer … |
| 401 | invalid_api_key | unknown / revoked |
| 402 | quota_exceeded | body has billing.remaining |
| 409 | idempotency_conflict | same Idempotency-Key, different body |
| 502 | backend_unavailable | Supabase reachability failed. Quota refunded. |
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:
V2 /v2/screen | x402 /screen | |
|---|---|---|
| Audience | B2B partners (wallets, exchanges) | AI agents, anonymous |
| Settlement | Subscription quota debited per call (off-chain) | USDC on Base, settled per call ($0.10 floor — gas + facilitator fee) |
| Onboarding | Generate aeg_… key in your kabinet | Sign EIP-3009 transferAuthorization |
| Auth | Authorization: Bearer aeg_… | None — payment IS the auth |
See also
- V2 introduction
- POST /v2/check-address — full Aegis 4-tier verdict
- GET /screen// — the x402 counterpart of this endpoint
Authorizations
Your aeg_… API key from the dashboard (Account → API tab).
Headers
Body
application/json
On-chain wallet. EVM is lowercased internally; TRON/BTC/SOL preserved.
Required string length:
1 - 120Examples:
"TScSLnUodZVsgoGchZspDoimDjDB9bwqVv"
"0x21a31ee1afc51d94c2efccaa2092ad1028285549"
Chain identifier. See /v2/networks for allowed values.
Required string length:
1 - 20Examples:
"TRON"
"ETH"
Response
Successful Response
The response is of type Response Check Address Light Screen Post · object.

