This is the documentation’s changelog — the record of updates to these pages from the project go-live onward. Each release below links to its own entry; open one for the full summary, affected chapters, and verified-date. For the protocol’s own historical timeline, see
introduction/history-and-milestones.Releases
LaunchLab: platform curve rules replace the curve-parameter whitelist
Launch-parameter restrictions move off
PlatformConfig into per-config PlatformCurveRule accounts. A rule holds up to 10 check groups of up to 25 (field, op, value) constraints over 19 launch parameters, with Eq / Gte / Lte / Neq — so a platform can finally express a value band, alternative tiers, a graduation-valuation cap, a migration floor, token-type gating, or a group that switches over on a date, none of which the equality-only whitelist could. PlatformConfig keeps its 944-byte size: restrict_curve_param, curve_rule_manager, and the removed vec’s length prefix all come out of the padding. Decoders must drop the trailing Vec<PlatformCurveParam>, and launch builders must append the rule PDA to remaining_accounts while the flag is on. Two instructions removed, four added, two UpdatePlatformConfig variants added, 6024–6030 appended. IDL refresh required. The SDK ships two pure off-chain checks so a creator never has to learn a rule from a reverted transaction, and the entry documents a devnet rehearsal before enabling the flag on mainnet.Read the full entry →LaunchLab: platform holds the withdraw-withheld authority from mint creation
InitializeWithToken2022 now writes PlatformConfig.transfer_fee_extension_auth into the new base mint’s withdraw_withheld_authority instead of the launch authority PDA, so a platform can sweep withheld transfer fees during the bonding-curve phase rather than waiting for graduation — the program itself has no withdraw-withheld instruction. MigrateToCpswap reassigns that authority only when the PDA still holds it, which keeps graduation working for mints of both generations. transfer_fee_config_authority still moves at graduation only, so rotating transfer_fee_extension_auth mid-launch silently leaves the two authorities on different keys. No account layout, instruction, argument, or error code changed.Read the full entry →LaunchLab: platform fee rate cap raised to 500 bps
The platform
fee_rate ceiling moves to 50000 (500 bps) on both paths that validate it. CreatePlatformConfig was capped at 10000 (100 bps) since the program’s first release; UpdatePlatformConfig was capped at 25000 (250 bps) since 2026-01-27. The two checks now agree, so a platform created at any permitted rate can also be updated at it — including through the AllInfo bulk variant, which re-validates fee_rate while rewriting every other field. The two paths still raise different errors (InvalidInput on create, InvalidPlatformInfo on update). No account layout, instruction, or error code changed, and no existing platform or launch reprices. GlobalConfig.max_share_fee_rate stays at 100 bps and bounds only the per-transaction referral share_fee_rate.Read the full entry →LaunchLab: Token-2022 quote mints
A launch can now be quoted in a Token-2022 mint.
CreateConfig, InitializeV2, InitializeWithToken2022, the four swap instructions, and every fee claim accept either token program in their quote-program slot; the deprecated Initialize stays legacy-only. Swap slippage bounds are now compared against what the payer actually pays or receives, net of the quote mint’s transfer fee. PoolState.token_program_flag bit1 becomes meaningful, so decoders that test the whole byte against 0 misread a legacy base mint as Token-2022. MigrateToCpswap renames its two token-program accounts to token_program / token_program_2022, and 6023 is reused for CalculateOverflow.Read the full entry →LaunchLab: CPMM-only launches and platform config controls
New launch initialization now requires CPMM while legacy AMM v4-bound state remains migratable. Before this release,
creator_scale produced a creator-owned Fee Key; CPMM migrations executed after the upgrade instead consolidate platform_scale + creator_scale into one platform-owned Fee Key share. Platforms can also restrict launches with their own PlatformAllowConfig PDAs, and migration builders must append both CPMM support-mint PDAs.Read the full entry →CLMM: restricted-issuer position NFT freezing
New CLMM position NFT mints use their pool as freeze authority, but their token accounts remain unfrozen by default. Freezing occurs only on
OpenPositionV2 or OpenPositionWithToken22Nft when either underlying vault mint’s freeze authority matches the restricted-issuer list. A matching position cannot transfer or change owner but can still manage liquidity. Its ClosePosition call must append the pool so CLMM can thaw, burn, and close atomically. Existing positions remain unchanged.Read the full entry →CPMM: permissionless creator-fee collection
An additive
CollectCreatorFeePermissionless instruction lets any payer sweep all accrued creator fees, while constraining the beneficiary and both token destinations to PoolState.pool_creator and the creator’s canonical ATAs. The original creator-signed path remains unchanged. CreatePermissionPda also accepts a dedicated grant authority, while ClosePermissionPda stays admin-only.Read the full entry →CLMM: permissioned multi-pools and limit-order frozen-account guard
Two additive, backwards-compatible CLMM program updates.
CreatePermissionedPool folds a client-supplied non-zero seed_index into the pool PDA seeds, letting a whitelisted operator (one holding a Permission PDA) create multiple pools per (config, mint0, mint1) — so a pool ID is no longer canonical for a pair. New admin instructions CreatePermissionPda / ClosePermissionPda manage those grants, and PoolState gains a seed_index field (carved from padding, no size change). Separately, OpenLimitOrder now takes the output-side accounts and rejects orders whose input or output token account is frozen (NotApproved).Read the full entry →AMM v4: remove OpenBook / Serum dependency
AMM v4 removes its long-dormant OpenBook/Serum dependency, all order-book CPIs, and the dead market-making instructions.
SwapBaseIn / SwapBaseOut, Deposit, and Withdraw keep their layouts (removed market accounts are now ignored, not validated); a hard-breaking WithdrawPnl (17 → 10, no compatibility) and SetParams (reduced accounts + renumbered param); and Initialize, PreInitialize, MonitorStep, MigrateToOpenBook, WithdrawSrm, SimulateInfo, AdminCancelOrders are no longer callable. On-chain account layouts and error codes stay stable; migrate swaps to the V2 entrypoints.Read the full entry →Stable AMM: remove dead OpenBook (market) code
Stable AMM removes its long-dormant OpenBook market-making accounts and code. Smaller
SwapBaseIn / SwapBaseOut (18 → 9), Deposit (14 → 12), and Withdraw (21/22 → 12) layouts (old layouts still compatible); a hard-breaking WithdrawPnl change (16 → 10, no compatibility); the referral fee retired; and a simplified vault-only pool-asset formula. Most other Stable instructions are no longer callable.Read the full entry →CLMM: limit orders, single-sided fee, dynamic fee
Three opt-in, backwards-compatible CLMM capabilities: first-class limit orders (with a
limit_order_admin settle keeper), single-sided fee collection (CollectFeeOn), and a volatility-tracking dynamic fee. Adds CreateCustomizablePool, a PoolState reshape (indexer breaking change), new TickState fields, eleven new error codes (with a numeric shift), and matching SDK / API additions.Read the full entry →Initial publication
First public release of the Raydium documentation set, verified against live mainnet-beta deployments and
@raydium-io/raydium-sdk-v2@0.2.42-alpha.Read the full entry →Documentation conventions
- Versioning: this documentation uses calendar-based versioning (YYYY-MM-DD). Each update adds a new entry page and a new row at the top of the timeline above.
- One page per release: every release summary lives on its own page under
reference/changelog/, so this index stays short and each entry is independently linkable. - Verified date: every entry records when the content was last cross-checked against on-chain / API state and the program source. If not stated, assume the entry’s main date.
- Breaking changes: called out in a boxed warning on affected pages and tagged in the entry.
- Coverage: this changelog covers the documentation set itself. The protocol’s own historical timeline lives in
introduction/history-and-milestonesand is the source of truth for “when did X happen on Raydium”.
Corrections
If you find an error in this documentation, please open an issue or pull request on the documentation repository. Corrections are logged as changelog entries.Pointers
introduction/history-and-milestones— the protocol’s own timeline.security/audits— audit history.ray/protocol-fees— protocol fee splits.reference/program-addresses— program ID source-of-truth.

