{"version":"2.0.0","generatedAt":"2026-11-11T23:35:49.379Z","site":"https://longevity.trading","docs":{"page":"https://longevity.trading/integrate","agents":"https://longevity.trading/agents","llms":"https://longevity.trading/llms.txt","openapi":"https://longevity.trading/api/openapi.json","rules":"https://longevity.trading/rules"},"solana":{"status":"live","venue":"Meteora Dynamic Bonding Curve (DBC)","deployer":"7h4efJqbi9pDuDdzjPxUdsjUXiVWUpmgkk68H6jtb6fj","partner":"5sT9hg8BarehzhJo813wDJ2dAf84ycEcfgiQG2UAwfta","note":"Every Longevity coin is launched on Solana by the engine: the launcher signs one payment to Longevity's deployer, and the engine creates the coin and its Meteora Dynamic Bonding Curve (DBC) pool under a Longevity config. The pool's creator is the deployer and the config's feeClaimer is Longevity's partner wallet, so a terminal that already indexes DBC pools finds these by the config's feeClaimer. The launcher is coin.launcher in GET /api/engine/coin/<mint>. The rest is under indexing.solana."},"evm":"No coin is launched on an EVM chain. A coin launched on Solana can pick Base, Robinhood Chain, BNB Chain, Hyperliquid on the launch form; it keeps a slice of its supply for each picked chain, and at graduation that slice opens the coin's pool there at the Solana price. A contract address is published only for a chain whose status is live; until then it is null.","chains":{"base":{"key":"base","chainId":8453,"name":"Base","status":"soon","explorer":"https://basescan.org","rpc":"https://mainnet.base.org","contracts":{"twinFactory":{"name":"TwinOFTFactory","address":null,"role":"creates a picked coin's token on this chain, at the same address on every chain; emits TwinDeployed with the Solana mint"},"alignedSeeder":{"name":"AlignedPoolSeeder","address":null,"role":"receives the coin's slice at graduation and opens its pool here at the Solana price"},"alignedFactory":{"name":"AlignedListingFactory","address":null,"role":"opens the coin's Uniswap v4 pool and keeps the liquidity position in its own locker; emits Listed"},"feeStyleHook":{"name":"FeeStyleHook","address":null,"role":"the hook on every Longevity pool: it sets each swap's fee; quoteFee(key, params) gives the fee a swap pays now. Its address differs per chain"},"alignmentVault":{"name":"AlignmentVault","address":null,"role":"registers each coin and trades in the open to keep this chain's price in line with Solana's"},"heldFees":{"name":"HeldFees","address":null,"role":"this chain's books for creator trading fees and holder rewards"},"stakeVault":{"name":"StakeVault","address":null,"role":"where a holder stakes a coin on this chain"},"feeRouter":{"name":"FeeRouter","address":null,"role":"receives Longevity's side of the trading fees"},"otcDesk":{"name":"OtcDesk","address":null,"role":"settles an OTC deal wallet to wallet in one transaction; it never touches a pool"}},"v4":{"poolManager":"0x498581fF718922c3f8e6A244956aF099B2652b2b","positionManager":"0x7C5f5A4bBd8fD63184577525326123B519429bDc","stateView":"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71","quoter":"0x0d5e0F971ED27FBfF6c2837bf31316121532048D","universalRouter":"0x6fF5693b99212Da76ad316178A184AB56D299b43","permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3"},"swapLayout":"v1","events":[{"name":"Listed","contract":"AlignedListingFactory","address":null,"emitter":null,"signature":"Listed(address,uint256,address,address,bytes32,int24,uint24,uint256,string)","solidity":"event Listed(address indexed token, uint256 indexed tokenId, address indexed lister, address quote, bytes32 poolId, int24 startTick, uint24 lpFee, uint256 amount, string metadataURI)","topic0":"0xad5a4aaa469875ff13658232c22a8ba97398205fa40bdf452cdbd83b1ee2d117","indexes":"bb_listings + bb_launches (kind listing) + bb_launch_pools (one row per pool)","note":"a coin's pool opened on this chain: token, tokenId (the position in the factory's locker), quote, poolId, startTick, lpFee, amount. Its metadataURI is a fixed marker, not a URL: read the coin's metadata from the Solana mint"},{"name":"Swap","contract":"PoolManager (Uniswap v4)","address":"0x498581fF718922c3f8e6A244956aF099B2652b2b","emitter":null,"signature":"Swap(bytes32,address,int128,int128,uint160,uint128,int24,uint24)","solidity":"event Swap(bytes32 indexed id, address indexed sender, int128 amount0, int128 amount1, uint160 sqrtPriceX96, uint128 liquidity, int24 tick, uint24 fee)","topic0":"0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f","indexes":"bb_launch_swaps (filtered by the pool ids Listed announced: topic1 = poolId) + rolling price / volume / buys / sells on bb_launches and bb_launch_pools","note":"every trade on a coin's pool; the quote is currency0 on every Longevity pool"}],"constants":{"pool":{"tickSpacing":200,"fee":"0x800000 (the v4 dynamic-fee flag): the FeeStyleHook sets each swap's fee","quoteIsCurrency0":true,"tokenDecimals":18,"native":"0x0000000000000000000000000000000000000000"},"solana":{"tradingFee":"1% or 3% of every trade, the launcher's choice","openingFee":"every buy in the first three slots after a coin goes live pays 99%"},"formulas":{"directTokensPerQuote":"tokensPerQuote = (sqrtPriceX96 / 2^96)^2 * 10^(quoteDecimals - 18)","directQuotePerToken":"priceQuote = 1 / tokensPerQuote","directFromTick":"tokensPerQuote = 1.0001^tick * 10^(quoteDecimals - 18)","marketCap":"fdvQuote = priceQuote * supply; usd = fdvQuote * quoteUsd. supply is the coin's one supply across every chain (the Solana supply), not this chain's totalSupply","solanaProgress":"progress = quoteReserve / migrationThreshold, both read from the DBC pool account"}}},"robinhood":{"key":"robinhood","chainId":4663,"name":"Robinhood Chain","status":"soon","explorer":"https://robinhoodchain.blockscout.com","rpc":"https://rpc.mainnet.chain.robinhood.com","contracts":{"twinFactory":{"name":"TwinOFTFactory","address":null,"role":"creates a picked coin's token on this chain, at the same address on every chain; emits TwinDeployed with the Solana mint"},"alignedSeeder":{"name":"AlignedPoolSeeder","address":null,"role":"receives the coin's slice at graduation and opens its pool here at the Solana price"},"alignedFactory":{"name":"AlignedListingFactory","address":null,"role":"opens the coin's Uniswap v4 pool and keeps the liquidity position in its own locker; emits Listed"},"feeStyleHook":{"name":"FeeStyleHook","address":null,"role":"the hook on every Longevity pool: it sets each swap's fee; quoteFee(key, params) gives the fee a swap pays now. Its address differs per chain"},"alignmentVault":{"name":"AlignmentVault","address":null,"role":"registers each coin and trades in the open to keep this chain's price in line with Solana's"},"heldFees":{"name":"HeldFees","address":null,"role":"this chain's books for creator trading fees and holder rewards"},"stakeVault":{"name":"StakeVault","address":null,"role":"where a holder stakes a coin on this chain"},"feeRouter":{"name":"FeeRouter","address":null,"role":"receives Longevity's side of the trading fees"},"otcDesk":{"name":"OtcDesk","address":null,"role":"settles an OTC deal wallet to wallet in one transaction; it never touches a pool"}},"v4":{"poolManager":"0x8366a39CC670B4001A1121B8F6A443A643e40951","positionManager":"0x58daec3116aae6D93017bAAea7749052E8a04fA7","stateView":"0xf3334192d15450cdd385c8b70e03f9a6bd9e673b","quoter":"0x8dc178efb8111bb0973dd9d722ebeff267c98f94","universalRouter":"0x8876789976decbfcbbbe364623c63652db8c0904","permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3"},"swapLayout":"v2","events":[{"name":"Listed","contract":"AlignedListingFactory","address":null,"emitter":null,"signature":"Listed(address,uint256,address,address,bytes32,int24,uint24,uint256,string)","solidity":"event Listed(address indexed token, uint256 indexed tokenId, address indexed lister, address quote, bytes32 poolId, int24 startTick, uint24 lpFee, uint256 amount, string metadataURI)","topic0":"0xad5a4aaa469875ff13658232c22a8ba97398205fa40bdf452cdbd83b1ee2d117","indexes":"bb_listings + bb_launches (kind listing) + bb_launch_pools (one row per pool)","note":"a coin's pool opened on this chain: token, tokenId (the position in the factory's locker), quote, poolId, startTick, lpFee, amount. Its metadataURI is a fixed marker, not a URL: read the coin's metadata from the Solana mint"},{"name":"Swap","contract":"PoolManager (Uniswap v4)","address":"0x8366a39CC670B4001A1121B8F6A443A643e40951","emitter":null,"signature":"Swap(bytes32,address,int128,int128,uint160,uint128,int24,uint24)","solidity":"event Swap(bytes32 indexed id, address indexed sender, int128 amount0, int128 amount1, uint160 sqrtPriceX96, uint128 liquidity, int24 tick, uint24 fee)","topic0":"0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f","indexes":"bb_launch_swaps (filtered by the pool ids Listed announced: topic1 = poolId) + rolling price / volume / buys / sells on bb_launches and bb_launch_pools","note":"every trade on a coin's pool; the quote is currency0 on every Longevity pool"}],"constants":{"pool":{"tickSpacing":200,"fee":"0x800000 (the v4 dynamic-fee flag): the FeeStyleHook sets each swap's fee","quoteIsCurrency0":true,"tokenDecimals":18,"native":"0x0000000000000000000000000000000000000000"},"solana":{"tradingFee":"1% or 3% of every trade, the launcher's choice","openingFee":"every buy in the first three slots after a coin goes live pays 99%"},"formulas":{"directTokensPerQuote":"tokensPerQuote = (sqrtPriceX96 / 2^96)^2 * 10^(quoteDecimals - 18)","directQuotePerToken":"priceQuote = 1 / tokensPerQuote","directFromTick":"tokensPerQuote = 1.0001^tick * 10^(quoteDecimals - 18)","marketCap":"fdvQuote = priceQuote * supply; usd = fdvQuote * quoteUsd. supply is the coin's one supply across every chain (the Solana supply), not this chain's totalSupply","solanaProgress":"progress = quoteReserve / migrationThreshold, both read from the DBC pool account"}}},"bnb":{"key":"bnb","chainId":56,"name":"BNB Chain","status":"soon","explorer":"https://bscscan.com","rpc":"https://bsc-rpc.publicnode.com","contracts":{"twinFactory":{"name":"TwinOFTFactory","address":null,"role":"creates a picked coin's token on this chain, at the same address on every chain; emits TwinDeployed with the Solana mint"},"alignedSeeder":{"name":"AlignedPoolSeeder","address":null,"role":"receives the coin's slice at graduation and opens its pool here at the Solana price"},"alignedFactory":{"name":"AlignedListingFactory","address":null,"role":"opens the coin's Uniswap v4 pool and keeps the liquidity position in its own locker; emits Listed"},"feeStyleHook":{"name":"FeeStyleHook","address":null,"role":"the hook on every Longevity pool: it sets each swap's fee; quoteFee(key, params) gives the fee a swap pays now. Its address differs per chain"},"alignmentVault":{"name":"AlignmentVault","address":null,"role":"registers each coin and trades in the open to keep this chain's price in line with Solana's"},"heldFees":{"name":"HeldFees","address":null,"role":"this chain's books for creator trading fees and holder rewards"},"stakeVault":{"name":"StakeVault","address":null,"role":"where a holder stakes a coin on this chain"},"feeRouter":{"name":"FeeRouter","address":null,"role":"receives Longevity's side of the trading fees"},"otcDesk":{"name":"OtcDesk","address":null,"role":"settles an OTC deal wallet to wallet in one transaction; it never touches a pool"}},"v4":{"poolManager":"0x28e2Ea090877bF75740558f6BFB36A5ffeE9e9dF","positionManager":"0x7A4a5c919aE2541AeD11041A1AEeE68f1287f95b","stateView":"0xd13Dd3D6E93f276FAFc9Db9E6bB47C1180aeE0c4","quoter":"0x9F75dD27D6664c475B90e105573E550ff69437B0","universalRouter":"0x1906c1d672b88cD1B9aC7593301cA990F94Eae07","permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3"},"swapLayout":"v1","events":[{"name":"Listed","contract":"AlignedListingFactory","address":null,"emitter":null,"signature":"Listed(address,uint256,address,address,bytes32,int24,uint24,uint256,string)","solidity":"event Listed(address indexed token, uint256 indexed tokenId, address indexed lister, address quote, bytes32 poolId, int24 startTick, uint24 lpFee, uint256 amount, string metadataURI)","topic0":"0xad5a4aaa469875ff13658232c22a8ba97398205fa40bdf452cdbd83b1ee2d117","indexes":"bb_listings + bb_launches (kind listing) + bb_launch_pools (one row per pool)","note":"a coin's pool opened on this chain: token, tokenId (the position in the factory's locker), quote, poolId, startTick, lpFee, amount. Its metadataURI is a fixed marker, not a URL: read the coin's metadata from the Solana mint"},{"name":"Swap","contract":"PoolManager (Uniswap v4)","address":"0x28e2Ea090877bF75740558f6BFB36A5ffeE9e9dF","emitter":null,"signature":"Swap(bytes32,address,int128,int128,uint160,uint128,int24,uint24)","solidity":"event Swap(bytes32 indexed id, address indexed sender, int128 amount0, int128 amount1, uint160 sqrtPriceX96, uint128 liquidity, int24 tick, uint24 fee)","topic0":"0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f","indexes":"bb_launch_swaps (filtered by the pool ids Listed announced: topic1 = poolId) + rolling price / volume / buys / sells on bb_launches and bb_launch_pools","note":"every trade on a coin's pool; the quote is currency0 on every Longevity pool"}],"constants":{"pool":{"tickSpacing":200,"fee":"0x800000 (the v4 dynamic-fee flag): the FeeStyleHook sets each swap's fee","quoteIsCurrency0":true,"tokenDecimals":18,"native":"0x0000000000000000000000000000000000000000"},"solana":{"tradingFee":"1% or 3% of every trade, the launcher's choice","openingFee":"every buy in the first three slots after a coin goes live pays 99%"},"formulas":{"directTokensPerQuote":"tokensPerQuote = (sqrtPriceX96 / 2^96)^2 * 10^(quoteDecimals - 18)","directQuotePerToken":"priceQuote = 1 / tokensPerQuote","directFromTick":"tokensPerQuote = 1.0001^tick * 10^(quoteDecimals - 18)","marketCap":"fdvQuote = priceQuote * supply; usd = fdvQuote * quoteUsd. supply is the coin's one supply across every chain (the Solana supply), not this chain's totalSupply","solanaProgress":"progress = quoteReserve / migrationThreshold, both read from the DBC pool account"}}},"hyperevm":{"key":"hyperevm","chainId":999,"name":"Hyperliquid","status":"soon","explorer":"https://hyperevmscan.io","rpc":"https://rpc.hyperliquid.xyz/evm","contracts":{"twinFactory":{"name":"TwinOFTFactory","address":null,"role":"creates a picked coin's token on this chain, at the same address on every chain; emits TwinDeployed with the Solana mint"},"alignedSeeder":{"name":"AlignedPoolSeeder","address":null,"role":"receives the coin's slice at graduation and opens its pool here at the Solana price"},"alignedFactory":{"name":"AlignedListingFactory","address":null,"role":"opens the coin's Uniswap v4 pool and keeps the liquidity position in its own locker; emits Listed"},"feeStyleHook":{"name":"FeeStyleHook","address":null,"role":"the hook on every Longevity pool: it sets each swap's fee; quoteFee(key, params) gives the fee a swap pays now. Its address differs per chain"},"alignmentVault":{"name":"AlignmentVault","address":null,"role":"registers each coin and trades in the open to keep this chain's price in line with Solana's"},"heldFees":{"name":"HeldFees","address":null,"role":"this chain's books for creator trading fees and holder rewards"},"stakeVault":{"name":"StakeVault","address":null,"role":"where a holder stakes a coin on this chain"},"feeRouter":{"name":"FeeRouter","address":null,"role":"receives Longevity's side of the trading fees"},"otcDesk":{"name":"OtcDesk","address":null,"role":"settles an OTC deal wallet to wallet in one transaction; it never touches a pool"}},"v4":{"poolManager":"0x12D4Fd9C5DeDd00ab8a0bCe2CF0167bbf94b6B1F","positionManager":"0x0d7Ab5B3db668128Aff6F70C4eBC71D7d4DA9bf9","stateView":"0x1656326235cb9E34Cb58CaDe53AE30789AB32A1A","quoter":"0x108Bfe38532C98f8Cd8D7Ab49c9dDAa3675a1c5e","universalRouter":"0x9aFe3C497e19501DB228F28CdBdD29bC98F65DBa","permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3"},"swapLayout":"v2","events":[{"name":"Listed","contract":"AlignedListingFactory","address":null,"emitter":null,"signature":"Listed(address,uint256,address,address,bytes32,int24,uint24,uint256,string)","solidity":"event Listed(address indexed token, uint256 indexed tokenId, address indexed lister, address quote, bytes32 poolId, int24 startTick, uint24 lpFee, uint256 amount, string metadataURI)","topic0":"0xad5a4aaa469875ff13658232c22a8ba97398205fa40bdf452cdbd83b1ee2d117","indexes":"bb_listings + bb_launches (kind listing) + bb_launch_pools (one row per pool)","note":"a coin's pool opened on this chain: token, tokenId (the position in the factory's locker), quote, poolId, startTick, lpFee, amount. Its metadataURI is a fixed marker, not a URL: read the coin's metadata from the Solana mint"},{"name":"Swap","contract":"PoolManager (Uniswap v4)","address":"0x12D4Fd9C5DeDd00ab8a0bCe2CF0167bbf94b6B1F","emitter":null,"signature":"Swap(bytes32,address,int128,int128,uint160,uint128,int24,uint24)","solidity":"event Swap(bytes32 indexed id, address indexed sender, int128 amount0, int128 amount1, uint160 sqrtPriceX96, uint128 liquidity, int24 tick, uint24 fee)","topic0":"0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f","indexes":"bb_launch_swaps (filtered by the pool ids Listed announced: topic1 = poolId) + rolling price / volume / buys / sells on bb_launches and bb_launch_pools","note":"every trade on a coin's pool; the quote is currency0 on every Longevity pool"}],"constants":{"pool":{"tickSpacing":200,"fee":"0x800000 (the v4 dynamic-fee flag): the FeeStyleHook sets each swap's fee","quoteIsCurrency0":true,"tokenDecimals":18,"native":"0x0000000000000000000000000000000000000000"},"solana":{"tradingFee":"1% or 3% of every trade, the launcher's choice","openingFee":"every buy in the first three slots after a coin goes live pays 99%"},"formulas":{"directTokensPerQuote":"tokensPerQuote = (sqrtPriceX96 / 2^96)^2 * 10^(quoteDecimals - 18)","directQuotePerToken":"priceQuote = 1 / tokensPerQuote","directFromTick":"tokensPerQuote = 1.0001^tick * 10^(quoteDecimals - 18)","marketCap":"fdvQuote = priceQuote * supply; usd = fdvQuote * quoteUsd. supply is the coin's one supply across every chain (the Solana supply), not this chain's totalSupply","solanaProgress":"progress = quoteReserve / migrationThreshold, both read from the DBC pool account"}}}},"apis":[{"method":"GET","path":"/api/launch/list","url":"https://longevity.trading/api/launch/list","summary":"Browse launches","description":"The list every tab of the home page reads. Raw amounts are decimal integer strings in the quote's decimals (`quote_decimals`); `price_quote` / `fdv_quote` are numbers in the quote asset; `*_usd` fields are null when the quote has no price.","params":[{"name":"chain","in":"query","description":"one chain; omitted = every chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]}},{"name":"sort","in":"query","description":"live (outside-wallet activity first; trending is an alias), new, mcap, volume, gainers, holders","schema":{"type":"string","enum":["live","new","mcap","volume","gainers","holders"]}},{"name":"window","in":"query","description":"the volume window for sort=volume|gainers","schema":{"type":"string","enum":["1h","24h","all"]}},{"name":"filter","in":"query","description":"a facet","schema":{"type":"string","enum":["fee0","burn","usdg","gitlawb","today","stock","holders","platform","parasite","posters"]}},{"name":"limit","in":"query","description":"rows per page, 1..200","schema":{"type":"integer"}},{"name":"offset","in":"query","description":"page offset, up to 100000","schema":{"type":"integer"}},{"name":"quote","in":"query","description":"one exact quote-asset address: every coin paired with it (combine with `chain`)","schema":{"type":"string","format":"address"}},{"name":"format","in":"query","description":"csv = the same rows as text/csv (RFC 4180, CRLF); omitted = JSON","schema":{"type":"string","enum":["json","csv"]}}],"cache":"public, s-maxage=2, stale-while-revalidate=10","example":"https://longevity.trading/api/launch/list?chain=base&sort=new&limit=50","response":"{ sort, window, chain, filter, quote, limit, offset, has_more, ethUsd, launches: LaunchRow: { chain, chain_id, token, token_id, launcher (raw on-chain: the address the pool event names), creator (use this for display / attribution), quote, quote_key (eth|usdg|stock|custom), quote_symbol, quote_decimals, pool_id, hooks, start_tick, lp_fee (pips), supply (wei string), name, symbol, image_url, description, website, x_handle, telegram (https://t.me/…), tweet_url (https://x.com/<user>/status/<id>), kind (pool|curve|listing), curve, graduated, refunding, graduation_threshold, phantom_quote, creator_tax_bps, curve_raised, snipe_window, snipe_start_bps, airdrop_bps, airdrop_pool, pool_opened_at, pools[] { pool_id, quote, token_is_currency0, sqrt_price_x96, tick, supply_bps }, sqrt_price_x96, tick, price_quote, fdv_quote, quote_usd, price_usd, fdv_usd, volume_quote, volume_1h, volume_24h, volume_usd, buys, sells, trades_1h, trades_24h, traders_1h_ex, traders_24h_ex, holders, last_trade_at, block_time, tx_hash, recipients[], reward_pool, fee_vault, fee_mode, x_recipients[] }[] }. With format=csv: text/csv, one row per launch (chain, chain_id, token, name, symbol, launcher, kind, quote, quote_symbol, quote_decimals, lp_fee_pips, supply, price_quote, price_usd, fdv_quote, fdv_usd, volume_quote, volume_usd, volume_24h_quote, buys, sells, holders, block_time, tx_hash)."},{"method":"GET","path":"/api/launch/live","url":"https://longevity.trading/api/launch/live","summary":"One call for a live page","description":"The activity feed, the site totals, the trending strip and (with `sort`) one list page, in one response. The site polls it every ~5 s.","params":[{"name":"chain","in":"query","description":"one chain; omitted = every chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]}},{"name":"sort","in":"query","description":"live (outside-wallet activity first; trending is an alias), new, mcap, volume, gainers, holders","schema":{"type":"string","enum":["live","new","mcap","volume","gainers","holders"]}},{"name":"window","in":"query","description":"the volume window for sort=volume|gainers","schema":{"type":"string","enum":["1h","24h","all"]}},{"name":"filter","in":"query","description":"a facet","schema":{"type":"string","enum":["fee0","burn","usdg","gitlawb","today","stock","holders","platform","parasite","posters"]}},{"name":"limit","in":"query","description":"rows per page, 1..200","schema":{"type":"integer"}},{"name":"offset","in":"query","description":"page offset, up to 100000","schema":{"type":"integer"}},{"name":"quote","in":"query","description":"one exact quote-asset address: every coin paired with it (combine with `chain`)","schema":{"type":"string","format":"address"}}],"cache":"public, s-maxage=2, stale-while-revalidate=10","example":"https://longevity.trading/api/launch/live?chain=base&sort=live&limit=40","response":"{ at, feed: FeedItem[], totals: { launches, trades, volume_usd, fees_burned_usd, fees_to_creators_usd, usd_partial }, ethUsd, launches: LaunchRow[] | null, has_more, posts, trending: { window, items } }"},{"method":"GET","path":"/api/launch/feed","url":"https://longevity.trading/api/launch/feed","summary":"Latest launches and trades","description":"The newest 24 launch and swap events across every chain, newest first.","params":[{"name":"format","in":"query","description":"csv = the same rows as text/csv (RFC 4180, CRLF); omitted = JSON","schema":{"type":"string","enum":["json","csv"]}}],"cache":"public, s-maxage=2, stale-while-revalidate=10","example":"https://longevity.trading/api/launch/feed","response":"{ items: ({ kind: 'launch', chain, at, tx_hash, token, name, symbol, launcher, lp_fee, quote_key, quote_symbol, launch_kind, image_url, ... } | { kind: 'swap', chain, at, tx_hash, token, name, symbol, trader, is_buy, is_dev, quote_wei, quote_key, quote_symbol, quote_decimals, usd, image_url })[] }. With format=csv: text/csv, launches and swaps in one flat shape (kind, chain, at, tx_hash, token, name, symbol, trader, is_buy, quote_amount, quote_symbol, quote_decimals, usd)."},{"method":"GET","path":"/api/launch/search","url":"https://longevity.trading/api/launch/search","summary":"Search by name, symbol or address","description":"Substring match on name / symbol, exact match on a token address; at most 20 rows.","params":[{"name":"q","in":"query","required":true,"description":"up to 80 characters","schema":{"type":"string"}},{"name":"chain","in":"query","description":"one chain; omitted = every chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]}}],"cache":"public, s-maxage=5, stale-while-revalidate=30","example":"https://longevity.trading/api/launch/search?q=pepe&chain=base","response":"{ q, launches: LaunchRow[] }"},{"method":"GET","path":"/api/launch/candles","url":"https://longevity.trading/api/launch/candles","summary":"OHLCV candles","description":"Sparse whole buckets in quote per token (multiply by `quote.usd` for dollars), at most 2000 including the current bucket; fill gaps from `baseline.price`. `launch.price` is the opening price from the start tick.","params":[{"name":"chain","in":"query","description":"the chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]},"required":true},{"name":"token","in":"query","required":true,"description":"the launch token address","schema":{"type":"string","format":"address"}},{"name":"interval","in":"query","description":"default 5m","schema":{"type":"string","enum":["1m","5m","15m","1h","4h","1d"]}},{"name":"from","in":"query","description":"unix seconds; bounded to the launch time and the bucket cap","schema":{"type":"integer"}},{"name":"wallet","in":"query","description":"also return that wallet's trades as markers (`mine`)","schema":{"type":"string","format":"address"}}],"cache":"public, s-maxage=5, stale-while-revalidate=30","example":"https://longevity.trading/api/launch/candles?chain=base&token=0x...&interval=5m","response":"{ interval, from, asOf, baseline: { price, hasPriorTrades }, launch: { t, price }, quote: { symbol, decimals, usd }, supply, candles: { t, open, high, low, close, volume, trades }[], mine }"},{"method":"GET","path":"/api/launch/holders","url":"https://longevity.trading/api/launch/holders","summary":"Holder distribution","description":"Top holders, concentration, the creator's position and sniper-window buyers. `synced` is false while the token's transfer history is still being backfilled.","params":[{"name":"chain","in":"query","description":"the chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]},"required":true},{"name":"token","in":"query","required":true,"description":"the launch token address","schema":{"type":"string","format":"address"}}],"cache":"no-store (5 s server memo)","example":"https://longevity.trading/api/launch/holders?chain=base&token=0x...","response":"{ synced, holders, supply, top: { holder, balance, bps, tag }[], top10Bps, poolBps, creator: { address, bps, bought, sold, sells }, sniper: { wallets, bps }, notes[] }"},{"method":"GET","path":"/api/launch/rewards","url":"https://longevity.trading/api/launch/rewards","summary":"Reward-coin payouts","description":"The holder-reward payouts the index has recorded for one coin on one chain.","params":[{"name":"chain","in":"query","description":"the chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]},"required":true},{"name":"token","in":"query","required":true,"description":"the launch token address","schema":{"type":"string","format":"address"}},{"name":"wallet","in":"query","description":"also total that wallet's payouts (`mine`)","schema":{"type":"string","format":"address"}}],"cache":"no-store (5 s server memo)","example":"https://longevity.trading/api/launch/rewards?chain=base&token=0x...","response":"{ total, burned, rounds, holders_paid, last_at, mine }"},{"method":"GET","path":"/api/launch/sisters","url":"https://longevity.trading/api/launch/sisters","summary":"Sister-coin candidates","description":"Coins on one chain quoted in the same asset, for a sister-coin picker.","params":[{"name":"chain","in":"query","description":"the chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]},"required":true},{"name":"quote","in":"query","required":true,"description":"the quote asset address","schema":{"type":"string","format":"address"}},{"name":"q","in":"query","description":"name / symbol filter","schema":{"type":"string"}}],"cache":"no-store","example":"https://longevity.trading/api/launch/sisters?chain=base&quote=0x...","response":"{ candidates: { token, name, symbol, sister, module, fee_mode, image_url }[] }"},{"method":"GET","path":"/api/public/v1/fees","url":"https://longevity.trading/api/public/v1/fees","summary":"Public fee data: totals and per coin","description":"Fees every coin has generated and where they went, from indexed events only, in the buckets the response names. Totals per chain and quote asset across all coins (quote legs only: coin legs are different tokens); one page of coins with both legs. Every bucket: { amount | quote + coin, events, txs (its newest tx hashes) }. Solana: fee claims by source, in lamports. Raw integer strings, no USD. CORS open; unknown parameters are refused at the edge; a busy database answers 503 + retry-after.","params":[{"name":"chain","in":"query","description":"one chain; omitted = every chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]}},{"name":"limit","in":"query","description":"coins per page, 1..200 (default 50)","schema":{"type":"integer"}},{"name":"offset","in":"query","description":"page offset","schema":{"type":"integer"}}],"cache":"public, s-maxage=60, stale-while-revalidate=300","example":"https://longevity.trading/api/public/v1/fees?chain=base&limit=50","response":"{ version, generated_at, chain, limit, offset, has_more, totals: { chain, quote, quote_symbol, quote_decimals, coins, generated, to: { creator, holders, handles, posters, modules, xchain, protocol, burn, credited, unattributed }, posters_paid_out }[], coins: CoinFees[], solana: { by_source: { source, amount, events, txs }[], asset, note, coins } | null }"},{"method":"GET","path":"/api/public/v1/fees/{chain}/{token}","url":"https://longevity.trading/api/public/v1/fees/{chain}/{token}","summary":"Public fee data: one coin, event by event","description":"One coin's fee breakdown (generated, the buckets it went to, a summary, reconciled per leg) and its fee events newest first, each with tx_hash and log_index. chain = solana takes a mint and returns that coin's fee claims by source.","params":[{"name":"chain","in":"path","required":true,"description":"base | robinhood | bnb | hyperevm | solana","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm","solana"]}},{"name":"token","in":"path","required":true,"description":"the coin (0x address, or a Solana mint)","schema":{"type":"string"}},{"name":"limit","in":"query","description":"events per page, 1..200 (default 100)","schema":{"type":"integer"}},{"name":"offset","in":"query","description":"events offset","schema":{"type":"integer"}}],"cache":"public, s-maxage=60, stale-while-revalidate=300","example":"https://longevity.trading/api/public/v1/fees/base/0x...","response":"{ version, generated_at, chain, token, name, symbol, kind, quote: { address, symbol, decimals }, coin: { symbol, decimals }, fees: { generated, to, protocol_coin_burned, posters_paid_out, summary, reconciled, last_at }, events: { kind, category, tx_hash, log_index, block_number, block_time, currency, account, amount, quote_amount, token_amount, protocol_amount, creator_amount, tax_amount }[], limit, offset, has_more }"},{"method":"GET","path":"/api/launch/meta/{token}","url":"https://longevity.trading/api/launch/meta/{token}","summary":"Token metadata by address","description":"Name, symbol, description, logo and links the creator registered. The logo is a 512x512 WebP on this domain when it was uploaded here, else the https URL the creator gave.","params":[{"name":"token","in":"path","required":true,"description":"the launch token address","schema":{"type":"string","format":"address"}},{"name":"chain","in":"query","description":"one chain; omitted = every chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]}}],"cache":"public, max-age=300","example":"https://longevity.trading/api/launch/meta/0x...?chain=base","response":"{ name, symbol, description?, image?, external_url?, x?, website?, twitter?, telegram?, tweet?, extensions?: { website?, twitter?, telegram? }, token, x_recipients?: { handle, vault, bps, user_id? }[] }"},{"method":"GET","path":"/api/launch/meta/{launcher}/{key}","url":"https://longevity.trading/api/launch/meta/{launcher}/{key}","summary":"Token metadata by its on-chain URI","description":"The same metadata addressed by a launcher address and a 32-byte key. Same JSON as the by-address form. A Longevity pool's Listed event does not carry this form: use the by-address form, or the Solana mint's own uri.","params":[{"name":"launcher","in":"path","required":true,"description":"the launcher wallet","schema":{"type":"string","format":"address"}},{"name":"key","in":"path","required":true,"description":"the 0x-prefixed 32-byte metadata key","schema":{"type":"string"}}],"cache":"public, max-age=300","example":"https://longevity.trading/api/launch/meta/0x<launcher>/0x<key>","response":"{ name, symbol, description?, image?, external_url?, x?, website?, twitter?, telegram?, tweet?, extensions?, token, x_recipients? }"},{"method":"GET","path":"/api/vote","url":"https://longevity.trading/api/vote","summary":"Advisory holder votes","description":"For a launch with a fee module: the proposals to switch its mode, their tallies (weight = min(balance when voting, balance at close), from the holder index) and, with `wallet`, that wallet's own vote. Advisory only: the creator decides; a vote changes nothing on-chain.","params":[{"name":"chain","in":"query","description":"the chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]},"required":true},{"name":"token","in":"query","required":true,"description":"the launch token address","schema":{"type":"string","format":"address"}},{"name":"wallet","in":"query","description":"also return that wallet's vote and what it may do","schema":{"type":"string","format":"address"}}],"cache":"no-store","example":"https://longevity.trading/api/vote?chain=base&token=0x...","response":"{ proposals: { id, chain, token, proposer, mode, sister, title, body, created_at, closes_at, state (open|closed|applied), tally: { for, against, voters }, passed, applied_at, applied_tx, my_choice }[], can_vote, can_propose, open_id }"},{"method":"GET","path":"/api/quotes","url":"https://longevity.trading/api/quotes","summary":"Quote assets on a chain","description":"The fixed quotes (ETH; USDG on Robinhood Chain) and the chain's tokenized-stock registry with live USD prices. Only registry addresses are ever labelled stocks.","params":[{"name":"chain","in":"query","description":"the chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]},"required":true},{"name":"q","in":"query","description":"a ticker (AAPL) or an address","schema":{"type":"string"}}],"cache":"no-store (30 s server memo)","example":"https://longevity.trading/api/quotes?chain=base&q=AAPL","response":"{ fixed: { key, address, symbol, decimals, usd }[], stocks: { key: 'stock', address, symbol, name, decimals, usd, usdAsOf, logo }[] }"},{"method":"GET","path":"/api/quotes/inspect","url":"https://longevity.trading/api/quotes/inspect","summary":"Can this ERC-20 be a quote?","description":"On-chain reads, a market-depth check and (Base) a token-safety scan for an arbitrary quote coin. Per-IP limit: 30 per minute.","params":[{"name":"chain","in":"query","description":"the chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]},"required":true},{"name":"address","in":"query","required":true,"description":"the ERC-20","schema":{"type":"string","format":"address"}}],"cache":"no-store (10 min server cache)","example":"https://longevity.trading/api/quotes/inspect?chain=base&address=0x...","response":"{ ok, symbol, name, decimals, usd, liquidityUsd, warnings[], blockers[] }"},{"method":"GET","path":"/api/health","url":"https://longevity.trading/api/health","summary":"Index freshness","description":"Database reachability and the indexer cursor per chain (block lag, last run, last error).","params":[],"cache":"no-store","example":"https://longevity.trading/api/health","response":"{ ok, alerts[], sync: { cursor_block, head_block, last_run_at, last_error }, chains[] }"},{"method":"GET","path":"/api/integrate/kit.json","url":"https://longevity.trading/api/integrate/kit.json","summary":"This kit, machine-readable","description":"The Solana launch facts, the EVM contracts with their addresses on a live chain, Uniswap v4 addresses, event signatures and topics, the REST reference and the stream description; versioned.","params":[],"cache":"public, s-maxage=60, stale-while-revalidate=300","example":"https://longevity.trading/api/integrate/kit.json","response":"{ version, generatedAt, site, docs, solana, evm, chains: { base, robinhood, bnb, hyperevm }, apis[], rateLimits, stream, metadata, brand, indexing }"},{"method":"GET","path":"/api/openapi.json","url":"https://longevity.trading/api/openapi.json","summary":"OpenAPI 3.1","description":"The public read API, this kit and the stream as an OpenAPI 3.1 document.","params":[],"cache":"public, s-maxage=300, stale-while-revalidate=3600","example":"https://longevity.trading/api/openapi.json","response":"OpenAPI 3.1 document"},{"method":"GET","path":"/api/stream","url":"https://longevity.trading/api/stream","summary":"Real-time events (SSE)","description":"Server-sent events: new coins, swaps, holder-reward payouts and fee events as the indexer writes them. Resume with `Last-Event-ID` or `since=`.","params":[{"name":"chain","in":"query","description":"one chain; omitted = every chain","schema":{"type":"string","enum":["base","robinhood","bnb","hyperevm"]}},{"name":"since","in":"query","description":"a cursor from a previous event id, or a moment (unix seconds, unix ms, ISO date; at most 24 h back); omitted = only what happens next","schema":{"type":"string"}}],"cache":"no-store","example":"https://longevity.trading/api/stream?chain=base","response":"text/event-stream","contentType":"text/event-stream"}],"rateLimits":{"reads":"no API key; cached reads answer 503 + retry-after: 2 when the database is busy (keep your last data, retry); unknown query parameters are refused with 400 at the edge; poll modestly and back off on errors","inspect":"/api/quotes/inspect: 30 per IP per minute","stream":"one connection per consumer; the server closes at ~290 s, reconnect with Last-Event-ID"},"stream":{"url":"https://longevity.trading/api/stream","protocol":"text/event-stream","query":{"chain":"optional: base | robinhood | bnb | hyperevm","since":"optional: a cursor (an earlier event id) or a moment (unix s, unix ms, ISO); omitted = the head"},"resume":"send the last event id as the Last-Event-ID header (EventSource does this itself) or as ?since=; ids are cursors, so any id resumes exactly after itself","cursor":{"format":"v1.<launch>.<swap>.<curve>.<reward>.<burn>.<split>","meaning":"one insertion-sequence position per table; never a block number or a block time"},"events":[{"event":"ready","data":"{ cursor, chain, poll_ms, publish_lag_s, lifetime_s, page_limit } once per connection; its id is the resolved start cursor"},{"event":"launch","data":"a new bb_launches row: { chain, chain_id, token, token_id, launcher, creator, quote, pool_id, kind, curve, hooks, start_tick, lp_fee, supply, name, symbol, metadata_uri, reward_pool, fee_vault, block_number, block_time, tx_hash, log_index }"},{"event":"swap","data":"a new bb_launch_swaps row (quote = currency0 convention): { chain, chain_id, token, pool_id, trader, is_buy, amount0, amount1, sqrt_price_x96, tick, block_number, block_time, tx_hash, log_index }"},{"event":"curve","data":"a bb_curve_launches row was inserted or changed (graduation, sweep, refund, redemption): { chain, chain_id, token, curve, pool_id, phase, graduated, refunding, refund_venue, refund_quote, refund_supply, redeemed, abandoned_at, updated_at }"},{"event":"reward","data":"a bb_rewards row: { chain, chain_id, token, pool, round, holder, amount, block_number, block_time, tx_hash, log_index }"},{"event":"burn","data":"a bb_burns row: { chain, chain_id, kind, round, currency, amount_in, burned, to, block_number, block_time, tx_hash, log_index }"},{"event":"split","data":"a bb_fee_splits row: { chain, chain_id, currency, treasury_amount, payee_amount, block_number, block_time, tx_hash, log_index }"},{"event":"unavailable","data":"{ reason } then the server closes (no database, or the database is busy): reconnect after `retry`"}],"comment":": ping","timing":{"poll_ms":2000,"ping_ms":15000,"lifetime_s":290,"publish_lag_s":3,"page_limit":200,"since_max_lookback_h":24},"delivery":"at-least-once within a connection; exactly-once across reconnects when the client resumes from the last id it processed. Events arrive after the indexer has written them (the cron polls the chain about once a minute; POST /api/launch/sync?chain=&tx= indexes one transaction at once)."},"metadata":{"solanaUri":"https://longevity.trading/api/meta/<mint>: the uri the engine writes into the mint's Metaplex metadata","byToken":"https://longevity.trading/api/launch/meta/<token>?chain=<chain>","shape":{"name":"string","symbol":"string","description":"string?","image":"https URL?","external_url":"https URL?","x":"handle?","website":"https URL?","twitter":"https://x.com/<handle>?","telegram":"https://t.me/<name> | https://t.me/+<invite>?","tweet":"https://x.com/<user>/status/<id>? (the X post announcing the coin)","extensions":"{ website?, twitter?, telegram? }? (token-list style)","token":"address","x_recipients":"{ handle, vault, bps, user_id? }[]?"},"image":"https://longevity.trading/api/launch/image/t/<48 hex>.webp: a 512x512 WebP re-encoded here, random immutable key (cache-control: immutable); otherwise the https URL the creator registered. LaunchRow.image_url and FeedItem.image_url carry the same value, so the list endpoints are enough to render logos.","cache":"public, max-age=300; metadata is off-chain and the creator may edit it (signed edits); the token itself never changes"},"brand":{"name":"longevity","domain":"longevity.trading","tagline":"Launch higher. Last longer. The cross-chain launchpad and OTC desk with a fairer open, holder rounds every 10 minutes and one supply on every chain.","token":"LONGEVITY","x":"https://x.com/Longevitylaunch","contact":"@Longevitylaunch on X","assets":[{"path":"/brand/mark.png","type":"image/png","size":"512x512","note":"the Longevity mark, square on its dark tile: avatars and large tiles","url":"https://longevity.trading/brand/mark.png"},{"path":"/brand/mark.svg","type":"image/svg+xml","size":"64x64 raster in an SVG wrapper","note":"the same mark with rounded corners, for anything that asks for an SVG","url":"https://longevity.trading/brand/mark.svg"},{"path":"/brand/mark-512.png","type":"image/png","size":"512x512","note":"for listings and tiles","url":"https://longevity.trading/brand/mark-512.png"},{"path":"/brand/mark-180.png","type":"image/png","size":"180x180","url":"https://longevity.trading/brand/mark-180.png"},{"path":"/brand/mark-64.png","type":"image/png","size":"64x64","url":"https://longevity.trading/brand/mark-64.png"},{"path":"/brand/mark-32.png","type":"image/png","size":"32x32","note":"favicon size","url":"https://longevity.trading/brand/mark-32.png"},{"path":"/favicon.svg","type":"image/svg+xml","size":"vector","note":"the site icon","url":"https://longevity.trading/favicon.svg"},{"path":"/icon.png","type":"image/png","size":"512x512","url":"https://longevity.trading/icon.png"},{"path":"/apple-icon.png","type":"image/png","size":"180x180","url":"https://longevity.trading/apple-icon.png"},{"path":"/opengraph-image","type":"image/png","size":"1200x630","note":"the site card","url":"https://longevity.trading/opengraph-image"}],"colors":{"mint":"#34D3A6","ink":"#0B0F0E"}},"indexing":{"page":"https://longevity.trading/integrate/indexing","solana":{"status":"live","venue":"Meteora Dynamic Bonding Curve (DBC)","programs":{"dbc":"dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN","dammV2":"cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG"},"deployer":"7h4efJqbi9pDuDdzjPxUdsjUXiVWUpmgkk68H6jtb6fj","partner":"5sT9hg8BarehzhJo813wDJ2dAf84ycEcfgiQG2UAwfta","configs":[{"config":"2u8jc9PEY91MzyF5py1YaAypKzwqYPmNRcsBygYz9Tf7","tradingFee":"1%","openingFee":true},{"config":"N88JJBVL7iYRqQDFmy1nt7Jb2BLRyncVeLshPxEbXkv","tradingFee":"3%","openingFee":true},{"config":"BSfxrCqGQQY4M9ZoXhA3cHKw5Rj44nwrjehpSWBLk7zn","tradingFee":"1%","openingFee":false},{"config":"C5shbPrZt5T4vC6PwFSAJPJg3ZqUtJHN3sSzkQG3gPNe","tradingFee":"3%","openingFee":false}],"recognise":"A DBC pool is a longevity.trading coin when its config account names the partner wallet as feeClaimer. Match on the config's feeClaimer, not on a list of configs: a coin paired with another coin, and a coin that picked other chains, each get a config of their own with the same feeClaimer. Any config printed under configs is one of the engine's standard SOL configs.","creator":"The pool's creator field is Longevity's deployer wallet, and so is the fee payer of the launch transaction: the engine launches every coin, so neither names the launcher. The launcher's wallet is coin.launcher in GET /api/engine/coin/<mint> on this site.","graduation":"When a curve reaches its migration threshold the pool migrates to a Meteora DAMM v2 pool (the config's migration option is MET_DAMM_V2). Progress = the pool account's quoteReserve over its config's migrationQuoteThreshold. A coin that picked other chains opens its pool on each of them at this moment, at the Solana price.","fees":"Every trade pays the coin's trading fee, set at launch and written in its config. From it come the creator trading fees, which build up from the first trade and are paid on the schedule on /fees, and the rewards paid to the coin's holders. This kit does not publish how the fee is divided.","metadata":"The mint's Metaplex uri points at /api/meta/<mint> on this site (name, symbol, description, image, external_url, extensions { website, twitter, telegram }).","finality":{"siteCommitment":"finalized","note":"The site's Solana reader (solana/trades.mjs) reads signatures and transactions at finalized, about 13 s behind confirmed, because a confirmed trade can later be forked out. Use confirmed for a fast first display if you like, and finalized for anything that ranks, pays or is stored for good. A signature missing from finalized history (getSignatureStatuses with searchTransactionHistory) is dropped."}},"evm":{"design":"No coin is launched on an EVM chain. A coin launched on Solana can pick Base, Robinhood Chain, BNB Chain, Hyperliquid on the launch form; it keeps a slice of its supply for each picked chain, and at graduation that slice opens the coin's pool there at the Solana price. A contract address is published only for a chain whose status is live; until then it is null.","chains":{"base":{"chainId":8453,"name":"Base","status":"soon","sources":{"twinFactory":null,"alignedFactory":null},"hooks":{"feeStyleHook":null},"poolManager":"0x498581fF718922c3f8e6A244956aF099B2652b2b"},"robinhood":{"chainId":4663,"name":"Robinhood Chain","status":"soon","sources":{"twinFactory":null,"alignedFactory":null},"hooks":{"feeStyleHook":null},"poolManager":"0x8366a39CC670B4001A1121B8F6A443A643e40951"},"bnb":{"chainId":56,"name":"BNB Chain","status":"soon","sources":{"twinFactory":null,"alignedFactory":null},"hooks":{"feeStyleHook":null},"poolManager":"0x28e2Ea090877bF75740558f6BFB36A5ffeE9e9dF"},"hyperevm":{"chainId":999,"name":"Hyperliquid","status":"soon","sources":{"twinFactory":null,"alignedFactory":null},"hooks":{"feeStyleHook":null},"poolManager":"0x12D4Fd9C5DeDd00ab8a0bCe2CF0167bbf94b6B1F"}},"sources":[{"key":"twinFactory","contract":"TwinOFTFactory","kind":null,"summary":"Creates the token of a coin that picked this chain. The address is the same on every chain. No pool exists yet at this point.","poolKey":null,"events":[{"contract":"TwinOFTFactory","name":"TwinDeployed","signature":"TwinDeployed(address,bytes32,bytes32,string,string,uint64,address)","solidity":"event TwinDeployed(address indexed token, bytes32 indexed solanaMint, bytes32 solanaStore, string name, string symbol, uint64 supplyRaw, address caller)","topic0":"0x526acdb32d2df5740fc359641571a78159b8dd41ef31c57010c63e9043a6e5ed","use":"the coin's token on this chain and the Solana mint it belongs to (solanaMint is the mint's 32 bytes). Use it to join the token to the Solana coin."}]},{"key":"alignedFactory","contract":"AlignedListingFactory","kind":"listing","summary":"Opens the coin's Uniswap v4 pool on this chain when the coin graduates on Solana. The AlignedPoolSeeder calls it with the coin's slice and the Solana price. One pool per coin per chain.","poolKey":"currency0 = quote, currency1 = token, fee = 0x800000 (the v4 dynamic-fee flag), tickSpacing = 200, hooks = the chain's FeeStyleHook. The quote is the chain's native coin (the zero address) or, for a paired coin, its parent coin's token on this chain. Read the key with alignedFactory.poolKeyOf(token); the fee a swap pays now is feeStyleHook.quoteFee(key, params).","events":[{"contract":"AlignedListingFactory","name":"Listed","signature":"Listed(address,uint256,address,address,bytes32,int24,uint24,uint256,string)","solidity":"event Listed(address indexed token, uint256 indexed tokenId, address indexed lister, address quote, bytes32 poolId, int24 startTick, uint24 lpFee, uint256 amount, string metadataURI)","topic0":"0xad5a4aaa469875ff13658232c22a8ba97398205fa40bdf452cdbd83b1ee2d117","use":"the coin's pool opened: token, tokenId (the liquidity position, kept by alignedFactory.locker()), lister, quote, poolId, startTick, lpFee, amount, metadataURI. The metadataURI is a fixed marker, not a URL: read the coin's metadata from its Solana mint."}]}],"swap":{"contract":"PoolManager (Uniswap v4)","name":"Swap","signature":"Swap(bytes32,address,int128,int128,uint160,uint128,int24,uint24)","solidity":"event Swap(bytes32 indexed id, address indexed sender, int128 amount0, int128 amount1, uint160 sqrtPriceX96, uint128 liquidity, int24 tick, uint24 fee)","topic0":"0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f","use":"every trade on a coin's pool (topic1 = poolId). The quote is currency0, so amount0 is the quote leg and amount1 the coin leg."},"liquidity":"the pool's liquidity position (Listed.tokenId) is kept by the factory's own locker, alignedFactory.locker()","finality":{"confirmationsDefault":10,"confirmationsMin":3,"note":"The site's own indexer stays 10 blocks behind the head (never fewer than 3) and re-checks the block hashes it has stored; a block whose hash changed is dropped and its rows rebuilt from the canonical chain. Show head-of-chain pools if you want speed, but key them by (chain, token) and be ready to drop them when their block is replaced."}},"stages":{"suggestion":true,"almostBondedProgress":0.8,"solana":"new while progress < almostBondedProgress; almost from there; completed once the pool has migrated","evm":"a coin's pool on an EVM chain opens at graduation, so a coin you first see there is already completed"},"metadata":{"solana":"https://longevity.trading/api/meta/<mint> (the uri in the mint's Metaplex metadata)","evm":"https://longevity.trading/api/launch/meta/<token>?chain=<chain>","fields":"name, symbol, description, image, external_url, x, website, twitter, telegram, tweet (the X post announcing the coin), extensions { website, twitter, telegram }"},"apis":[{"path":"/api/launch/list","perMinute":90,"cache":"public, s-maxage=2, stale-while-revalidate=10","url":"https://longevity.trading/api/launch/list"},{"path":"/api/launch/live","perMinute":120,"cache":"public, s-maxage=2, stale-while-revalidate=10","url":"https://longevity.trading/api/launch/live"},{"path":"/api/launch/search","perMinute":60,"cache":"public, s-maxage=5, stale-while-revalidate=30","url":"https://longevity.trading/api/launch/search"},{"path":"/api/launch/candles","perMinute":60,"cache":"public, s-maxage=5, stale-while-revalidate=30","url":"https://longevity.trading/api/launch/candles"},{"path":"/api/launch/feed","perMinute":null,"cache":"public, s-maxage=2, stale-while-revalidate=10","url":"https://longevity.trading/api/launch/feed"},{"path":"/api/launch/meta/{token}","perMinute":null,"cache":"public, max-age=300","url":"https://longevity.trading/api/launch/meta/{token}"},{"path":"/api/meta/{mint}","perMinute":null,"cache":"public, max-age=3600","url":"https://longevity.trading/api/meta/{mint}"},{"path":"/api/engine/coin/{mint}","perMinute":240,"cache":"no-store","url":"https://longevity.trading/api/engine/coin/{mint}"},{"path":"/api/stream","perMinute":6,"cache":"no-store (opens per minute; one connection lasts about 290 s)","url":"https://longevity.trading/api/stream"},{"path":"/api/integrate/kit.json","perMinute":null,"cache":"public, s-maxage=60, stale-while-revalidate=300","url":"https://longevity.trading/api/integrate/kit.json"}],"tag":{"launchpad":"longevity.trading","logo":"https://longevity.trading/brand/mark-512.png","logoSvg":"https://longevity.trading/brand/mark.svg","x":"https://x.com/Longevitylaunch","positioning":"the launchpad built so a coin can last","site":"https://longevity.trading"}}}