How it works
AMM-native launches, fee flow, listing milestone, and what the owner can and cannot do.
AMM-native, not curve-then-migrate
A lot of launchpads run a custom bonding curve, then "migrate" liquidity to Uniswap when a threshold hits. mint.fast skips that.
Every coin is created with a Uniswap v4 pool already live:
- currency0 = native ETH
- currency1 = the coin
- pool LP fee = 0 (the MintFastHook is the fee)
- tick spacing = 200
- full 1B supply locked in a single-sided range from the wide min tick up to the launch boundary
Launch price is about 1.5e-9 ETH per token, which is roughly a 1.5 ETH market cap at 1B supply. As people buy, price climbs through that locked range.
There is no on-chain graduation transaction. The word migrated in the app means the coin crossed the 18.67 ETH market-cap milestone. That status sticks once reached. Nothing moves.
Fee path
swap (buy or sell)
→ MintFastHook banks 2% of the ETH side as PoolManager claims
→ anyone calls harvest(token)
→ launchpad pulls ETH, splits by the token's snapshotted bps
├─ Fletcher cut → SocialFeeVault escrow keys
├─ LP cut → try to mint more ETH-side liquidity (else pendingEth)
└─ protocol cut → protocolFeesAccrued
→ anyone calls sweepProtocolFees() → treasuryDefault splits (50 / 25 / 25) are snapshotted per token at create. Changing defaults later only affects new coins. Live coins keep their original splits forever.
Exact-in buys charge 2% of the full ETH input, including any unfilled remainder on a partial fill. Other swap shapes charge 2% of ETH actually moved.
Fletcher beneficiaries
At create you pass up to 8 beneficiaries. Each row is one of:
| kind | meaning | how they claim |
|---|---|---|
| 1 | X handle (normalized) | vault claim with attester EIP-712 sig |
| 2 | GitHub handle | same |
| 3 | Wallet address | vault claimWallet |
Shares must sum to 10_000 bps.
- Empty list at create: 100% goes to the creator wallet, and the list stays unlocked so the creator can call
setBeneficiariesonce. - Non-empty list at create: locked immediately.
- After lock, only a fee manager can rewrite recipients (used for CTO and typo fixes). Rewrites auto-harvest to the old set first. Already-escrowed vault balances stay under the old keys.
Owner powers (complete list)
The launchpad and vault owners are operated as a 2/4 multisig. On-chain, ownership is Ownable2Step. Renounce is disabled.
Owner can:
- pause / unpause new token creation (
setCreatePaused) - set
creationFee(hard cap 0.005 ETH), future creates only - set default
socialSplitBps/lpSplitBps(sum ≤ 10_000), future creates only - set
treasury - add / remove fee managers (
setFeeManager) - manage vault attesters (adds are 24h timelocked)
Owner cannot:
- freeze trading on existing coins
- remove locked liquidity
- change fee splits on live tokens
- touch escrowed vault ETH (no sweep)
- mint more token supply
- upgrade via proxy (there are no proxies)