Build
Launch a token
One transaction creates the token, opens its pool at the market cap you choose, and locks the liquidity forever. The pool trades from its first block. There is no bonding-curve contract and no migration.
Step by step
- Open Launch a token and connect a wallet. Your progress is saved as you go.
- Enter name, symbol, supply, logo and links. The links are written on chain with the launch.
- Pick the quote currency (the native coin or a token) and the opening market cap.
- Set the fee schedule, the fee split and, if you want one, a creator tax.
- Review. The app predicts the token's address, validates every value against the limits the kit reports, and simulates the exact transaction. Create stays disabled until that simulation passes.
- Sign. The kit (
LaunchpadKitV2) deploys the token, opens the pool, seeds it and hands the position to the liquidity locker in the same transaction.
From code, the same call is buildLaunchV2 in the SDK. See SDK.
Opening market cap
You choose what the token is worth at birth as a market cap, not as a price per token. A price like 0.000000005 is one zero away from a launch opening at ten times the value you meant, with its liquidity locked forever. The wizard starts at a $3,500 opening market cap and you can change it.
The dollar figure needs a native-coin price. The app reads it from the chain's Chainlink native/USD feed, on chain, and shows which feed and when. Where no feed answers, or the feed is older than its heartbeat, the wizard works in the native coin and shows no dollars.
Anti-snipe fee
A launch pool opens with a high trade fee that decays in a straight line to the pool's permanent fee. Bots that buy in the first seconds pay for it. Everyone after pays less each second.
| Limit | CL launch pool | Bin launch pool |
|---|---|---|
| Highest opening fee | 50% | 10% |
| Highest permanent fee | 10% | 2% |
| Shortest decay | 60 seconds | 60 seconds |
| Longest decay | 30 days | 30 days |
| Latest start | 30 days after the pool is claimed | 30 days after the pool is claimed |
The 60-second floor is a safety property. A sequencer may move a block's timestamp within bounds, and a protection window of a few seconds could be skipped entirely. The kit also offers presets:
| Preset | Schedule |
|---|---|
FairLaunch | 10% decaying to 0.30% over five minutes. |
AntiSniperAggressive | 50% decaying to 1% over thirty minutes, with a maximum buy per transaction. |
Stealth | 50% decaying to 0.30% over two minutes. Pairs with a start delay. |
NoTax | No decay: a flat 0.30% pool with the launch plumbing attached. |
Custom | Your own numbers, inside the limits above. |
While a maximum buy is in force, an exact-output buy is refused (ExactOutputBuyBlockedDuringLaunch) and a larger buy reverts BuyExceedsMaxPerTx. Sells are never capped.
Trade fees in the quote currency
The launch guard takes the trade fee and any creator tax itself, on whichever side of the swap is the quote currency. On a native-quoted launch, everyone is paid in the native coin on buys and on sells. Nothing is ever sold on the chart to convert fees.
- On a buy, the pool's liquidity providers keep a share of the fee (the guard's
LP_SHARE_BPS, fixed at deployment and read from the contract) and the guard takes the rest. - On a sell, the guard takes the whole fee.
- The guard's part is split by the launch's fee split: the creator and the launchpad the token launched on. The split is written once, when the launch is created, and never changes.
On pools your own launchpad creates, Gully takes a flat 0.30% of every trade and nothing else. Gully's own apps follow separate terms. See Fees.
Fees accrue in the guard and are paid by a permissionless settle, then claimed by each party. The creator can claim on Portfolio.
Creator tax
A launch may add a buy tax and a sell tax on top of the trade fee. It is a hook fee taken by the guard in the quote currency, not a token tax. The token itself stays a plain ERC-20.
| Rule | Limit |
|---|---|
| Buy rate, sell rate | each at most 10% |
| Expiry | a number of seconds, or never. After it the tax is zero with no transaction |
| Launchpad share | as the launchpad sets |
| A launchpad's own cap | a launchpad may cap the rate launches through it can set, or allow none |
| Changes | frozen at the first swap or when trading opens, whichever comes first |
Liquidity locked forever
The kit seeds the pool with the launch supply and hands the position to GullyCoreLPLocker (CL) or GullyCoreBinLPLocker (Bin). A locker has no owner, no withdraw, no pause and no upgrade. The principal can never leave. What the position earns is collected by anyone and paid out by the lock's split. See Locks.
A token launched through the kit carries the "Locked by Gully Core" badge and appears in the token directory and on the Locker.
Size buys from a quote
A CL launch pool refuses a swap it can only fill in part. If a buy would run past the end of the launch range, or hit its price limit, the guard reverts with SwapNotFilled(expected, traded) rather than charge a fee on more than was traded. The app sizes every buy from a fresh quote. Integrators should too. The SDK decodes the revert with decodeSwapNotFilled.
Before the launch opens, swaps revert TradingNotOpen. A Bin pool cannot partially fill: core reverts a swap the bins cannot cover.
Lifecycle and graduation
- Configure. Until the first swap (or the start time), the launch's owner may reconfigure the schedule and tax. The first swap freezes them, whatever the start time says.
- Trade. The opening fee decays. A maximum buy, if set, lifts when the decay ends.
- Graduate. A milestone, not a migration: the range has been bought through. Nothing moves and the same pool keeps trading.
Launch fee
The kit charges a flat launch fee in the native coin, set by governance inside an immutable cap and read from the contract (launchFeeWei() and maxLaunchFeeWei() on LaunchpadKitV2). A launchpad may add its own launch fee on top, inside its own cap. The app sends a little headroom with the transaction so a scheduled fee change cannot make it revert. The kit refunds anything above the fee in the same transaction.
Gully's own apps follow separate terms. See Fees.
Wrong or missing? Tell us at @Gully_Labs.