API reference
Read-only JSON endpoints for coins, trades, candles, holders, burns and creator rewards.
The API serves the same data as the app. All endpoints return JSON under /api on the Halo host, and all except uploads and registration are read-only. Responses for browse data are cached and shared between callers; a stale flag tells you when the last refresh failed and you are seeing the last good snapshot.
Limits: 120 requests per minute per IP, list pages of at most 50 coins, candle responses of at most 500 points.
Configuration
GET /api/config
Returns the cluster, the Halo config account and quote mint, the fee split in basis points and the curve summary.
{
"cluster": "mainnet-beta",
"configKey": "published at launch",
"fees": { "totalBps": 156, "creatorBps": 49.92, "burnBps": 49.88, "treasuryBps": 25, "meteoraBps": 31.2 },
"curve": { "startMcapSol": 69.9, "migrationMcapSol": 411, "raiseSol": 120, "supply": 1000000000 }
}
Stats
GET /api/stats
Returns coins, volume24hSol, trades24h, graduated, burnedSol (total SOL spent on buybacks) and burns (the number of burns).
Coins
GET /api/coins?sort=trending&q=&limit=24&cursor=
sort is one of trending, new, graduating, graduated or volume. q searches name, symbol and mint. The response is { "coins": Coin[], "next": string | null, "stale": boolean }.
GET /api/coins/:mint
Returns one coin.
| Field | Meaning |
|---|---|
mint, pool | Token mint and DBC pool addresses |
name, symbol, description, image | Metadata |
creator | Wallet that launched the coin |
twitter, telegram, website | Optional links |
createdAt | Unix seconds |
priceSol, mcapSol | Current price per token and market cap in SOL |
raisedSol, progress | SOL raised and the fraction of the 120 SOL threshold |
volume24hSol, trades24h | Trailing 24 hour volume and trade count |
migrated, dammPool | Whether the coin has graduated and its DAMM v2 pool |
burnedTokens, burnedSol | Tokens burned for this coin and the SOL spent buying them |
Trades and candles
GET /api/coins/:mint/trades?limit=50
GET /api/coins/:mint/candles?tf=5m
A trade is { signature, side, trader, solAmount, tokenAmount, priceSol, ts } with side either buy or sell. Candles are { t, o, h, l, c, v } with prices in SOL per token and v in SOL; tf is 1m, 5m, 15m or 1h.
Burns
GET /api/coins/:mint/burns
Returns the most recent buybacks for a coin, newest first, as { burnSignature, swapSignature, route, solLamports, tokens, ts }. route is curve for a swap against the coin's DBC pool or jupiter after graduation, and tokens is the amount burned in base units. Both signatures are on-chain transactions you can open in an explorer.
Holders
GET /api/coins/:mint/holders
Returns the top 20 holders as { owner, amount, pct }, cached for about a minute. It lists the 20 largest accounts only.
Rewards
GET /api/rewards/:wallet
Returns the creator fees claimable by the wallet, per coin, as { creator: { coins: [{ mint, pool, symbol, claimableLamports }] } }. There is nothing for holders to claim, because a coin's burn share buys back and burns the coin instead.
Launch endpoints
POST /api/upload
POST /api/coins/register
/api/upload accepts multipart form data with image, name, symbol, description, twitter, telegram and website, and returns the metadata uri and image URL to use in the launch transaction. Limits are 2 MB per image, 30 uploads per hour per IP, a 32-character name, a 10-character symbol, a 500-character description and https-only links.
/api/coins/register accepts { "signature": "...", "mint": "..." } after your wallet has confirmed the launch. It is idempotent: sending the same signature twice returns the same coin. The indexer finds launches on its own, so registration only speeds up listing.