Skip to main content

Token Info

Free, keyless reads. Use them to decide what to trade and to size a buy before you call local-trade. Amounts are raw base-unit strings (wei for ETH, 18-decimal units for tokens); fields ending in Formatted are the human-readable decimal.

Token

GET https://api.shrine.trade/evm/api/token/{address}
GET https://api.shrine.trade/evm/api/token/{address}?recipient=0x…
const TOKEN = "0xEad55618651062963DeE22728EFb1F3275DA7393";

async function main() {
const res = await fetch(`https://api.shrine.trade/evm/api/token/${TOKEN}`);
const t = await res.json();
if (t.error) throw new Error(`${t.error}: ${t.message}`);

console.log(t.phase, "| sellable:", t.sellableTokensFormatted, "| curve fee:", t.curveFeeBps, "bps");
console.log("reserves:", t.quoteReserve, "wei /", t.tokenReserve, "tokens");
console.log("unswept creator fees:", t.unsweptFees.creatorShareEstimateFormatted);
}

main();

Save it as token.js and run node token.js - no packages needed.

Add ?recipient=0x… to get snipeTaxBps for that wallet. Example response:

{
"token": "0x1111111111111111111111111111111111111111",
"curve": "0x2222222222222222222222222222222222222222",
"deployer": "0x3333333333333333333333333333333333333333",
"creatorFeeRecipient": "0x3333333333333333333333333333333333333333",
"pairToken": "ETH",
"phase": "NotGraduated",
"graduated": false,
"readyToGraduate": false,
"graduationThreshold": "4200000000000000000",
"quoteReserve": "1712522872270353145",
"tokenReserve": "981008795387803266283543676",
"sellableTokens": "695294509673517551997829391",
"sellableTokensFormatted": "695294509.673517551997829391",
"curveFeeBps": 100,
"creatorTaxBps": 0,
"buybackEnabled": false,
"poolFee": 0,
"tickSpacing": 200,
"snipeTaxBps": 0,
"unsweptFees": {
"heldBy": "curve",
"tradingFee": "747321571942453",
"tradingFeeFormatted": "0.000747321571942453",
"creatorTax": "682955361004953",
"creatorTaxFormatted": "0.000682955361004953",
"creatorShareEstimate": "944517911184812",
"creatorShareEstimateFormatted": "0.000944517911184812",
"protocolShareBps": 3000,
"buybackShareBps": 5000,
"buybackEnabled": true,
"creatorCanSweep": false,
"hasUnswept": true
}
}
FieldMeaning
protocolPONS_V2 or PONS_V1. For v1 tokens curve is the Uniswap V3 pool, phase is always PoolCreated, quoteReserve / tokenReserve are the pool's balances, and the fee and creator-fee fields are zero - v1 has no curve, no creator tax and no escrow.
curveThe bonding-curve contract — where trades go while phase is NotGraduated.
pairTokenThe quote asset. "ETH" for native-ETH launches (the only kind this API trades).
phase / graduatedNotGraduated (curve live) · Swept · PoolCreated (trading on Uniswap v4) · Rescued. graduated is true for anything but NotGraduated.
readyToGraduatetrue once nothing is left to sell; sells revert from here on.
graduationThresholdQuote (wei) the curve must collect before it graduates.
quoteReserve / tokenReserveCurrent curve reserves — the price is their ratio.
sellableTokensTokens still purchasable on the curve. 0 means it's about to graduate.
curveFeeBps / creatorTaxBpsPons's base curve fee and the launcher's creator tax (basis points, on the quote asset).
poolFee / tickSpacingThe Uniswap v4 pool parameters this token graduates into.
snipeTaxBpsOnly meaningful with ?recipient= — the opening tax that wallet would pay on a buy right now.
unsweptFeesFees this launch has earned that are still sitting on the curve (heldBy: "curve") or the pool hook after graduation (heldBy: "hook"), in the quote asset. creatorShareEstimate is what the creator gets of them, and /api/claim-fees collects it together with the escrow balance; creatorCanSweep is false for launches with buybacks on, where Pons collects on its own schedule.