Top pairs of a token by 24h volume
The markets a token trades in on one chain, spot and perp, holding it on either leg, highest 24h volume first. Blocked pairs never appear. An empty list means no qualifying market, not an unknown token.
Path Parameters
chain slug (ton) or numeric chain id (950000)
1 <= length <= 32chain-native address; EVM addresses are case-insensitive
1 <= length <= 128Query Parameters
how many pairs
int321 <= value <= 1010Header Parameters
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.
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/pairs"{ "items": [ { "network": { "slug": "hyperliquid", "chain_id": 0 }, "dex": { "name": "string", "factory": "string", "factory_type": "string", "chain_id": 0, "lp_token_symbol": "string" }, "pair_address": "string", "prop_data": { "is_perp": false, "is_honeypot": false, "spot_disabled": false, "perp_disabled": false, "buy_tax": 0, "sell_tax": 0, "liquidity_range": { "low": 0, "high": 0, "low_at": 0, "high_at": 0 }, "perp": { "max_leverage": 0, "only_isolated": false, "funding_rate": 0, "open_interest": 0, "open_interest_usd": 0, "mark_price": 0, "oracle_price": 0, "premium": 0, "day_notional_volume": 0, "synced_at": "string" } }, "status": "string", "score": { "value": 0, "title": "string", "updated_at": "string", "risk_signals": [ { "kind": "string", "weight": 0, "group": "cannot_exit", "severity": "critical", "observed_at": "string" } ] }, "deployer": { "address": "string", "tx_hash": "string", "block_number": 0, "log_index": 0, "reputation": { "score": 0, "status": "string", "pairs_created": 0, "abused_launches": 0, "first_seen_at": "string" } }, "security": { "burned_pct": 0, "locked_pct": 0, "top_lock_provider": "string", "earliest_unlock_at": "string", "checked_at": "string" }, "verdict": { "status": "string" }, "ticker": "string", "pair_fee": 0, "tokens": [ { "name": "string", "symbol": "string", "address": "string", "status": "string", "chain_id": 0, "price_usd": 0, "price_native": 0, "position": 0, "decimals": 0, "reserve": 0, "total_supply": 0, "price_range": { "low": 0, "high": 0, "low_at": 0, "high_at": 0 } } ], "txn": { "m5": { "buys": 0, "sells": 0, "buy_volume": 0, "sell_volume": 0, "buyers": 0, "sellers": 0 }, "h1": { "buys": 0, "sells": 0, "buy_volume": 0, "sell_volume": 0, "buyers": 0, "sellers": 0 }, "h6": { "buys": 0, "sells": 0, "buy_volume": 0, "sell_volume": 0, "buyers": 0, "sellers": 0 }, "h24": { "buys": 0, "sells": 0, "buy_volume": 0, "sell_volume": 0, "buyers": 0, "sellers": 0 } }, "volume": { "m5": 0, "h1": 0, "h6": 0, "h24": 0 }, "price_change": { "m5": 0, "h1": 0, "h6": 0, "h24": 0 }, "liquidity_usd": 0, "liquidity_onchain_usd": 0, "apr": 0, "fees_usd_24h": 0, "last_updated_at": "string", "created_at": "string", "last_trade_at": "string", "price_native": 0.1, "windows": { "m5": { "price_change_pct": 0.1, "volume_usd": 0.1, "buy_volume_usd": 0.1, "sell_volume_usd": 0.1, "txns": { "buys": 0, "sells": 0 }, "buyers": 0, "sellers": 0 }, "h1": { "price_change_pct": 0.1, "volume_usd": 0.1, "buy_volume_usd": 0.1, "sell_volume_usd": 0.1, "txns": { "buys": 0, "sells": 0 }, "buyers": 0, "sellers": 0 }, "h6": { "price_change_pct": 0.1, "volume_usd": 0.1, "buy_volume_usd": 0.1, "sell_volume_usd": 0.1, "txns": { "buys": 0, "sells": 0 }, "buyers": 0, "sellers": 0 }, "h24": { "price_change_pct": 0.1, "volume_usd": 0.1, "buy_volume_usd": 0.1, "sell_volume_usd": 0.1, "txns": { "buys": 0, "sells": 0 }, "buyers": 0, "sellers": 0 } }, "launchpad": { "name": "string", "protocol": "string", "stage": "string", "completed_at": "string", "migrated_pool": "string" }, "safety": { "is_honeypot": true, "buy_tax": 0.1, "sell_tax": 0.1, "lp_locked_pct": 0.1, "lp_burned_pct": 0.1, "score": 0, "labels": [ "string" ] } } ], "next_cursor": "string", "prev_cursor": "string", "applied_sort": "liquidity", "applied_timeframe": "5m", "excluded_chains": [ "hyperliquid" ]}Canonical token by chain and address GET
Resolves a deployment address to the canonical token it belongs to. Responses are `no-store`: prices move faster than any cache would.
Signed token verdict, submittable to the trust oracle GET
What the avee trust oracle holds for one token, signed (EIP-712) so it can be submitted to `AveeTrustOracle.submitAttestation` or carried in a Uniswap v4 `hookData`. No key, no payment: a verdict nobody can read is a verdict nobody can act on. Read `status` and the signature together. `ok` means the oracle holds no block — it is **not** a clearance, and it never means the token was examined and found clean. A token nobody has evaluated answers `200` with `status: "unknown"` and no signature block at all, because a signed zero would be a claim nobody made. Chains with no oracle answer the same way, with `oracle_address` absent. `verdict_at` is when the verdict was reached; `signed_at` is when this response was signed and is the value the signature covers. An attestation can only tighten a verdict on chain: it may raise a status or set one where none exists, never lower one the relayer wrote.