LaunchLab is Raydium’s primary-market launch venue. A project deposits its token supply into a bonding curve; buyers trade against the curve using SOL (or another quote mint); when a graduation threshold is reached, the curve’s assets migrate automatically to a CPMM pool, and the token becomes freely tradable. This page walks through the whole flow from the project’s side.
What you need
- Token mint — the token you want to sell. Must be freshly minted with:
- Full supply minted to your wallet (so you can deposit into the curve).
- Mint authority revoked before launch (otherwise the curve price can be gamed by new mints).
- Metadata — name, symbol, image, social links. Metaplex metadata or similar.
- Wallet — ~1 SOL for creation rent + vault funding + priority fees (graduation itself is paid by the graduator, not you).
- Decision on:
- Curve type (quadratic vs virtual-reserves CPMM).
- Graduation threshold.
- LP disposal policy (Burn / Lock / ToCreator).
- Initial price and cap.
Curve choice
LaunchLab supports two curve families:Quadratic (curve_type = 0)
Price grows quadratically with supply sold. Classic “fair launch” feel — early buyers get a price advantage, late buyers pay more, price accelerates smoothly.
s is supply sold. Typically a > 0 (convex). The spread between initial and graduation prices is deterministic given a, b, c and the cap.
Best for: novelty launches, memes, community-driven projects.
Virtual-reserves CPMM (curve_type = 1)
Emulates a constant-product AMM using virtual reserves — the curve behaves like a CPMM with x * y = k but the pool starts off seeded with synthetic tokens that are never withdrawn.
virtual_base_reserve decreases and virtual_quote_reserve increases — the curve looks identical to what the post-graduation CPMM will look like. Smoother handoff.
Best for: launches that want predictable post-graduation price continuity.
UI walkthrough
On raydium.io/launchpad/create:- Token. Paste mint address. UI fetches metadata and displays it.
- Curve type. Pick quadratic or virtual-CPMM; UI shows a price chart preview for each.
-
Graduation threshold. Default: the curve ends after all of
total_base_supplyhas been sold. Alternative: end at a specificgraduation_quote_amount(e.g. 85 SOL). - Quote mint. SOL (default), USDC, or any other mint. SOL is standard.
-
LP disposal policy:
- Burn — LP tokens sent to an unusable address on graduation. Creator can’t pull liquidity; users trust the pool forever.
- Lock — LP tokens sent to a time-locked escrow for
lock_duration. - ToCreator — LP tokens sent to the creator. Most flexible, least trust-minimizing.
- Review. UI summarizes: expected price range, initial raise if curve sells out, graduation CPMM configuration.
-
Sign. One transaction creates the launch state + base vault + quote vault, transfers
total_base_supplyfrom your wallet to the base vault.
Programmatic walkthrough
The curve shape, the quote mint, the raise target and the LP-disposal policy are not arguments — they come from theGlobalConfig you bind to and from the PlatformConfig your launch runs under. What you pass is the mint’s identity, the config to bind, and optionally a first buy:
raydium.api.fetchLaunchConfigs() lists the available configs with their default supply, sell amount and raise target, so you can show the user what a given config implies before they sign. Full annotated version, including the Token-2022 variant: products/launchlab/code-demos.
Pre-graduation monitoring
Track activity via the API: LaunchLab has its own API hosts, separate fromapi-v3.raydium.io:
(programId, mintA, mintB):
getFinishRate.ts does it with Curve.getPrice, Curve.getPoolEndPriceReal and Curve.getPoolInitPriceByPool:
Metrics to watch
- Sell-through rate: percentage of base sold. Graduation threshold is typically at 80–100% sold.
- Current price: derived from the curve at the current
baseSold. - Unique buyers: count of distinct payers via indexer.
- Buy-vs-sell ratio: early launches see heavy buy pressure that slows.
<10% after 24 hours, consider whether marketing is adequate. LaunchLab doesn’t rescue under-hyped launches.
Graduation
Graduation is a separate transaction, and it is not callable by anyone:MigrateToCpswap and the legacy MigrateToAmm each require their signer to match a wallet recorded on the binding GlobalConfig (migrate_to_cpswap_wallet / migrate_to_amm_wallet), and any other signer gets InvalidOwner. There is no bounty. Those wallets are run by Raydium’s graduation crank, which lands the migration within seconds of the threshold being crossed. No action required from you as creator beyond the initial setup.
What graduation does
- Reads the vault balances.
- Closes the curve (no more buys/sells against it).
- Creates a new CPMM pool with the vault balances as initial liquidity.
- Mints initial LP tokens based on the vault balances.
- Disposes of the LP tokens per the configured policy (Burn / Lock / ToCreator).
Monitoring for graduation
Watchstatus on the pool state and switch your UI over when it changes:
(cpswap config, token0, token1), so you can derive it rather than waiting for it to be reported. For an indexer, subscribe over gRPC instead of polling — see products/launchlab/code-demos.
There is no “manual graduation” path for a creator or a third party. If a launch has crossed its threshold and has not migrated, that is an operational matter for the migration wallet, not something you can force from a client.
Post-graduation
Verify the CPMM pool
- Base token balance:
total_base_supply - baseSold+ curve remnant. - Quote token balance:
quoteRaised - graduationFee. - Price: matches last curve price.
Verify LP disposal
- Burn: LP mint’s supply shows sent to 1nc1nerator11111111111111111111111111111111 or similar.
- Lock: LP tokens in the escrow PDA with unlock timestamp.
- ToCreator: LP tokens in the creator’s wallet.
Collect creator fees
If you configured a creator-fee share, call periodically: The builder isclaimCreatorFee, and it is keyed by the quote mint rather than by a launch — one call sweeps your accrued creator fees in that mint:
claimMultipleCreatorFee to batch across mints. Fees accrue from curve trades pre-graduation, and post-graduation from the CPMM pool’s creator-fee path when the platform’s platform_cp_creator leaves you as the recorded pool creator — see products/launchlab/platform-config.
Announcement checklist
Post-graduation announcement should include:- Graduation transaction hash.
- New CPMM pool ID.
- LP disposal proof (burn tx / lock tx / creator wallet).
- Aggregator coverage ETA (wallets typically index within 5 minutes).
- Token contract verification (match mint address across announcement channels).
Pitfalls
1. Mint authority not revoked
IfbaseMint.mintAuthority is still a key you control, you can mint new supply and sell into your own curve. Launches that haven’t revoked are commonly flagged as high-risk or unverified by aggregators and listing sites. Revoke before launching.
2. Wrong curve parameters
Quadratic curves witha too high make early tokens free (price ≈ 0) and later tokens absurd. Curves with a too low make the curve almost linear (lose the “bonding” feel). Test parameters on devnet first.
3. Graduation threshold too high
If graduation requires more capital than realistic demand, the curve never graduates and buyers are stuck with tokens they can only sell back to the curve (at worse prices). Pick a threshold you can actually hit.4. Quote mint scams
If your quote mint is a custom token (not SOL/USDC), users won’t trust it. Stick to SOL or USDC for quote.5. Forgot to fund base vault
The SDK transferstotalBaseSupply from your wallet on creation. If your wallet doesn’t have it, the tx reverts. Confirm balance before signing.
6. LP disposal = Burn is irreversible
Once LP is sent to 1nc1nerator, nobody can pull liquidity, including you. This is the point — trust-minimization. Don’t pick Burn if you’re not sure.7. Post-graduation CPMM fee tier
The graduated pool uses LaunchLab’s default CPMM config (0.25%). If you wanted 1% or 0.01%, you need to create a second CPMM pool yourself post-graduation and migrate liquidity — clumsy, and fragmenting. Accept the default, or launch via direct CPMM creation instead of LaunchLab.Pointers
products/launchlab/overview— LaunchLab concept and lifecycle.products/launchlab/bonding-curve— curve math in detail.products/launchlab/instructions— full instruction reference.products/launchlab/vesting— vesting schedule mechanics.algorithms/bonding-curves— general bonding-curve math.user-flows/creating-a-launchlab-token— UI walkthrough for token creators (JustSendit and LaunchLab modes).user-flows/how-creator-fees-work— pre- and post-migration creator fee overview.
- Raydium SDK v2
launchpadmodule. - Launch status via
api-v3.raydium.ioendpoints.

