Response shape
Success isdata, plus next on lists that page:
error, with an HTTP status that matches it:
error.code names the case and error.message says what to fix. See Errors.
An empty list is a success (200, "data": []). A single object that does not exist is 404.
Units
null and 0 mean different things: buys: 0 is “no buys”, buys: null is “not known”. A null safety field is unknown, not clean.
Addresses
- EVM addresses are accepted in any case and answered lowercase.
- Solana addresses are case-sensitive and answered as given.
- An address that cannot be one on that chain is
400:'abc' is not a Solana address. - Wherever one token or one wallet is named (its routes,
wallet=filters, live channels), a Solana address must also decode to a 32-byte key, or it is a400before any lookup. Over SSE that400comes before the stream starts; over the WebSocket it is anerrorframe with codebad_requestfor that subscription. - Lists (
/v1/tokens?ids=,/v1/prices?tokens=) leave out an id that looks like a Solana address (32 to 44 base58 characters) but is not a 32-byte key, and answer the others. An id that does not look like an address at all still fails the whole request with400.
Token shapes
marketCapUsd is always priceUsd × circulatingSupply, so it moves with the price you see.
Trades
A trade row is one side of one swap, seen from the token:side: "buy"means the wallet received the token.quoteAmount/quoteSymbolare the other side: SOL, USDC, WETH, BNB, …- One transaction can give several rows, also for one wallet. On Solana, two wallets that sign it are two rows. A multi-hop swap through the token can be a sell and a buy of the same wallet, and a swap routed through several pools can be several rows on the same side. On EVM chains a row is one swap log.
- Rows have no id. A trade in a stream’s
snapshotis not sent again as a frame, and the pages of one token trades walk do not repeat a row, so you need no deduplication of your own. If a list needs a key, usesignature+wallet+side+amount; neversignaturealone, orsignature+wallet.
tags label the trade or its wallet, from this list:
An empty
tags list means no label is known.
Wallet tags and labels
tags on holders and wallets are free-form strings (for example whale, kol, smart, or the trading app a wallet uses). label on a holder names an exchange or a pool when the holder is not a person.