Skip to main content

Live Launches

Every new token on Arc, pushed the moment it lands. Three things arrive on this one socket:

  • Argus launches, with the creator tax and the image the creator pinned.
  • LIFT launches, with the metadata URI and the creator's first buy.
  • New Uniswap v4 pools against USDC opened by anyone, without a launchpad.

Free, no key, no account.

wss://api.shrine.trade/arc/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 Argus or LIFT to choose what the script receives; the URL updates.

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

ws.onmessage = (e) => {
const t = JSON.parse(e.data);
// t.type: new_launch (Argus or LIFT), or new_pool for a plain Uniswap pool
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​

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:

typeprotocolMeans
new_launchARGUSA token launched on Argus. Its Uniswap v4 pool exists and trades from this block on.
new_launchLIFTA token launched on LIFT, into a Uniswap v4 pool (v2 launches) or a Uniswap v3 pool (v1).
new_poolUNISWAPA hookless Uniswap v4 pool against USDC was opened.

Filter with ?protocols=ARGUS, ?protocols=LIFT or ?protocols=UNISWAP, comma-separated for several, or omit it for everything.

Fields that don't apply to an event are simply absent, so check type and protocol first. A real Argus launch:

{
"type": "new_launch",
"protocol": "ARGUS",
"token": "0x78cb16BCec098946CF25190c11DFB511550b9215",
"name": "Niu LAI",
"symbol": "牛来",
"blockNumber": 22255452,
"txHash": "0x9cc33d95f2c338c1c17189d83914923faee5bc518d550cbe44331564581c29e6",
"timestamp": 1790119898,
"creator": "0x1c4ABb26936c050A864E23017881e588DDB4E9F4",
"quoteToken": "0x3600000000000000000000000000000000000000",
"venue": "uniswap_v4",
"pool": "0xa96421b2d30902ad9e1ac60230e2a7545c29e4329675e8a51687510f6f96a3ac",
"hook": "0x478d6B947398Cc74Ef3B7c4D6BCd2d12f471e044",
"buyTaxBps": 300,
"sellTaxBps": 1000,
"imageUri": "ipfs://bafkrei…",
"fee": 10000,
"tickSpacing": 200
}
FieldMeaning
token / name / symbol / creatorThe token and who launched it. Name and symbol ride on the launch event itself, so there is nothing extra to fetch.
venue / poolWhere it trades from now on: uniswap_v4 with the pool id, or uniswap_v3 with the pool address. This never changes for a token.
hookThe launchpad's fee hook on the pool.
buyTaxBps / sellTaxBpsArgus: the creator tax per side, fixed at launch.
imageUri / website / twitter / telegramArgus: what the creator filled in, when they did.
metaUri / initialBuyLIFT: the metadata JSON the creator pinned, and their own buy in the launch transaction, USDC base units.
fee / tickSpacingThe pool's tier.
Don't buy the instant you see a launch

Both launchpads charge a snipe tax on buys in the first moments after a launch, up to 99%, decaying to zero within seconds on Argus and within 6 blocks on LIFT. Buying the moment a launch appears in this feed hands most of your order to the tax. Poll snipeTaxBps on Token Info and buy when it reads 0.

Notes​

  • Reconnect on drop. Long-lived sockets die; reconnect and you're re-seeded with the latest event.
  • One subscription per IP. A second launch-feed connection from the same address is refused with too_many_connections. One socket with no filter carries everything; the data stream is a separate kind and can be open alongside it.
  • Nothing is stored. This is a live feed, not an archive: no history endpoint and no backfill. LIFT's own API lists past launches; Argus tokens can be read from the Argus factory on chain.