For exchanges and swaps that want to list Vulpine coins automatically, the moment they graduate.
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.
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 /v1 | this list, as JSON |
GET /v1/graduated?since=0 once; list every coin it returns.next (the newest graduatedAt you have seen).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, "…": "…" } ]
}
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"
}
}
| field | meaning |
|---|---|
token | the BSV-21 token id: the outpoint of its deploy+mint (<txid>_<vout>) |
symbol, name, decimals, supply | as deployed; supply is in the token's smallest unit, as a string |
icon | the coin's picture, inscribed on chain (iconOutpoint), served by GorillaPool |
status | launching (steps left on the curve) or graduated (every step sold) |
launchedAt, graduatedAt | unix seconds; graduatedAt is when its last step sold, null until then |
curve | its steps, how many sold or were taken back (pulled), what they raised, the next step's price |
price.satsPerToken | for a whole token (10^decimals units): the next step's price, or once graduated, the top of the curve |
price.usdPerToken, marketCap.usd | at WhatsOnChain's BSV/USD rate, null when it cannot be read |
pot | what the curve raised, locked until two arbiters release it to the creator (releaseTxid) |
holders | how many addresses bought from the curve |
launchTxid and token let you check any of this on WhatsOnChain yourself.