Skip to main content
This entry covers an upcoming LaunchLab program update. It was verified against the local release branch before deployment. Confirm the deployed program and published IDL before enabling the new paths in production.
This release makes CPMM the only graduation target for newly initialized launches. It also changes who receives locked-LP rights, moves GlobalConfig selection controls to platform admins, and expands the CPMM migration CPI inputs.

TL;DR for integrators

  • New launches are CPMM-only. Initialize, InitializeV2, and InitializeWithToken2022 require migrate_type = 1. A new launch configured for AMM v4 returns MigrateTypeNotMatch.
  • Legacy AMM v4 state remains supported. MigrateToAmm is not removed. It can still graduate an existing pool whose stored migrate type is 0.
  • Creator locked LP moves to the platform after this upgrade. Before this release, creator_scale produced a separate creator-owned Fee Key. Migrations executed after the upgrade combine platform_scale + creator_scale into one platform-owned locked-LP share. burn_scale is burned.
  • Creator fees remain separate. Bonding-curve creator fees and CPMM creator fees are not LP Fee Key rights. platform_cp_creator still determines whether the original launch creator or a platform-selected address becomes the CPMM creator-of-record.
  • Platforms manage their own config allowlists. PlatformConfig.restrict_global_config and PlatformAllowConfig replace the global admin-managed requires_platform_auth / PlatformGlobalAccess model.
  • CPMM migration builders must change. The upgraded path requires ten fixed remaining accounts and adds CPMM support_mint PDAs for both sorted mints.
  • A delegated authority may create GlobalConfig. It cannot update existing configs.

New-launch versus existing-state behavior

The CPMM-only check runs during pool initialization. It does not rewrite existing PoolState accounts. Existing AMM v4-bound launches keep their stored migrate type and can use the retained legacy migration instruction. amm_creator_fee_on now only controls the CPMM creator-fee side (QuoteToken or BothToken). Clients must not use it to infer the target program.

LP ownership change

The three scale fields remain in PlatformConfig, and their sum must still equal 1_000_000. Runtime distribution is now:
Before this release, LaunchLab locked creator_scale separately and minted its Fee Key to the token creator. For migrations executed after the upgrade, that same scale is added to the platform share. If the combined share is non-zero, LaunchLab creates one Fee Key for platform_nft_wallet and does not create a new creator Fee Key. The change does not modify Fee Keys or locked-liquidity records created by migrations completed before the upgrade. A launch created before the upgrade but migrated afterward follows the new distribution because the split is applied when MigrateToCpswap executes. Because the account layout is retained, indexers do not need an account-size migration, but UIs and accounting systems must interpret creator_scale according to the migration version.

Platform allowlist migration

GlobalConfig.requires_platform_auth is removed and its byte returns to padding. PlatformConfig reuses one padding byte for restrict_global_config, so both account sizes remain unchanged. When restrict_global_config = 1, initialization must include the PDA derived from:
The platform admin creates and closes these accounts. The former CreatePlatformGlobalAccess and ClosePlatformGlobalAccess instructions are removed, and old PlatformGlobalAccess PDAs do not satisfy the new check. There is no automatic conversion path.

CPMM migration account change

MigrateToCpswap now expects these zero-based remaining_accounts indices: Old builders that append separate creator-lock accounts or omit indices 8–9 are incompatible with the upgraded path. Derive both support-mint addresses using [b"support_mint", mint] under the CPMM program.

Error and IDL impact

Codes 60006021 remain stable. The former platform-global-access variants are removed. 6022 now means InvalidPlatformAllowConfig, and old 6023 no longer exists. Refresh the LaunchLab IDL before constructing PlatformAllowConfig instructions, decoding the updated config fields, or building the new CPMM migration layout.

Pages updated

  • products/launchlab/instructions and accounts — creation restriction, legacy boundary, allow PDA, and migration accounts.
  • products/launchlab/global-config and platform-config — layout-compatible field changes and authority model.
  • products/launchlab/creator-fees, platforms, and fee gotchas — platform-only locked LP and separate CPMM creator fees.
  • user-flows LaunchLab and Burn & Earn pages — corrected creator-facing behavior.
  • protocol-overview/architecture — CPMM-only new-launch path.
  • reference/program-addresses — delegated create-config authorities.
  • reference/error-codes and security/admin-and-multisig — new error and role boundaries.
Verified 2026-08-13 against local branch feat/cpswap-only-and-platform-allow-config at commit 2b1999f8e226ec84148cf818ea809d3cd5f30caa, compared with master at 13b5c5210b58ceaef1ea4f9d9fbb7626d20613ee.
This verification covers the source branch, not a mainnet-beta deployment. Confirm the deployed program and published IDL before enabling the updated instructions.