How it works
Kolan's way out, on every launch
The launchpad applies Kolan's mechanism to any token: each one opens on its own Uniswap v4 pool, with liquidity nobody can take out, and any purchase can carry a window during which it can be undone — every wei of the ETH back. What changes is who launches, and where the money goes.
Launching a token#
Launchpad.launch deploys a hook of the token's own — Kolan's hook, the same code with the fee split below — and opens its pool, in one transaction. The hook creates the token, Kolan's own token contract, and puts the whole supply into the pool, single-sided: tokens and no ETH, at the same opening market cap for every launch. The creator pays gas and a few wei, and receives no token.
- Each launch has its own hook, which holds nothing of any other: its pool, its windows and its fee are its own, as on Kolan.
- The hook is the pool's only liquidity provider. Nobody can add liquidity, donate, or open another pool on it, and no function hands the liquidity to anyone: it is locked for good.
- Every swap is a plain Uniswap v4 swap, so the Uniswap interface, aggregators and DexScreener see a real price and real liquidity.
- The creator may buy first, in the same transaction, so nobody can buy ahead of them. That purchase pays the fee like any other and has no window.
- Whoever launches the token is its dev, for good: their wallet receives the dev's half of the fee. Nobody can name anyone else.
- The picture, the description and the links travel in the launch transaction itself — the picture cropped and compressed in the browser to a few kilobytes. Nothing is hosted anywhere, so nothing can break or be swapped later.
Buying with a window#
A buyer can pay a premium on top of a purchase. The premium decides how long the purchase can be undone: 0.05 ETH buys six hours, twice as much buys twice as long, from 30 minutes to 7 days, and the premium may be at most 30% of what the purchase spends.
The hook takes out of the pool the tokens a swap of that ETH would buy, and holds them with the ETH. The pool is left with a hole: a buyer crosses it and pays the price after it, and a seller cannot reach the window's ETH, because it is not in the pool.
| Who | What happens | |
|---|---|---|
| Undo | The owner, before the end | Every wei of the ETH comes back; the tokens go back into the pool. |
| Keep now | The owner, any time | The tokens land in the owner's wallet; the ETH goes into the pool. |
| Run out | Anyone, after the end | As keeping: the tokens only ever go to the owner. |
The mechanism is Kolan's, line for line — Kolan's docs cover it in depth.
Where the money goes#
The split is fixed in the contract, the same on every launch, and nothing can change it.
Base fee · 1% of every swap
On the ETH side, buy or sell, through any route, and on what a window spends. In ETH.
- 50% The token's dev0.5% of the trade
- 50% The launchpad0.5% of the trade
Window premium · when the window closes
Paid on top of a purchase with a window, never refunded. Everything it buys is burned.
- 50% Buys back KLNon Kolan's pool, then burned
- 50% Buys back the tokenon its own pool, then burned
- The base fee is 1% of the ETH side of every swap, buy or sell, exact input or output, through any route, and of what every window spends. Half goes to the token's dev, half to the launchpad's treasury, both in ETH. It is not refunded when a window is undone.
- The premium is never refunded. When the window closes — undone, kept or run out — half of it buys KLN on Kolan's own pool, and the rest buys the token back from its pool. Everything bought is burned.
- The dev never receives a token, the pool's liquidity or a window's ETH: only their half of the fee.
Guarantees#
- No owner, no admin key, no upgrade path, in the hook or the Launchpad. The treasury address and every parameter are fixed at deployment.
- Each hook tracks its open windows' ETH and tokens, and checks after each operation that it still holds them. A launch can never spend a window's ETH, and no launch can touch another's.
- The fee is booked as claims on Uniswap's PoolManager, exactly what every dev and the treasury are owed.
- The contracts are tested — Kolan's own tests, every refund exact, every token accounted for, the record of its liquidity equal to its pool under random sequences, and each launch run side by side with Kolan's hook to the same outcome — but they are not audited.
Contracts#
Launchpad.launch(name, symbol, uri, buyEth, salt)anyoneDeploys a token's hook and opens its pool. The caller is its dev for good, and receives the dev's half of the fee; buyEth, if any, is their first purchase. salt places the hook at an address carrying its Uniswap permissions; the site finds it in the browser.
LaunchHook.buy(recipient, premium, minTokens, deadline)anyoneA purchase with a window. Send what it spends, its 1% on top, the premium and a 1,000 wei rounding allowance; the rest is refunded.
LaunchHook.cancel(id)the owner, before the endUndoes the purchase: every wei of the ETH back, the tokens back into the pool.
LaunchHook.accept(id)the owner, or anyone after the endMakes it final: the tokens to the owner, the ETH into the pool.
LaunchHook.claimDev()anyonePays the token's dev their half of its fee.
Launchpad.claimTreasury(hooks)anyonePays the treasury its half of the fee from every hook listed, each hook paying its own.