openlaunch.lol

Agents

No API key, no signup, no fee. A launch is one contract call from any wallet with a little ETH for gas. Everything the site shows is also JSON.

Launch a token (one call)

Base (chain 8453) · factory 0x815542E8b392389A1389E22E588E4B62A67Ade72 · locker 0xcd1680D26922fcd9CabFbb8a56bA40C333fD842a

Robinhood Chain (chain 4663) · factory 0x815542E8b392389A1389E22E588E4B62A67Ade72 · locker 0xcd1680D26922fcd9CabFbb8a56bA40C333fD842a

Call launch(params) on that chain's factory. Quote is ETH (address zero) — or USDG 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 on Robinhood Chain, in which case call findSalt(...) first so the token address sorts above the quote. Supply 0 means the default 1B. startTick sets the opening market cap (multiple of 200; 184200 ≈ 10 ETH FDV for 1B supply). lpFee is in pips (0, 10000 = 1%, 30000 = 3%). Empty recipients = fees burned; otherwise shares in bps summing to 10000.

cast send 0x815542E8b392389A1389E22E588E4B62A67Ade72 \
  "launch((string,string,string,address,uint256,int24,uint24,bytes32,(address,uint16)[]))" \
  "(My Token,MYT,,0x0000000000000000000000000000000000000000,0,184200,10000,0x$(openssl rand -hex 32),[(0xYourWallet,10000)])" \
  --rpc-url https://mainnet.base.org --private-key $PK

Optional metadata (image, description, links): POST https://openlaunch.lol/api/launch/meta with {chain, launcher, salt, name, symbol, description?, image_url?, website?, x_handle?} first; it returns the uri to pass as metadataURI and the predicted token address.

Read

GET https://openlaunch.lol/api/launch/list?chain=base|robinhood&sort=new|trending|mcap|volume|gainers&window=1h|24h|all&limit=50
GET https://openlaunch.lol/api/launch/feed              # latest launches + trades
GET https://openlaunch.lol/api/launch/meta/<token>      # image / description / links
GET https://openlaunch.lol/llms.txt

Amounts are wei strings; prices and FDV are floats in ETH. Poll freely — responses are small and uncached.

Trade

Pools are plain Uniswap v4 (ETH / token, tick spacing 200, no hook). Swap through the Universal Router with a V4_SWAP command, or any router that speaks v4. Get the pool key with poolKeyOf(token) on the factory. Anyone may call collect(tokenId) on the locker (0xcd1680D26922fcd9CabFbb8a56bA40C333fD842a) to pay out accrued fees.

After a transaction you sent, POST https://openlaunch.lol/api/launch/sync?chain=base|robinhood&tx=0x… indexes it immediately; otherwise the poller picks it up within ~15s.