Tokens
Token Detail
GET
/api/v1/tokens/{address}
Get full details for a single token: its main and pair asset, its kind, the registry facts, 24 h volume, liquidity, and prediction options if applicable. Price, supply, liquidity and depth come from the database (the indexed balances and the latest synced trade); the floor of a factory token is the one live read.
Auth: API Key required
Response
Response
{
"data": {
"id": 1,
"address": "0x...",
"name": "Will BTC hit 200k?",
"symbol": "BTC200K",
"description": "...",
"dev": "0x...",
"image": "https://...",
"multiplier": 50,
"isPrediction": true,
"predictionType": "public",
"predictionStatus": "active",
"endTime": "2026-06-01T00:00:00.000Z",
"eventType": "public",
"website": null,
"telegram": null,
"twitterx": null,
"createdAt": "2026-01-01T00:00:00.000Z",
"lastActivityAt": "2026-03-15T00:00:00.000Z",
"projectedVetted": false,
"predictionOptions": [
{ "index": 0, "name": "Yes" },
{ "index": 1, "name": "No" }
],
"chainId": 4663,
"main": "0x...",
"pairAsset": "0x...",
"pairDecimals": 6,
"pairSymbol": "USDG",
"kind": "market",
"reversed": false,
"hybridMultiplier": 50,
"rewardsEnabled": false,
"frozen": false,
"presaleTarget": "0",
"presaleComplete": true,
"listed": true,
"creator": "0x...",
"host": "0x...",
"volume24hUsdE18": "1520000000000000000000",
"creatorFeeBps": 0,
"rewardsFeeBps": 0,
"liquidityUsdE18": "25000500000000000000000",
"depthUsdE18": "26200500000000000000000",
"virtualLiquidityUsdE18": "1200000000000000000000",
"autoVest": { "enabled": false, "durationDays": 0, "gradual": false },
"presale": null
}
}200 OK404 Token not found503 Not deployed on this network
Token fields
| Field | Meaning |
|---|---|
| main | The main token this token trades against; a main names itself. pairAsset / pairDecimals / pairSymbol: that main's pair asset. |
| kind | main, token, reversed, market, marketPrivate, updownPool. Null until the token is indexed. |
| reversed | A reversed curve. With reversed true, multiplier 1–50 is Meme+, 51–99 is Yolo+ and 100 is Yolo (fixed supply; the floor stays at the launch price in the paired token). With it false, 1–49 is Floor+, 50–99 is Utility+ and 100 is Stable+. |
| rewardsEnabled / frozen / listed | Registry facts: holder rewards on (fixed at creation), whitelist-only trading still in force, listed on the dapp. |
| presaleTarget / presaleComplete | The presale target in main-token units (18 decimals, decimal string; 0 = no presale) and whether it has bonded. The presale block adds completedAt (the amount sold so far is FACTORYTOKEN.presaleSold() on chain); autoVest gives the auto-vesting setting. |
| creator / host | The creating wallet, and the host contract of a market or pool token (null for a plain token). For those tokens the on-chain DEV is the host. |
| creatorFeeBps / rewardsFeeBps | The token's creator and rewards fee in basis points, from the newest fee-set event; 0 when never set. |
| volume24hUsdE18 | USD × 1e18 traded on this token in the last 24 h (every non-protocol leg; a market also counts its AMM bets and book fills). |
| liquidityUsdE18 | From the latest synced trade: real one-sided liquidity (the quote reserve minus the virtual launch reserve), in USD × 1e18 through the token's main and the main's pair asset; null when that pair asset has no USD source. The quote reserve is in main tokens (18 decimals) on a factory token and in raw pair asset on a main. depthUsdE18: the whole quote reserve, virtual part included: the figure to size a trade against. virtualLiquidityUsdE18: the virtual launch reserve. |
| priceSource / supplySource | Always index (or null when unknown): the price is the latest synced trade of the token and its main, the supply the sum of the indexed balances. They can trail the chain by one unsynced trade. Exact live values: getCurveReserves(), getLiquidity(), totalSupply(). Cash a contract holds is ERC20(pairAsset).balanceOf(token) on chain. |
Prediction market fields
| Field | Meaning |
|---|---|
| predictionType | public markets live on the ATrancheMarket host (marketTrading in /contracts.json); private markets on the ATrancheMarketPrivate host (creator-managed; eventType says whether access is private). On-chain calls must target the matching host: reading a market through the other host returns a zeroed struct, and buys revert. |
| endTime | Market close time. null = open-ended (endTime = 0 on-chain). An open-ended market stops taking AMM bets once a result is proposed (public host) or the first resolution vote is cast (private host); an EARLY reset re-opens a public one. Order-book fills stay open on both hosts until the market resolves. |
| predictionStatus | Indexed lifecycle status: active, awaiting_proposal, proposed, proposed_closed, voting, veto_window, disputed, vetoed, awaiting_finalize, resolved, invalidated, unknown. An EARLY reset returns a public open-ended market to active. Community-resolved: active → awaiting_proposal → proposed → proposed_closed | voting → veto_window → disputed | vetoed → resolved | invalidated; creator-resolved: active → awaiting_proposal → voting → awaiting_finalize → resolved | invalidated; unknown before the first read. AMM buys close when a result is proposed (public) or the first vote is cast (private); order fills stay open until resolution. Only bet on active markets. |
Example Code
// Get single token with prediction options
const res = await fetch(
"https://launchonbasis.com/api/v1/tokens/0xTokenAddress",
{ headers: { "X-API-Key": "bsk_your_key" } }
);
const { data } = await res.json();