Skip to content

Launch lifecycle

Goal: a launch feed and the forensics behind it. On Arc most tokens are born through a launcher contract that creates a Uniswap V4 pool (often with a hook that runs a bonding curve) or a V3 / V2 pool with seeded liquidity. Chord indexes every one.

GET /arc/launchers?hours=24 — every launcher seen in the window: name and site where the registry knows it (Uniswap Liquidity Launcher, aka.fun, Argus, Minara.fun, Rapid Launch, Sharc.fun, Bozo, …), the pool shapes it creates (hook, fee, tick spacing), pools per hour and day, distinct creators, and the 24-hour tape over its pools (swaps, volume, wallets, active pools). The Launchpads page lists the named ones.

GET /arc/graduated?hours=48 — tokens whose first pool was created in the window, routable today and screened. Each row has launchedAt, launcher, launcherName, creator, ageSec and the full 24-hour token row. screened counts what the filters removed:

Screen Removes
serial_creator one creator, eight or more pools in the window — a launch farm
impostor a symbol copying a listed token
no_sells buys only — a token that cannot be sold
few_traders too few distinct wallets
not_routable no pool the engine can quote
no_trades · no_symbol nothing happened, or no name on-chain

Show the counts. On a busy day the farm screen alone removes over a thousand pools.

For one launch, three calls tell you most of what matters:

  • GET /arc/token/{address}/holders — holder count, heldByWalletsPct (supply outside pools), concentration.top10, and the top rows tagged wallet / pool / burn. A launch where two wallets hold 90 % outside the pool is a different thing from one with 500 holders.
  • GET /lp/token/{address}/pools?chain=5042 — the pools with score, reasons and launch: how much of the liquidity the launcher supplied and whether it has started pulling (launcherRemovedUsd, launcherLastRemoveTs).
  • GET /tokens/stats/{address} — buyers versus sellers per window, makers, and whether volume is many wallets or a few.

flags on the token row (wash, impostor) and suspect on its pools are the same checks, precomputed.

A launch that is routable quotes like any token: GET /quote?chain=5042&inputMint=0x3600…0000&outputMint={address}&amount=…. Hooked V4 pools route only through hooks the engine has verified end to end; a pool on an unknown hook is NO_POOLS until it is. Expect high priceImpactPct on a fresh curve, and simulate before signing.

  • Prices: WebSocket prices (chain 5042) for the board, trades for the token.
  • Liquidity: GET /lp/events?chain=5042&token={address} for adds and removes; POST /lp/watch/pool to get an alert when a pool drains.
  • Attention: GET /arc/attention shows what people on Chord are watching.

The analyst answers “is this launch a rug” in one call with the same data: POST /v1/ask { "question": "launch forensics on 0x…", "stream": false } with an API key. See Ask agent API.