Skip to main content

Token Info

Free, keyless reads. Use them to decide what to trade and when: a sniper polls snipeTaxBps and buys when it reads 0. Amounts are raw base-unit strings (6 decimals for USDC, the token's own decimals for tokens); fields ending in Formatted are the human-readable decimal.

Token

GET https://api.shrine.trade/arc/api/token/{address}
GET https://api.shrine.trade/arc/api/token/{address}?wallet=0x…
const TOKEN = "0xb242508C29959aA165379BCfdb576070B24eE5A8";

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

console.log(t.symbol, "on", t.protocol, "| venue:", t.venue, "| price:", t.priceUsdc, "USDC");
console.log("market cap:", t.marketCapUsdc.toFixed(2), "USDC | tax:", t.buyTaxBps, "/", t.sellTaxBps, "bps | snipe tax now:", t.snipeTaxBps ?? "n/a", "bps");
}

main();

Save it as token.js and run node token.js. No packages needed.

Add ?wallet=0x… to get that wallet's token balance. A response for an Argus token:

{
"protocol": "ARGUS",
"token": "0xb242508c29959Aa165379BCfdB576070b24ee5a8",
"name": "Xeusthegreat",
"symbol": "XEUS",
"decimals": 18,
"venue": "uniswap_v4",
"pool": "0x6299828f0bbf42c06d571279bf83d06d930bb5bc4a99b98793c6ff47141030b1",
"hook": "0x7B734D70eFCD84ed8C36dF5Aa170e3ebF3322044",
"creator": "0x04D704070Bcf21977dDd6457A365b8051699250f",
"portal": "0xB021Be536808f551b31789422Fd28a6c9c6e97Da",
"tickBond": 376400,
"quoteAsset": {
"address": "0x3600000000000000000000000000000000000000",
"symbol": "USDC",
"decimals": 6,
"isNative": false
},
"poolFeeBps": 100,
"buyTaxBps": 300,
"sellTaxBps": 300,
"snipeTaxBps": 0,
"totalFeeBuyBps": 400,
"totalFeeSellBps": 400,
"bonded": false,
"launchedAt": 1790076636,
"priceUsdc": 2.480877603500105e-06,
"marketCapUsdc": 2480.877603500105,
"totalSupply": "1000000000000000000000000000",
"totalSupplyFormatted": "1000000000",
"liquidity": "1575037795897358225",
"walletBalance": "0",
"walletBalanceFormatted": "0"
}
FieldMeaning
protocolARGUS, LIFT (v2 launches, Uniswap v4 with the LIFT hook), or UNISWAP for any other pool against USDC, which is also where LIFT's earlier v1 launches land: they are plain Uniswap v3 pools with nothing of LIFT's on them.
venue / pooluniswap_v4 with the pool id, or uniswap_v3 with the pool address. This is where a trade goes; it never changes for a token.
hookThe launchpad's fee hook on the pool. Absent on v3 pools and plain Uniswap pools.
creator / portal / tickBondArgus only: the wallet that launched the token, the Argus factory it came from, and the tick at which the launch counts as bonded.
quoteAssetAlways USDC on Arc, 6 decimals.
poolFeeBpsThe pool's own fee: 100 (1%) on Argus and on LIFT's v3 pools; LIFT's v4 pools carry 0 here and charge their 1% base fee through the hook instead, which totalFee*Bps includes.
buyTaxBps / sellTaxBpsThe creator tax on each side, fixed at launch.
totalFeeBuyBps / totalFeeSellBpsEverything the hook takes on each side, pool fee and creator tax together, as the hook reports it. Absent where the hook does not expose it.
snipeTaxBpsThe extra tax a buy would pay right now. Up to 9900 in the first seconds after launch, 0 once the window has passed. Poll this before sniping. Absent on UNISWAP pools.
priceUsdc / marketCapUsdcNumbers, from the pool's current price: USDC per token, and that times the total supply.
liquidityThe pool's current in-range liquidity, Uniswap's own unit. Larger is deeper.
bonded / launchedAtArgus only: whether the price has crossed the launch's bond tick (cosmetic, trading does not change), and the launch time as a Unix timestamp.
walletBalanceThe wallet's token balance, when ?wallet= is given.

Responses are cached for one second per token and wallet.