Tokens

Mains & Pair Assets

Every token on BASIS belongs to a main, and every main is paired with one pair asset (an ERC-20 with its own decimals). A factory token is priced in its main; a main is priced in its pair asset. Use this list to read the units of every other endpoint.

GET
/api/v1/mains
The configured mains, their pair assets and their indexed state. Answers before the deploy too, with live: false. No key (60 requests a minute per IP).
Auth: None

Query Parameters

ParamDescription
includeComma list. cashHeld: adds cashHeld per live main, read live in one multicall (shared for 15 s). market: adds a market object (price, liquidity, depth, supply, market cap and 24 h figures), one multicall shared for 15 s. Without either the route makes no chain read.

Response

Response
{
  "network": "robinhood",
  "chainId": 4663,
  "uiDefaultMain": "usd",
  "data": [
    {
      "key": "usd",
      "name": "Stasis",
      "symbol": "STASIS",
      "label": "STASIS",
      "main": "0x...",
      "pairAsset": "0x...",
      "pairSymbol": "USDG",
      "pairDecimals": 6,
      "vault": "0x...",
      "usdKind": "fixed",
      "configured": true,
      "live": true,
      "indexed": true,
      "active": true,
      "tradingEnabledAt": "2026-10-01T12:00:00.000Z",
      "cashHeld": "10480000000"
    }
  ]
}

name / symbol come from the chain (cached by the indexer); label is the config fallback. active and tradingEnabledAt come from indexed events; both are null until the main is indexed. A main found on chain but not in the config is listed with configured: false.

cashHeld (only with ?include=cashHeld): cash the main really holds, pairAsset.balanceOf(main), raw pair-asset units (pairDecimals), read live; null on a failed read. It sits below the main's liquidity by the swept gain and by the outstanding loan and leverage debt. It is never liquidity, backing or TVL.

market (only with ?include=market, null when unreadable): priceE18 (whole pair asset per whole main × 1e18), priceRaw (getTokenPrice() as returned), priceUsdE18 + usdSource, liquidity and depth (raw pair units) with liquidityUsdE18 / depthUsdE18, circulatingSupply (main wei), mcapUsdE18, change24hBps, volume24hUsdE18 + volume24hUsdCovered, trades24h, priceFrom (live or sync) and priceBlock. Liquidity is the net amount paid into the curve above its starting depth; it includes amounts financed by leverage.

200 Mains returned400 Invalid include429 Rate limit exceeded
GET
/api/v1/prices
One row per pair asset, bond asset and native coin: asset, symbol, decimals, role (pair, bond, native), mains, priceUsdE18, source (fixed, feed, hop, offchain), feed, maxAgeSec, updatedAt, stale.
Auth: API Key
GET
/api/v1/prices/tokens
Current prices of up to 100 BASIS tokens (?addresses=comma list): priceE18 (pair per whole token), priceMainE18, priceUsdE18 + usdSource, block and time per address; found: false for an unknown address.
Auth: API Key