Skip to content
Solana

Docs · Pools

Multi-pool launch

One token in up to 8 pools at once, one per quote: what a creator sets, which quotes a pool can take and how the pools trade together.

What it is

A launch opens a token in 1 to 8 pools, each on a different quote and each with its own base fee, protocol share and blocks. One Launch account links the pools, and one owner holds every launch position. A new token's launch uses nonce 0; a later launch of the same token, or a launch of an existing token, takes another nonce.

The launch, step by step

A launch spans several transactions, linked by the Launch account:

  1. LaunchCreate creates the launch. For a new token it also creates the Token-2022 mint (metadata pointing at itself, reel-hook as transfer hook, no freeze authority), mints the whole supply into an escrow and revokes the mint authority. The same transaction should initialise reel-hook's extra account metas for the mint.
  2. PoolInit once per pool: creates the pool with its frozen PoolParams and checks every rule.
  3. PoolSeed once per pool: creates the vaults, moves the seed (from the escrow for a new token, from the creator for an existing one, plus the creator's quote) and mints the launch position, owned by the Launch account.
  4. LaunchDevBuy, optional, once per pool: see Dev buy and lock.
  5. LaunchFinalize when every pool is seeded: checks the supply split, the opening prices and what the creator keeps, then opens every pool at once.
  6. LaunchReturn, which anyone may send, returns what is left in the escrow to the creator.

If a launch stalls before it finalizes, the owner can abort it (LaunchAbort) and withdraw the launch positions from pools that never opened. A launch also carries a deadline; instructions after it fail with Deadline.

What a creator sets

  • Pools and quotes. 1 to 8, each quote distinct.
  • Supply split (new tokens): a weight per pool, all set or none, adding up to at most 100%. Each seed must match its weight exactly (WeightMismatch).
  • Opening price check: a tolerance of 0.01% to 10%; each pool after the first must open within it of the first pool's price, converted through live reel reference pools (OpeningOutsideTolerance).
  • Supply you keep: what may stay with the creator after finalize, escrow leftovers plus dev buys. With a dev buy it is capped at 5% (RetainedAboveCap).
  • Liquidity lock: up to 1,200,000 seconds after opening, on top of the guard and the dev-buy lock.

Which quotes a pool can take

SOL trades as wrapped SOL; the SDK wraps and unwraps in the same transaction. Other quotes are reviewed and listed by the admin in a QuoteListing, each with its own per-pool deposit cap; an unlisted quote is accepted only if the config allows one, at the config's unlisted cap, and otherwise fails with QuoteNotAllowed. Every quote must pass the mint policy: read Quote tokens and Token-2022 risks.

How the pools trade together

Each pool is its own market with its own reserves. They share three things:

  • the launch's guard: Wallet Cap and Anti-Snipe's per-slot buy budget are counted across every pool;
  • references: Arb recapture on one pool can price against a sibling (recap_ref 2 or 3), so a two-pool launch gives each pool a reference;
  • ownership: one launch owner, one launch lock over every launch position.

The principal of every launch position stays in its pool until the latest of: the end of the guard, the dev-buy lock, and the liquidity lock. Fees are collectable throughout.