Atomic Launchpad
How launches work, what they cost, and how to build on the contracts.
Overview
Atomic Launchpad lets anyone create a token that trades on a bonding curve from the first second and moves into a Uniswap v4 pool when the curve fills. Everything happens in public smart contracts: the site is one interface to them.
Every token has a fixed supply of 1 billion. Nobody can mint more, and the pool's liquidity is locked forever when the token graduates.
Launch lifecycle
- Create. The creator picks a name, ticker, image, banner, links, the pair asset and the trade fee, and may buy first in the same transaction.
- Trade the curve. Anyone buys and sells against the curve. The price rises as tokens are bought.
- Graduate. When the curve has collected its graduation threshold it closes and a Uniswap v4 pool is created with the collected funds.
- Pool. Trading continues on Uniswap, at the price the curve ended with. The same fee applies.
Bonding curve
The curve is a constant product (x·y = k) between the token and the pair asset, started with a virtual reserve of the pair asset (the phantom reserve). Buying the whole curve for the graduation threshold takes 75% of the supply; the rest goes to the pool.
Buys pay the fee on top; sells pay it out of the proceeds. Slippage protection is set on every trade (minimum out).
Graduation
The graduation threshold of a new launch grows step by step from the day the platform started, and is fixed for each token when it launches. Early launches graduate with less. The Launches and Create pages show the current threshold and the time to the next step.
At graduation two positions are minted and locked forever: a full-range position with the collected funds, and a single-sided position with the remaining tokens above the opening price. Buys in the pool continue the same curve, so the whole supply ends up on the market and nothing is burned. A creator buy larger than the curve graduates the token and buys the rest in the pool in the same transaction.
Pairs (ETH / USDC)
A token is paired with ETH or with an approved ERC-20 (USDC). The pair is chosen at launch and cannot change. Fees and payouts are always in the pair asset. Thresholds for USDC follow the same schedule as ETH.
Snipe protection
For the first seconds after launch, buys pay an extra snipe tax that starts near 99% and halves step by step until it reaches zero. The creator, their fee wallet and wallets they declare at launch are exempt, so their opening buys clear at the normal price while bots in the same block do not.
Fees
| Trade fee | 1%–11% on the curve and in the pool |
| Split | 70% to the creator, 30% to the protocol |
| Launch fee | A small fixed amount in ETH, shown on the Create page |
A referrer's reward comes out of the protocol's share; traders pay the same either way.
Payouts
Fee shares are credited to the fee escrow contract on every trade, in ETH or USDC. Creators claim them from Portfolio or Profile at any time, without waiting for a sweep.
30-day claim window. On contract versions that include it, a creator share left unclaimed for 30 days moves to the protocol. The site shows the time left and warns 7 days ahead. See the Terms.
Referral program
Share your link from the Referrals page. Traders who open it are bound to you, and you earn 30% of the protocol's fee (0.1% of volume) on their trades made through this site, on the curve and in the pool. Rewards are published in epochs and claimed on the Referrals page.
Buyback and vesting
Instead of taking fees to their wallet, a creator can route their 70% share to buyback: it buys the token back, except on the first 1% of the fee, where half of the creator's share still goes to the creator. The protocol's 30% is not affected. Bought tokens vest to the creator over five years in the buyback vault.
Creator controls
- Change the fee wallet (the current fee wallet can transfer it).
- Turn buyback on or off for future fees.
- Claim fees and vested tokens.
The name, ticker, image, banner, links, supply and pair are stored in the token and cannot be changed.
Community takeovers
If a creator abandons a token, the protocol owner can propose moving its fee wallet to a community recipient. The change waits 3 days, can be cancelled in that time, and must then be executed within 3 days. Every step is an on-chain event.
Safety and recovery
Pool liquidity is locked forever. If a graduation cannot complete, the owner can rescue it only after a 7-day delay. The contracts are non-custodial: nobody can move users' tokens or reverse trades.
Risk disclosures
Tokens are created by anyone and are extremely volatile; most lose value. Smart contracts may contain bugs. Nothing here is financial advice. Read the Terms of Use.
Contracts
| AtomicLaunchFactory | Launch configs, launches, graduation, creator settings |
| AtomicBondingCurve | One per token: buy, sell, reserves, snipe tax |
| AtomicLauncherToken | The ERC-20, with metadata and banner |
| AtomicLaunchAndBuy | Launch and first buy in one transaction, through the pool if needed |
| AtomicGraduationSchedule | The growing graduation threshold |
| AtomicGraduationExecutor | Creates the Uniswap v4 pool and positions |
| AtomicLaunchLocker | Holds the pool positions forever |
| AtomicMemeHook | Uniswap v4 hook: pool fees, buyback marks |
| AtomicFeeEscrow | Holds fee shares until claimed |
| AtomicBuybackVault | Vests bought-back tokens |
| AtomicReferralRegistry, AtomicTradeRouter, AtomicReferralDistributor | Referral binding, site trades, reward claims |
Deployed addresses
Sepolia chain id 11155111 · stack sepolia-ramp-v3
| AtomicFeeEscrow | 0x30CC8025C0adb24dE9D82bcc548a27ec02d32F12 |
| AtomicLaunchLocker | 0x1a74bBEE97e0EC07c8c8CAEDC108aCe9b1995270 |
| AtomicMemeHook | 0xC9Fd2E4cB835c55A00C09f5221D1cd988806A0Cc |
| AtomicBuybackVault | 0x49cafeb2BC3B83a108F0B8C029f76D71f1705e0d |
| AtomicLaunchFactory | 0x2861C02EC2626dD46F24876eb29110c2d59D7528 |
| AtomicLaunchDeployer | 0x6E41BC20ed332A5BeAd4bC251EA08Ea5d11a79A3 |
| AtomicGraduationExecutor | 0x862FdCF6ff47bA5e43862b8c889Fb4e6e3E4098F |
| AtomicGraduationGuard | 0x544Db4971238D146237E8d713Aa28B3E6B4fa827 |
| AtomicLaunchAndBuy | 0x75A253B45020Cd1B4c8c2E8bFb4881ba11b68141 |
| AtomicGraduationSchedule | 0x1ca4a0b0769D292668e1fAAFbEA561Aa5E4a29bf |
| AtomicReferralRegistry | 0xAf4EBCDb64A8dbFc21E0ADA47d6417Cb00A8359e |
| AtomicTradeRouter | 0x66194ABfBFE6B7dCed204d3b3399090E168718bC |
| AtomicReferralDistributor | 0x09Ba084F1cC19111b61346e72d3E79F8830d0911 |
| poolManager (Uniswap) | 0xE03A1074c86CFeDd5C142C4F04F1a1536e203543 |
| positionManager (Uniswap) | 0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4 |
| permit2 (Uniswap) | 0x000000000022D473030F116dDEE9F6B43aC78BA3 |
| mockUsdc | 0x530a9072de26818af08b35EF1018464BBAEbdEe1 |
Launching a token
Read the launch configs (launchConfigCount, getLaunchConfig) and the economics hash for your pair (previewLaunchEconomics(configId, pairToken)), then call launchToken(params, configId, pairToken) with the launch fee as value. Pass expectedEconomics so the launch reverts if the threshold step changes before it lands. Curve and token addresses are deterministic from the salt in the params.
To buy in the same transaction use AtomicLaunchAndBuy.launchAndBuyThrough: a buy larger than the curve graduates it and buys the rest in the pool. Use address(0) as the pair token for ETH.
Buying and selling
curve.buy(quoteIn, minTokensOut, recipient) // ETH: send quoteIn as value
curve.sell(tokensIn, minQuoteOut, recipient) // approve the curve firstAfter graduation, trade the Uniswap v4 pool (hook address in the deployment) through the Universal Router.
Getting a quote
Read getReserves() and the fee policy (getLaunchFeePolicy(token)) and apply the constant product. The SDK does this with quoteBuy and quoteSell, including the snipe tax (currentSnipeTaxBps(recipient)).
Reading state
factory.getLaunchedToken(token) gives the curve, pair, creator, phase and frozen economics. curve.realQuoteReserve() and readyToGraduate() show progress; sellableTokens() what is left on the curve.
Claiming fees
escrow.balanceOf(account) // ETH
escrow.balanceOfToken(account, token) // ERC-20
escrow.claim() / escrow.claimToken(token)Events to index
- Factory:
TokenLaunched,LaunchSwept, creator fee recipient changes. - Curve:
CurveBuy,CurveSell,CurveCompleted,SnipeTaxCharged. - Hook:
PoolFeesSwept; PoolManager:Swapfor registered pools. - Escrow:
Credited,CreditedToken,Claimed,ClaimedToken.
Uniswap v4 pools
Graduated pools use the Atomic hook with a zero LP fee: the hook charges the trade fee in the pair asset and credits the escrow in the same swap. Buyback marks accumulate in the hook and are bought back by the operator with sweepPoolFees.
Errors
SlippageExceeded | The price moved past your minimum out |
LaunchEconomicsMismatch | The threshold step changed before the launch landed |
LaunchFeeNotPaid | Value below the launch fee |
CurveGraduated | Trade the pool instead |
PairTokenNotApproved | The pair asset is not allowed |
CreatorTaxTooHigh | Creator fee above the cap |
NoBalance | Nothing to claim |
Audits
The contracts derive from Pons v2 with documented changes. Internal review, static analysis and fuzzing are done; an external audit is planned before mainnet. Reports will be linked here.

