Docs
How Kosmo launches work and where everything lives on each chain. Contract addresses on this page are read from the same configuration the site itself runs on, so they always match what the app uses.
Overview
Kosmo Protocol is a token launchpad on Uniswap v4. Every launch puts the whole token supply into a single-sided Uniswap v4 pool at creation, with the liquidity locked. There is no bonding curve and no capital is needed to start: the token trades on Uniswap from the first block.
Launches are live on Ethereum, Base, BNB Chain, Robinhood Chain and Ink. Each chain has its own set of contracts; nothing is shared between chains.
How a launch works
| Supply | The creator picks the supply, from 1,000,000 to 1,000,000,000,000 tokens. All of it goes into the pool. |
| Pool | One single-sided Uniswap v4 position, tick spacing 60, opening at a fixed nominal market cap. Buyers pay the quote asset and receive the token; the position sells upward as demand arrives. |
| Opening price | 1.391772 ETH market cap on Ethereum, Base, Robinhood Chain and Ink. 4.39 BNB on BNB Chain. About the same dollar value on every chain. |
| Locked liquidity | The pool position is held by the liquidity locker contract for the life of the token. |
| Creator's first buy | Optional. It runs inside the launch transaction itself, before anyone else can trade, at the opening price. |
| Hook | Every pool uses the chain's fee hook, which charges the swap fee and enforces the opening protections if the creator turned them on. |
Robinhood Chain also carries tokens created earlier on bonding curves. They keep working exactly as before. New launches on every chain, Robinhood included, are Instant launches.
Opening protections
Optional, chosen by the creator at launch and fixed afterwards. They exist to slow the first minutes down so one wallet cannot take the opening supply.
| Window | 10 to 30 seconds from the launch block. |
| Per-buy cap | 0.5% to 2% of supply in any single buy. |
| Total cap | Up to 10% of supply, all buyers combined, counted across the window. |
| Creator's first buy | Exempt. It happens in the launch transaction. |
| Sells | Never limited. |
When the window ends, the caps stop applying and the pool trades with no limits.
Fees
Every swap pays one fee, split three ways.
| Protocol fee | Tiered by the token's fully diluted market cap in the chain's native coin. 1% below 43 ETH, 0.5% from 43 ETH up to 431 ETH, 0.3% at or above 431 ETH (Ethereum, Base, Robinhood Chain and Ink). On BNB Chain the steps are 134 BNB and 1,344 BNB. The tier moves automatically. If the hook cannot read a price for the quote asset, the 1% tier applies. Creator fees do not depend on the tier. |
| Creator fee | Set by the creator at launch, 0% to 10% separately for buys and sells. It cannot be changed afterwards. The default in the launch form is 1%. |
| Holder share | A percentage of the creator fee, set at launch, goes to token holders. |
| Buy-and-burn share | A percentage of what is left after the holder share is used to buy the token back and burn it. |
The fee splitter contract for each chain does the accounting, and the amounts are visible on-chain. The token page and the analytics page show them in dollars.
Chains and contracts
The current set is what new launches use. Earlier sets are listed under each chain: they stay deployed and their tokens keep trading.
Robinhood Chain
| Chain ID | 4663 |
| Gas token | ETH |
| Block explorer | robin.etherscan.io |
| Launch factory | 0xAad2C3C3012C4a71d09f47F9c7463b4b1EddB793 |
| Graduation executor | 0x4739d39F51f9b1d9FF4CEb677da4082b51E66311 |
| Fee hook | 0x230f70f868d8e55C757984AeAD865018f92460Cc |
| Fee splitter | 0x36680d83A86F8DDF6c8c5629caC5Db5186eB464A |
| Liquidity locker | 0xbb2FE5F8A29800298793D95821b9cC15196BDE6d |
| Uniswap v4 PoolManager | 0x8366a39CC670B4001A1121B8F6A443A643e40951 |
| Uniswap v4 StateView | 0xF3334192D15450CdD385c8B70e03f9A6bD9E673b |
| Buy router | 0x61dd6e2040EA7953F81bd44e217E11866EB86983 |
| First block to scan | 100220185 |
Earlier contract sets (5) — tokens launched on them keep trading
| Set 1 factory | 0xDe87F6d6a18995fb3FFD9E957A8FB6755E73261e |
| Executor | 0x5090104409C12A0393702C40f50224FDf3e330f6 |
| Fee hook | 0x26b54d990F1138f8948Fa45A5baB6f8083F4E0CC |
| Fee splitter | 0xE67978e44fc3313eA3d2EDaDb73C7917cD5bFa47 |
| Liquidity locker | 0x73883268694A0f84C59951787398DfBdf3787a9D |
| Set 2 factory | 0x58010e33F039E4A4ec2280cb31EEef97b19f5DA5 |
| Executor | 0x975478eA23775f3F8fa8cBe4F54A69AcdeBB9e58 |
| Fee hook | 0xB1a859A06f2716b699a67257a7Ea4cff8E09E0cC |
| Fee splitter | 0x56d1f30E7acCAA600d6500cE6B8B71AbD09C6Ae1 |
| Liquidity locker | 0xCDf8866CA6cC2Cc6a3036f755F27738b6e1D3BE1 |
| Set 3 factory | 0x0813150f9224ad7C75abfc4C9f48fEa075636640 |
| Executor | 0x56849a05af4ea6899e34166FF2AB6c064519Ee87 |
| Fee hook | 0xae2ab0F00994a7F279c3f2bfd93aBD5Cf872A0cc |
| Fee splitter | 0x9432Fa806eC6004A7a9944dB9500Fb758D1B245B |
| Liquidity locker | 0x1C10d89b8034391823EC4BdBa1F0142D2Cff66BD |
| Set 4 factory | 0xdE7956A9c7638E7DEdF7524728E4d7fACE3E46Aa |
| Executor | 0x347daD5e1E99470DAA12ABbB77575d9FeD889e68 |
| Fee hook | 0xF781608e174afba6dcb427D25c3c396b86ca20cc |
| Fee splitter | 0x3eE35ff07885ebC92aa0AF55484284754e774c73 |
| Liquidity locker | 0xc990A67cf2F7E715A344C5c5E2b599E27B8fd26D |
| Set 5 factory | 0x88C5BA80647A369796b5c0B58dA095b5Ff75F547 |
| Executor | 0x345675b17db1693de398D313A354BFd40F27a85c |
| Fee hook | 0x31f6eBA4C9BA932a1A7Abad8514a9e2Ff084e0Cc |
| Fee splitter | 0x7998faD920Fd05736aC65f2c0fE63b05682a8963 |
| Liquidity locker | 0xF7bE16f5823391b89AAC291c32608063f6399FB6 |
Base
| Chain ID | 8453 |
| Gas token | ETH |
| Block explorer | basescan.org |
| Launch factory | 0x0c451c9c26608cc66c88ca699bf669bc489b895a |
| Graduation executor | 0xd50ff696e05cf03a7c65b3260a52e76477260ae3 |
| Fee hook | 0x9a8150e581e6cb3268d1db56851d74b36c39a0cc |
| Fee splitter | 0x91f1e4dfd2d91672d27c1b45ee9aed84e0809d85 |
| Liquidity locker | 0x98abaef1f498fce517997afc8febc9b10e4f24c1 |
| Uniswap v4 PoolManager | 0x498581ff718922c3f8e6a244956af099b2652b2b |
| Uniswap v4 StateView | 0xa3c0c9b65bad0b08107aa264b0f3db444b867a71 |
| Buy router | 0xd0d41bf8149016508b37412f4e1a576f438c2b79 |
| First block to scan | 53206926 |
Ethereum
| Chain ID | 1 |
| Gas token | ETH |
| Block explorer | etherscan.io |
| Launch factory | 0x3fdf7f1d5d55e23b82561dd9c516f8d004cd9cdf |
| Graduation executor | 0x1a7b62062974c77f1f7e42e44fafe560dd717d65 |
| Fee hook | 0xe8e8e960bb82512d5dc8addc13f8bec12a9aa0cc |
| Fee splitter | 0x30e58aced3671e44d423dc8fb13607fcd9efbda5 |
| Liquidity locker | 0x0cc3af45c33791b59e49482433fb95ccd05614e6 |
| Uniswap v4 PoolManager | 0x000000000004444c5dc75cb358380d2e3de08a90 |
| Uniswap v4 StateView | 0x7ffe42c4a5deea5b0fec41c94c136cf115597227 |
| Buy router | 0xd0d41bf8149016508b37412f4e1a576f438c2b79 |
| First block to scan | 26292618 |
BNB Chain
| Chain ID | 56 |
| Gas token | BNB |
| Block explorer | bscscan.com |
| Launch factory | 0x53a8e730961fdd1c94878eb1e90235b1eb2e4377 |
| Graduation executor | 0xa66ab745e14a8ee1ae972c5e527ba9a0d78d0564 |
| Fee hook | 0xd5388e2a16ec0a515713eed5f373262553a860cc |
| Fee splitter | 0xacddd26c9cd18b62e30a743afa494d900cc3e95f |
| Liquidity locker | 0x90a2282a2890ba7ebd63dd8c2e7ff34d22a9587f |
| Uniswap v4 PoolManager | 0x28e2ea090877bf75740558f6bfb36a5ffee9e9df |
| Uniswap v4 StateView | 0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4 |
| Buy router | 0xd0d41bf8149016508b37412f4e1a576f438c2b79 |
| First block to scan | 130312230 |
Ink
| Chain ID | 57073 |
| Gas token | ETH |
| Block explorer | explorer.inkonchain.com |
| Launch factory | 0x8b75a562eec5e85f8ec742ade9dd448ba9568011 |
| Graduation executor | 0xe7c2299c936ad0ace926b60cb244416cca38aec8 |
| Fee hook | 0x81def7307ffa081be87e08fefa15f6dd99e8e0cc |
| Fee splitter | 0x81110b8fd64c36a26bf3d1adc62d2e2b94065173 |
| Liquidity locker | 0xeaaef99a4c628231f9c869b12ef505dc647a45f3 |
| Uniswap v4 PoolManager | 0x360e68faccca8ca495c1b759fd9eee466db9fb32 |
| Uniswap v4 StateView | 0x76fd297e2d437cd7f76d50f01afe6160f86e9990 |
| Buy router | 0xd0d41bf8149016508b37412f4e1a576f438c2b79 |
| First block to scan | 59702823 |
Quote assets
A launch pairs the new token with ETH (or BNB on BNB Chain) or with another approved quote asset. Each chain's approved list is held by its graduation executor. To check one on-chain:
function quoteAssetConfigs(address asset) view returns ( bool approved, uint256 graduationThreshold, uint256 virtualReserve )
Use the zero address for the native coin. virtualReserve is the amount the pool opens against, in the asset's smallest unit. The launch page shows the pairs available on each chain.
Launching from code
The factory has one launch function for ordinary addresses and one that mines a vanity suffix. Both take the quote asset and a minimum for the creator's first buy.
function createLaunchDirectV3( string name, string symbol, uint256 tokenSupply, uint256 holderShareBps, uint256 burnShareBps, uint256 creatorBuyFeeBps, uint256 creatorSellFeeBps, int24 startTick, address quoteAsset, uint256 minTokensOut ) payable returns (address token, address buybackAdapter) function createLaunchDirectV3Vanity( ...same arguments..., bytes32 salt, uint8 suffixLength, uint32 suffixValue ) payable returns (address token, address buybackAdapter) event InstantLaunchCreated( address indexed token, address indexed buybackAdapter, address indexed creator, string name, string symbol, uint256 tokenSupply, uint256 holderShareBps, uint256 burnShareBps, uint256 creatorBuyFeeBps, uint256 creatorSellFeeBps, int24 startTick, address quoteAsset )
| tokenSupply | In the token's smallest unit (18 decimals). 1,000,000 to 1,000,000,000,000 whole tokens. |
| holderShareBps, burnShareBps | Percent times 100. 3000 is 30%. |
| creatorBuyFeeBps, creatorSellFeeBps | 0 to 1000. Fixed once launched. |
| startTick | The opening price as a tick. It depends on the token address and on whether the quote asset sorts below it, so compute it for the exact address you will get. |
| quoteAsset | Zero address for the native coin, or an approved quote asset on that chain. |
| minTokensOut | Safety floor for the creator's first buy. The launch reverts if the first buy returns less. 0 when there is no first buy. |
| msg.value | The native coin spent on the creator's first buy. 0 for none. |
For vanity addresses, POST /api/vanity/mine returns a CREATE2 salt and the resulting token address, which is what you need to compute startTick. Simulate the call first and check that the simulated token address matches the mined one before sending.
A complete, runnable example lives in the agent guide.
Token details
Name, symbol and supply live on-chain. The logo, description and links are saved by the site and signed by the creator's wallet, so only the launcher can change them.
| Upload logo | POST /api/upload?chain=<id> as multipart form data: curveAddress, timestamp, signature and file. |
| Save details | POST /api/metadata/<token>?chain=<id> with JSON: timestamp, signature, description, xHandle, website. |
| Lock details | PUT /api/metadata/<token>?chain=<id> with timestamp and signature. After this, uploads and edits return 403. |
| Signed message | Update Kosmo Protocol metadata for <token, lowercase>\nTimestamp: <ms> |
| Signature life | 10 minutes. Sign again for each call. |
| ?chain | 1 Ethereum, 56 BNB Chain, 4663 Robinhood Chain, 8453 Base, 57073 Ink. |
Agents
Bots and autonomous agents can launch tokens the same way people do. The agent guide has the full flow as a script, and the same text is available as markdown for an agent to read directly.