Halo Docs

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.

FieldMeaning
mint, poolToken mint and DBC pool addresses
name, symbol, description, imageMetadata
creatorWallet that launched the coin
twitter, telegram, websiteOptional links
createdAtUnix seconds
priceSol, mcapSolCurrent price per token and market cap in SOL
raisedSol, progressSOL raised and the fraction of the 120 SOL threshold
volume24hSol, trades24hTrailing 24 hour volume and trade count
migrated, dammPoolWhether the coin has graduated and its DAMM v2 pool
burnedTokens, burnedSolTokens 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.