The Vulpine coins API

For exchanges and swaps that want to list Vulpine coins automatically, the moment they graduate.

What a coin is

A coin launched on Vulpine is a BSV-21 token. It starts out sold along a bonding curve: a ladder of steps, each a fixed amount of the coin at a fixed price, each step dearer than the last. Every satoshi a buyer pays goes into a locked pot, never to the creator directly. When every step of the curve has sold, the coin has graduated: from then on it trades by listing, and two arbiters release the pot to the creator.

Graduation is the moment to list. This API says which coins have graduated, and when, with everything needed to list one: the token id, the symbol, decimals, supply, icon, and the price it graduated at.

Endpoints

Base: https://api.vulpinenetwork.com/api (the same answers come from https://fwetch.lol/api). No key, no sign-up. Every answer is JSON, open to every origin (CORS), and cached for 15 seconds.

GET /v1/graduated?since=<unix seconds>&limit=<1-200>coins whose curve sold out, newest first, graduated at or after since
`GET /v1/coins?status=<launching\graduated>&limit=<1-200>`every coin, newest launch first, optionally only one status
GET /v1/coins/<token id or launch txid>one coin
GET /v1this list, as JSON

Listing graduated coins automatically

  1. Ask GET /v1/graduated?since=0 once; list every coin it returns.
  2. Keep the answer's next (the newest graduatedAt you have seen).
  3. Every minute or so, ask GET /v1/graduated?since=<next>. Anything new in graduated has just graduated: list it. A coin you have already listed can come back in the answer (it graduated at exactly since); go by its token.
curl -s 'https://api.vulpinenetwork.com/api/v1/graduated?since=0'
{
  "v": 1,
  "now": 1791333333,
  "next": 1791243844,
  "graduated": [ { "token": "e6ff…393f_0", "symbol": "VTEST", "status": "graduated", "graduatedAt": 1791243844, "…": "…" } ]
}

A coin

Every endpoint gives a coin in this one shape. A real one (a test coin, graduated):

{
  "token": "e6ff6744267a7f696644beccd79d8a8890658232cda64d03946471359fe6393f_0",
  "standard": "bsv-21",
  "symbol": "VTEST",
  "name": "Vulpine test coin",
  "decimals": 0,
  "supply": "300",
  "icon": "https://ordinals.gorillapool.io/content/e6ff6744267a7f696644beccd79d8a8890658232cda64d03946471359fe6393f_1",
  "iconOutpoint": "e6ff6744267a7f696644beccd79d8a8890658232cda64d03946471359fe6393f_1",
  "about": "A throwaway coin the house launched to test selling back.",
  "creator": "114AnVbavvmXUkukiVG2R3MKCi8oKRALeg",
  "status": "graduated",
  "launchedAt": 1791209069,
  "graduatedAt": 1791243844,
  "curve": { "steps": 3, "sold": 3, "pulled": 0, "raisedSats": 90000, "goalSats": 90000, "nextStepSats": null },
  "price": { "satsPerToken": 400, "usdPerToken": 0.00008 },
  "marketCap": { "sats": 120000, "usd": 0.024 },
  "pot": { "lockedSats": 90000, "released": false, "releaseTxid": null },
  "holders": 3,
  "launchTxid": "ade251c988e59d123508c41e358b5317b16cc50bf1ad7536d99599536d70d4c1",
  "links": {
    "coin": "https://api.vulpinenetwork.com/api/v1/coins/e6ff…393f_0",
    "holders": "https://api.vulpinenetwork.com/api/launch/e6ff…393f_0/holders",
    "page": "https://fwetch.lol/#/launch/e6ff…393f_0",
    "launchTx": "https://whatsonchain.com/tx/ade251c9…d4c1"
  }
}
fieldmeaning
tokenthe BSV-21 token id: the outpoint of its deploy+mint (<txid>_<vout>)
symbol, name, decimals, supplyas deployed; supply is in the token's smallest unit, as a string
iconthe coin's picture, inscribed on chain (iconOutpoint), served by GorillaPool
statuslaunching (steps left on the curve) or graduated (every step sold)
launchedAt, graduatedAtunix seconds; graduatedAt is when its last step sold, null until then
curveits steps, how many sold or were taken back (pulled), what they raised, the next step's price
price.satsPerTokenfor a whole token (10^decimals units): the next step's price, or once graduated, the top of the curve
price.usdPerToken, marketCap.usdat WhatsOnChain's BSV/USD rate, null when it cannot be read
potwhat the curve raised, locked until two arbiters release it to the creator (releaseTxid)
holdershow many addresses bought from the curve

Notes