Longcation

// docs

how it worksread apicontractsscripts

how it works

01 you create a coin: name, ticker, picture, and the pair (ARB or ETH). one signature. free, gas only.
02 the contract mints 1,000,000,000 coins and puts every one of them into a fresh Uniswap v4 pool. no wallet ever holds the supply.
03 the pool position lives inside the contract. it is not an lp token, it cannot be moved or withdrawn. trading opens the same block.
04 every swap leaves a small fee in the pool. the creator claims their cut from the coin page, paid in the pair asset only. the coin side of the fee is sold for the pair during the claim.
05 a coin created in sharing mode pays holders instead: every swap sets a slice aside in the pair asset, split by holdings, collected by the pool hook so it works on any router.
06 part of what the lair collects buys the ten biggest coins and sends them to the dead address. that is the hoard.

read api

public, no key, 300 requests a minute per IP. GET, JSON. base https://longcation.fun/api/d

GET /api/tokensevery coin with market data · q, sort (mc|new|vol|trending), mode, category, pair, page, pageSize
GET /api/tokens/{ca}one coin + last 50 trades + top 100 holders + rewards, fees, hoard
GET /api/tokens/{ca}/rewardsholder payouts: collected, claimed, recent claims · null for coins that keep the fees
GET /api/tokens/{ca}/feespool fees claimed and who they went to
GET /api/candles/{ca}?tf=5mOHLCV in the pair asset · tf 1m 5m 15m 1h 4h 1d · limit ≤ 1000
GET /api/trades?limit=50latest trades across the lair, or ?token= for one coin
GET /api/launchescreate ledger, newest first
GET /api/pairspair assets: symbol, category, USD price, whether usable as a pair
GET /api/rewardslifetime payouts per sharing coin + recent claims
GET /api/revenuegold collected, buys, burns
GET /api/revenue/historydaily totals in USD, keyed by UTC date
GET /api/flywheelthe hoard: current ten, rounds, totals
GET /api/statsaggregate totals and platform config

contracts

Launchpad
Router
Hook
Deployer
Create2Factory
PoolManager
Platform token
Chain

scripts

$ read a coin
const r = await fetch('https://longcation.fun/api/d/api/token/0xYourCoin');
const t = await r.json();
console.log(t.symbol, t.priceUsd, t.mc, t.pairSymbol);
t.tradesList.slice(0, 5).forEach(x => console.log(x.side, x.usd, 'USD', x.trader));
$ buy from a script
const router = new ethers.Contract(ROUTER, [
  'function buy(address coin,uint256 amountIn,uint256 minOut) payable returns (uint256)',
  'function sell(address coin,uint256 amountIn,uint256 minOut) returns (uint256)',
], signer);
// ARB pair: approve the router for ARB, then pass amountIn. ETH pair: send value.
await router.buy(coin, ethers.utils.parseEther('25'), minOut);
// any Uniswap v4 router works too. pool key:
// { currency0, currency1, fee: 0x800000 (dynamic), tickSpacing: 200, hooks: HOOK }
$ create from a script
const lp = new ethers.Contract(LAUNCHPAD, [
  'function launch(string name,string symbol,(string uri,string logo,string description,string website,string twitter,string telegram) meta,uint8 mode,uint16 taxBps,address pair,uint256 pairBuyAmount,bytes32 salt) payable returns (address)',
], signer);
// salt: any bytes32 (no vanity suffix here). mode 0 = keeps the fees, 1 = shares (taxBps 100 or 300).
// pair = ARB address, or address(0) for ETH. pairBuyAmount = optional first buy (approve ARB first).
const tx = await lp.launch('Sunburnt Dragon', 'BURNT', meta, 0, 0, ARB, 0, ethers.utils.randomBytes(32));

terms cover what this site is and is not.