> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-08-17 — LaunchLab: CPMM-only launches and platform config controls

> LaunchLab makes CPMM mandatory for new launches, consolidates locked LP under the platform, replaces global platform authorization with platform-managed config allowlists, and updates CPMM migration accounts.

<Info>
  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.
</Info>

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:

```text theme={null}
platform locked LP = floor(total LP × (platform_scale + creator_scale) / 1_000_000)
burned LP          = total LP − platform locked LP
```

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:

```text theme={null}
["platform_allow_config", platform_config, global_config]
```

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:

| Index | Purpose                                                               |
| ----- | --------------------------------------------------------------------- |
| 0–4   | Platform Fee Key owner, mint, ATA, locked-liquidity PDA, and metadata |
| 5     | Original creator fallback                                             |
| 6     | CPMM permission PDA                                                   |
| 7     | Optional configured `platform_cp_creator` account                     |
| 8–9   | CPMM `support_mint` PDAs for sorted mint0 and mint1                   |

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 `6000`–`6021` 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`.

<Warning>
  This verification covers the source branch, not a mainnet-beta deployment. Confirm the deployed program and published IDL before enabling the updated instructions.
</Warning>
