Live Launches & Graduations
The whole token lifecycle on Robinhood Chain, pushed the moment it happens. Three things arrive on this one socket:
- Launches - a token appears on the Pons bonding curve.
- Graduations - a curve sells out and the token moves to its permanent Uniswap v4 pool.
- New Uniswap v4 pools - including tokens launched straight on Uniswap, without a curve.
Free, no key, no account.
wss://api.shrine.trade/evm/api/launches/ws
Try it
Pick what you want and connect. You'll get the most recent event immediately, then new ones as they happen.
Copy this
Click Pons or Uniswap v4 to choose what the script receives - the URL updates.
- JavaScript
- Python
const ws = new WebSocket("wss://api.shrine.trade/evm/api/launches/ws");
ws.onmessage = (e) => {
const t = JSON.parse(e.data);
// t.type: new_launch, graduated or new_pool
console.log(JSON.stringify(t, null, 2));
};
Save it as launches.js and run node launches.js - no packages needed (Node 22+).
import json
from websockets.sync.client import connect
with connect("wss://api.shrine.trade/evm/api/launches/ws") as ws:
for raw in ws:
t = json.loads(raw)
# t["type"]: new_launch, graduated or new_pool
print(json.dumps(t, indent=2))
Save it as launches.py, pip install websockets, then python launches.py.
What you get
On connect you're sent the single most recent event so the screen isn't blank, then everything new as it happens.
Each message has a type and a protocol:
type | protocol | Means |
|---|---|---|
new_launch | PONS | A token launched on the Pons curve - tradeable immediately. |
graduated | UNISWAP_V4 | A Pons curve sold out; the token moved to its Uniswap v4 pool. |
new_pool | UNISWAP_V4 | A Uniswap v4 pool was created. Includes Pons graduations and tokens launched directly on Uniswap. |
Filter with ?protocols=PONS or ?protocols=UNISWAP_V4 (omit it for both), or use the picker above.
Fields that don't apply to an event are simply absent, so check type first.
{
"type": "new_launch",
"protocol": "PONS",
"token": "0x84BD8478c0…",
"curve": "0x2ffCc8d7…",
"deployer": "0x1a2b3c…",
"name": "Tollbooth",
"symbol": "TOLLBOOTH",
"pairToken": "ETH",
"launchConfigId": 0,
"graduationThreshold": "4200000000000000000",
"uri": "ipfs://bafy…",
"description": "the greenest coin on Robinhood Chain",
"socials": {
"twitter": "https://x.com/grene",
"telegram": "", "discord": "", "website": "", "farcaster": ""
},
"blockNumber": 50952986,
"txHash": "0x…",
"timestamp": 1756654321
}
uri, description and socials come off the token contract itself - Pons stores them on-chain, so the creator's image URI and links arrive with the event and there's nothing extra to fetch.
A new_pool event carries poolId, currency0, currency1, fee, tickSpacing and hooks instead. A hooks of 0x0000…0000 means a plain Uniswap pool with no Pons hook - i.e. someone launched directly on Uniswap rather than through a curve.
Pons has sniper protection and taxes buys for about 3 seconds after a launch, starting near 99% and decaying to zero. Buying the moment a launch appears in this feed hands over almost your entire order as tax.
Notes
- Reconnect on drop. Long-lived sockets die; reconnect and you're re-seeded with the recent launches, so you won't miss much.
- Two subscriptions per IP. A third connection from the same address is refused with
too_many_connections. One socket with no filter carries everything, so you rarely need more. - Nothing is stored. This is a live feed, not an archive - there's no history endpoint and no backfill.