Everything needed to decide about a token, in one call

GET
/chains/{chain}/tokens/{address}/brief

One document instead of six calls: the signed verdict, the trust score with the signals that made it, both liquidity figures with lock and burn, the 24-hour market on the deepest pool, holder concentration, the deployer's history and the flags. Fields arrive in a fixed order — verdict is early enough to decide on before the body finishes — and empty blocks are omitted rather than sent as null, because a null invites a reader to treat "not measured" as a measured zero.

A real token's brief is under two kilobytes. Poll it with If-None-Match: an unchanged token answers 304 and costs neither payment nor context.

A keyless caller past its budget can pay per call with x402, as on every priced operation; a caller with an API key is never challenged. The embedded verdict is the verdict endpoint's object unchanged, so a chain with no oracle carries status: "unknown" and no signature here too.

Path Parameters

chain*string

chain slug (ton) or numeric chain id (950000)

Length1 <= length <= 32
address*string

chain-native address; EVM addresses are case-insensitive

Length1 <= length <= 128

Header Parameters

If-None-Match?string

the ETag of the brief you already hold. An unchanged token answers 304 with no body, and costs neither payment nor context. This is the intended way to poll.

Lengthlength <= 128
Accept-Payment?string

payment methods the client can use, comma-separated, case-insensitive. With x402 in the list, a spent keyless budget answers 402 with the x402 challenge instead of 429.

PAYMENT-SIGNATURE?string

base64 x402 v2 payment payload for this request. A paid request skips the keyless budget and is settled only when it answers 2xx. The v1 header X-PAYMENT is accepted too.

Response Body

application/json

application/problem+json

application/problem+json

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://example.com/chains/string/tokens/string/brief"
{  "chain": "hyperliquid",  "as_of": "string",  "source": "string",  "verdict": {    "token_address": "string",    "chain": "hyperliquid",    "chain_id": 0,    "status": "string",    "reasons": [      "string"    ],    "reason_bits": 0,    "verdict_at": "string",    "signed_at": "string",    "expires_at": "string",    "signature": "string",    "signer": "string",    "oracle_address": "string"  },  "score": {    "value": 0,    "title": "string",    "signals": [      {        "kind": "string",        "weight": 0      }    ]  },  "liquidity": {    "usd": 0,    "onchain_usd": 0,    "locked_pct": 0,    "burned_pct": 0,    "earliest_unlock_at": "string"  },  "market": {    "price_usd": 0,    "volume_24h": 0,    "trades_24h": 0,    "change_24h": 0,    "best_pair": "string",    "dex": "string"  },  "holders": {    "top10_pct": 0,    "count": 0  },  "deployer": {    "address": "string",    "launches": 0,    "rugs": 0,    "status": "string"  },  "flags": [    "string"  ]}