Market data
Work with token discovery, pairs, candles, trades, and the DexTools-compatible data surface.
Use token discovery for Launchpad-style coin lists. Use the Market API for screeners, analytics, and aggregator integrations. Both describe the same product, but their response shapes serve different clients.
Token discovery
GET /api/v1/tokens returns public token cards with launch stages, metadata, prices, and market activity. Its response uses camelCase fields and includes provenance.
curl --fail-with-body --silent --show-error \
'https://launch-api.supanova.app/api/v1/tokens?limit=24&stages=ignition,near_escape&sort=volume_24h&direction=descending'| Route | Use |
|---|---|
GET /api/v1/tokens | Discovery, filtering, and sorting. |
GET /api/v1/tokens/summary | Aggregate Launchpad counters. |
GET /api/v1/tokens/categories | The canonical category dictionary. |
GET /api/v1/tokens/{slug} | One coin by its public slug. |
GET /api/v1/tokens/{slug}/candles | Candles denominated in CC. |
GET /api/v1/tokens/{slug}/candles/usd | Historical USD candles. |
GET /api/v1/tokens/{slug}/holders | Publication-safe holder rows. |
GET /api/v1/tokens/{slug}/trades | Publication-safe trade rows. |
Discovery defaults to 24 items and accepts up to 100. Pass page.nextCursor as the next cursor while page.hasMore is true. Keep cursors opaque and use the same filters while paging.
Stages are ignition, near_escape, graduating, and in_orbit. An in-orbit token has graduated. Use the response's state rather than deriving the stage from rounded display percentages.
Market API
Use a read key for an integration. The current public deployment requires a key for this surface; deployments that allow anonymous reads apply a separate per-IP budget.
curl --fail-with-body --silent --show-error \
-H "X-API-Key: $SUPANOVA_API_KEY" \
'https://launch-api.supanova.app/api/v1/market/info'The info response identifies the network, quote asset, latest available ledger offset, supported candle intervals, and stream limits.
| Route | Use |
|---|---|
GET /api/v1/market/tokens | Token metadata and headline figures. |
GET /api/v1/market/tokens/{assetId} | One token by its instrument ID. |
GET /api/v1/market/tokens/{assetId}/holders | Holder count and largest holders. |
GET /api/v1/market/pairs | Pairs with price, liquidity, volume, and trade counts. |
GET /api/v1/market/pairs/{pairId} | A single curve or AMM pair. |
GET /api/v1/market/pairs/{pairId}/trades | Recent trades, newest first. |
GET /api/v1/market/pairs/{pairId}/candles | CC or USD OHLCV candles. |
GET /api/v1/market/tickers | Compact price and volume tickers. |
Responses use snake_case and decimal strings. A list has items, meta, and page; continue with page.next_cursor while page.has_more is true. Token and pair lists accept a limit up to 200; holder lists up to 100.
Instrument and pair identity
A Canton instrument is identified by its administrator and ID. The Market API publishes these as instrument_admin and asset_id or instrument_id, depending on the response. Do not identify a token only by its symbol.
| Identifier | Form |
|---|---|
| CC asset | Amulet, with the network's CC administrator. |
| Token asset | The token's CIP-56 instrument ID. |
| Curve pair | <instrument-id>:curve |
| AMM pair | <instrument-id>:amm |
| Ticker market name | <TICKER>-CC |
A token has separate curve and AMM pairs. After graduation seeds the AMM, the curve pair is marked graduated with zero active liquidity and its last fill price. The AMM pair carries the active market. Both pair IDs return the token's continuous candle history across graduation.
Read figures correctly
| Figure | Definition |
|---|---|
price | CC per token: the marginal curve price or AMM reserve ratio. |
market_cap, fdv | Price multiplied by fixed total supply. |
Curve liquidity.cc | The curve's CC reserve available to sells. |
AMM liquidity.cc | Twice the AMM's CC reserve. |
volume | Absolute net CC reserve change per confirmed fill, in the named trailing window. |
price_change | Percentage change over the named window. |
txns | Confirmed buy and sell fill counts. |
| USD fields | CC amounts converted using the reported CC/USD rate; null when no rate is available. |
The Market API's volume basis is not the same as gross trader input. A trade's quote_amount is the CC paid on a buy or received after fees on a sell. Preserve this distinction when comparing aggregate volume with execution records.
Maker and holder addresses are publication-safe pseudonyms scoped to a token and network. They are not Canton Party IDs and must not be used as transfer destinations. Some deployments return redacted when an address cannot be published.
Candles
Supported intervals are 1m, 5m, 1h, 4h, and 1d. Requests accept ISO-8601 from and to timestamps and return at most 500 candles. Split longer ranges into bounded requests.
curl --fail-with-body --silent --show-error --get \
-H "X-API-Key: $SUPANOVA_API_KEY" \
--data-urlencode 'interval=1h' \
--data-urlencode 'currency=cc' \
"https://launch-api.supanova.app/api/v1/market/pairs/$PAIR_ID/candles"Set PAIR_ID to a pair returned by the API. USD candle history uses historical CC/USD data; do not reconstruct it by multiplying all past CC candles by today's rate.
Freshness and caching
Read meta.as_of, meta.ledger_offset, and meta.cc_usd.stale to describe how current the data is. A missing or stale value is not a zero balance or zero price.
The Market API supports ETag and If-None-Match. Revalidate cached reads and handle HTTP 304 without trying to parse a JSON body. Follow the actual Cache-Control response: key-required deployments use private caching.
DexTools-compatible endpoints
The /api/v1/dextools surface exposes latest-block, block, asset, asset/holders, exchange, pair, and events for the DexTools HTTP adapter contract. It uses camelCase and a different error shape: { code, message, issues }.
For event ingestion, read the latest available block, then request inclusive fromBlock and toBlock ranges within the published limit. Blocks represent Canton ledger offsets. Deduplicate events by block and event index, and persist your cursor only after processing the full response.
Use the API reference for each adapter's required query fields. For streaming trades and tickers, continue with WebSockets.