Developers

SUNFIRE API

Live lock and burn figures for every launch on SUNFIRE, read from the contracts. Public, read-only, no key.

  • JSON
  • No key
  • Read-only
  • Robinhood Chain and Solana

Overview

What it gives you

Use it to show, on your own site, how much of a creator's bag is still locked, how much has been burned, and when the lock ends.

Is it on SUNFIRE?

Ask for one token: you get its launch, or a 404 if it was not launched on SUNFIRE. A 503 means the site cannot answer for that chain yet: ask again later.

Keep your own copy

Read the full list on a schedule: every launch, with its current figures. Every 15 minutes is well within the limit.

Start

Base URL

https://sunfi.re/api/v1

Every response is JSON. Any site can call it from the browser: responses carry Access-Control-Allow-Origin: *.

Endpoint

GET /launches

Every launch, newest first. Optional: chain=robinhood or chain=solana. The list is rebuilt at most every 10 seconds. complete is false while the site is still reading a chain, after a restart for example, or does not read it at the moment: the list may then miss launches.

curl https://sunfi.re/api/v1/launches?chain=robinhood
{
  "version": 1,
  "generatedAt": "2026-11-05T23:02:05.149Z",
  "complete": true,
  "count": 2,
  "launches": [ { …one launch, same fields as below, without "claims"… } ]
}

Endpoint

GET /launch

One launch, with the history of its claims. Both parameters are required: chain (robinhood or solana) and token (the token's address).

curl "https://sunfi.re/api/v1/launch?chain=robinhood&token=0x0a880936bFe4930f1163d4052858e6A234cB7aA7"
{
  "version": 1,
  "generatedAt": "2026-11-05T23:02:05.149Z",
  "launch": {
    "chain": "robinhood",
    "token": "0x0a880936bFe4930f1163d4052858e6A234cB7aA7",
    "name": "Rainbow Catpital",
    "symbol": "PURR",
    "pair": { "symbol": "ETH", "address": null, "native": true, "decimals": 18 },
    "dev": "0x92e060172cFfd49798e68e260241B9294bA8d403",
    "vault": "0xf06475ded284A549e406A725B68a5092c6b54600",
    "launchedAt": "2026-11-05T21:04:31.000Z",
    "launchTx": "0xa891d507298f809938fd9af0653f9a0d88f1b59091cfaa3a37accdc83e1ed671",
    "lock": {
      "initialTokens": 582993.2539352045,
      "lockedTokens": 534344.9895373088,
      "burnedTokens": 48648.26439789563,
      "burnedPctOfLock": 8.3446,
      "initialPctOfSupply": 0.058299,
      "endsAt": "2026-11-06T21:04:31.000Z",
      "unlocked": false,
      "returnedToDev": null
    },
    "fees": { "claimedTotal": 0.000083401081999995, "unit": "ETH", "claims": 1, "lastClaimAt": "2026-11-05T22:19:27.000Z" },
    "market": { "venue": "curve", "curveProgressPct": 0.02, "priceNative": 1.6819605716666667e-9, "marketCapUsd": 3740.33, "totalSupply": 999951351.7356021 },
    "links": {
      "page": "https://sunfi.re/app#t=RH%3A0x0a880936bfe4930f1163d4052858e6a234cb7aa7",
      "token": "https://robinhoodchain.blockscout.com/address/0x0a880936bFe4930f1163d4052858e6A234cB7aA7",
      "vault": "https://robinhoodchain.blockscout.com/address/0xf06475ded284A549e406A725B68a5092c6b54600"
    },
    "claims": [
      { "at": "2026-11-05T22:19:27.000Z", "gross": 0.000083401081999995, "burnedTokens": 48648.26439789563, "burnedPctOfLock": 8.3446, "tx": "0x0c183975bfc66fd45d4de8c306c002dea33c43e09d987b6e39f2ab65a3774301" }
    ]
  }
}

Reference

Fields

FieldMeaning
devThe wallet that launched the token. It receives the creator fees and, when the bag is unlocked after the lock ends, gets back what has not burned.
vaultThe address that holds the creator's locked bag. On Robinhood Chain, the launch's vault contract, also the token's creator and fee recipient on Pons. On Solana, the lock program's token account for the launch.
lock.initialTokensTokens the creator's first buy put in the lock.
lock.lockedTokensTokens still locked now. 0 once the bag has been unlocked or has fully burned.
lock.burnedTokensTokens burned from the lock so far. Each claim of creator fees burns part of the bag.
lock.burnedPctOfLockburnedTokens as a percentage of initialTokens.
lock.initialPctOfSupplyinitialTokens as a percentage of the token's supply at launch.
lock.endsAtWhen the lock ends (ISO 8601, UTC).
lock.unlockedtrue once the bag has left the lock.
lock.returnedToDevTokens given back to the dev when the bag was unlocked. null before.
fees.claimedTotalCreator fees collected by claims so far, in fees.unit: the sum of claims[].gross.
market.venuecurve before the bond, migrating while the pool is being created, pool after.
market.priceNativePrice of one token in the pair currency (pair.symbol).
market.marketCapUsdMarket cap in US dollars, at the price of the pair the site shows. null when that price is not known.
market.curveProgressPctHow full the bonding curve is. Never 100 before the bond.
market.totalSupplyThe token's supply now. It goes down as the bag burns.
claims[]Only on /launch, newest first. gross: fees collected by that claim. burnedTokens and burnedPctOfLock: what that claim burned. On Robinhood Chain, uncollectedFees appears on the entry written at the unlock, for fees counted for the burn but not collected.

Token amounts are in whole tokens (decimals already applied). A field the site cannot read yet is null.

Reference

Errors and limits

StatusWhen
400A parameter is missing or invalid. The body says which: {"error": "chain must be robinhood or solana"}.
404No SUNFIRE launch for this token.
503The site cannot answer for this chain yet: it is still reading it, or does not read it at the moment. The token may be a SUNFIRE launch it has not read. The body says which. Ask again later.
429Too many requests: 120 per minute per IP, both endpoints together. The Retry-After header gives the seconds to wait.

Reference

Verify on-chain

Each launch has its own vault, given in vault and links.vault.

Reference

Versioning

Fields may be added to v1. None will be removed or renamed without a new version in the path.