Skip to main content

Live Launches & Graduations

The whole token lifecycle on Flap, pushed the moment it happens. Two things arrive on this one socket:

  • Launches - a token appears on the Flap bonding curve. Several hundred a day.
  • Graduations - a curve sells out and the token moves to its permanent PancakeSwap pool.

Free, no key, no account.

wss://api.shrine.trade/bnb/api/launches/ws

Try it

Choose a filter and connect. The latest event arrives at once, and everything after it streams in live.

Copy this

Click Flap or PancakeSwap to choose what the script receives - the URL updates.

const ws = new WebSocket("wss://api.shrine.trade/bnb/api/launches/ws");

ws.onmessage = (e) => {
const t = JSON.parse(e.data);
// t.type: new_launch or graduated
console.log(JSON.stringify(t, null, 2));
};

Save it as launches.js and run node launches.js - no packages needed (Node 22+).

What you get

The first message after connecting is a replay of the most recent event, so a fresh client has something to show. After that, every message is new.

A message is classified by two fields, type and protocol:

typeprotocolMeans
new_launchFLAPA token launched on the Flap curve - tradeable immediately.
graduatedPANCAKESWAPA Flap curve sold out; the token moved to its PancakeSwap pool.

Filter with ?protocols=FLAP or ?protocols=PANCAKESWAP (omit it for both), or use the picker above.

Optional fields are omitted rather than sent as null, so branch on type before reading anything else.

{
"type": "new_launch",
"protocol": "FLAP",
"token": "0x2f1952E00F6BA7655993120B8c41E5ab511e7777",
"name": "星际巨舰",
"symbol": "星际巨舰",
"creator": "0xF31b8fcD326e0aD7837af0aefed60cC71Db82595",
"quoteToken": "BNB",
"tokenType": "tax_v3",
"buyTaxBps": 1000,
"sellTaxBps": 1000,
"graduationSupply": "800000000000000000000000000",
"meta": "bafkreidrm6a6ieclmputpy2iw5wxqkpcttpapxidcxpl5z5lj…",
"metaUri": "https://ipfs.io/ipfs/bafkreidrm6a6ieclmputpy2iw5wxqkpcttpapxidcxpl5z5lj…",
"blockNumber": 120101041,
"txHash": "0x…",
"timestamp": 1788610321
}

tokenType, the tax and the quote asset come from Flap's Portal at the moment of the event, so a sniper can decide on a launch without another request: skip 10% sell taxes, take only BNB-priced tokens, only stock-priced ones, whatever the rule is. quoteToken is a ticker (BNB, USD1, NVDAB, TSLAB...) for every asset in Supported quote assets, and an address for a quote the API has no name for, such as another Flap token. meta is the IPFS CID of the creator's metadata JSON (image, description, socials); metaUri is the same thing through a gateway.

A graduated event carries pool (the PancakeSwap pool), liquidityTokens and liquidityQuote (what Flap put in it) instead.

Buy quotas and taxes

Some launches cap what one wallet may buy on the curve, and most carry a tax. Both are in Token Info and in every quote from Buy & Sell, so a sniper that reads the quote before sending never overpays.

Notes

  • Reconnect on drop. Long-lived sockets die; reconnect and you're re-seeded with the most recent launch, so you won't miss much.
  • One socket per IP. A second is turned away with too_many_connections. An unfiltered socket already carries every event, so one is enough.