A documentation changelog entry for an upcoming CPMM program update. For the index of all updates, see
reference/changelog. For the protocol’s own historical timeline, see introduction/history-and-milestones.PoolState.pool_creator and fixes both destinations to that creator’s canonical associated token accounts. The existing creator-signed instruction remains unchanged.
It also lets a dedicated authority create CPMM Permission PDAs. That delegation is intentionally asymmetric: the dedicated authority can grant access to InitializeWithPermission, while only the program admin can revoke a grant with ClosePermissionPda.
TL;DR for integrators
- New additive instruction:
CollectCreatorFeePermissionless. Any signer can be thepayer. The recorded pool creator does not sign. - The caller cannot redirect funds.
creatormust equalpool_state.pool_creator.creator_token_0andcreator_token_1must be that creator’s canonical ATAs for the pool vault mints and their respective token programs. - The payer covers missing ATAs. Both recipient accounts use
init_if_needed; the payer funds rent when either account does not exist. - Collection is all-or-nothing. The instruction transfers both full accrued creator-fee counters, zeros both, and updates
recent_epoch. It returns the existingNoFeeCollecterror when both counters are zero. - Existing integrations stay compatible.
CollectCreatorFeeis not modified or removed. NoPoolState,AmmConfig,Permission, event, or error-code layout changes are present. - Permission creation has a second owner.
CreatePermissionPdaaccepts the program admin or a dedicated create-permission-PDA owner.ClosePermissionPdaremains admin-only.
New instruction accounts
CollectCreatorFeePermissionless takes 14 accounts in this order:
Unlike
CollectCreatorFee, the new layout has separate payer and non-signing creator accounts and does not take amm_config. It therefore requires its own discriminator and builder.
SDK and IDL impact
The program-source branch does not include a committed SDK or IDL update. Integrators must refresh the deployed CPMM IDL or use a client release that explicitly supportsCollectCreatorFeePermissionless. The documentation’s pinned @raydium-io/raydium-sdk-v2@0.2.42-alpha builder set covers only the original creator-signed path.
Security boundary
Permissionless invocation does not mean permissionless custody. The caller can choose when to collect and can spend SOL to create missing creator ATAs. The caller cannot choose the beneficiary, substitute arbitrary token accounts, request a partial amount, or change the pool’s creator-fee configuration. The new permission-PDA creator role can create a grant for anypermission_authority, and it pays the new account’s rent. It cannot close that PDA under this change. Treat it as a delegated grant authority, not a full permission administrator.
Migration notes
- Keep existing
CollectCreatorFeetransactions unchanged. - Add the permissionless instruction only after the target CPMM deployment and client IDL include it.
- Automation can scan pools with non-zero
creator_fees_token_0orcreator_fees_token_1and trigger collection without custody of creator keys. - Handle
NoFeeCollectas a benign race when another caller drains the counters first. - Do not pass arbitrary recipient token accounts; derive the creator ATAs from
pool_state.pool_creator, each vault mint, and the matching token program.
Pages updated
products/cpmm/overview— creator-fee collection update and destination-safety summary.products/cpmm/instructions— new instruction summary, full account list, effects, and state-change matrix.products/cpmm/accounts— creator-fee counter collection paths and delegated Permission PDA creation.products/cpmm/fees— permissionless collection mechanics and operational flow.products/cpmm/code-demos— SDK availability warning and client migration boundary.products/launchlab/platform-config— clarified that the recorded CPMM creator remains the beneficiary even when another payer triggers collection.protocol-overview/shared-infrastructure— authority-gated and destination-constrained collection paths.security/admin-and-multisig— delegated grant authority and permissionless collector boundaries.reference/program-addresses— canonical dedicatedCreatePermissionPdaowner addresses.reference/error-codes— expandedNoFeeCollectto cover creator-fee collection.
raydium-cp-swapbranchfeat/permissionless-collect-creator-fee.- Commits
9585ea1andd99d542, compared withmasterat78f254e.

