Skip to main content
GET
GET /v1/assets · 1 credit per page Every asset with all its tokens, page by page: the full table to keep in cache and map any token to its asset locally. Filter by category, chain or underlying. meta.version changes when the list changes.
meta.total is the number of assets matching the filters, meta.hasMore and meta.nextCursor drive the pagination.
Every token of an asset is worth one unit of the asset, so balances can be summed as is. kind says how: native (the asset itself: a chain’s native coin or the issuer’s own contract), wrapped (a 1:1 wrapper: WETH, WBTC, cbBTC), bridged (a 1:1 copy moved by a bridge: USDC.e, USDbC, Binance-Peg ETH).
Staked and yield-bearing versions (stETH, wstETH, LBTC, jitoSOL, sUSDe) are never inside the asset they stake, since their value drifts from it: each is its own asset with category: "staked" and underlying set to that asset’s id. List them with GET /v1/assets?underlying=eth.
On Arc and Stable, the chain’s native coin and its ERC-20 contract are the same balance seen twice (0x0000…0000 and 0x3600…0000 for USDC on Arc, 0x0000…0000 and 0x779d…3736 for USDT0 on Stable): both map to the asset, count only one of them.

Authorizations

Authorization
string
header
required

Your raw API key (not needed on the demo server).

Query Parameters

category
string

One of coin (a chain's native coin: BTC, ETH, SOL...), stablecoin, staked, commodity, stock, token.

chain
string

Only the assets with at least one token on this chain (each asset still lists all its tokens).

underlying
string

Only the staked assets of this asset id (eth: stETH, wstETH, rETH...).

limit
integer
default:100

Assets per page, 1 to 250 (default 100).

Required range: 1 <= x <= 250
cursor
string

The meta.nextCursor of the previous page. A cursor from an older version of the list answers 400: start again from the first page.

Response

200

Standard { data, meta } envelope.