> ## 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 — CPMM: recopilación de comisiones de creador sin permisos

> CPMM añade una instrucción restringida por destino que permite a cualquier pagador transferir las comisiones del creador a las ATAs canónicas del creador del pool, y delega la creación de PDA de Permiso sin delegar la revocación.

<Info>
  **Esta página fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.**

  [Ver versión en inglés →](/reference/changelog/2026-08-17-cpmm-permissionless-creator-fee-collection)
</Info>

Esta versión añade una ruta operacional sin permisos para la recopilación de comisiones del creador. Cualquiera puede pagar para activar la transferencia, pero el programa fija el propietario del destinatario a `PoolState.pool_creator` y fija ambos destinos a las cuentas de token asociadas canónicas de ese creador. La instrucción firmada por el creador existente permanece sin cambios.

También permite que una autoridad dedicada cree PDAs de `Permission` en CPMM. Esta delegación es intencionalmente asimétrica: la autoridad dedicada puede otorgar acceso a `InitializeWithPermission`, mientras que solo el administrador del programa puede revocar un otorgamiento con `ClosePermissionPda`.

## Resumen para integradores

* **Nueva instrucción aditiva: `CollectCreatorFeePermissionless`.** Cualquier firmante puede ser el `payer`. El creador del pool registrado no firma.
* **El llamador no puede redirigir fondos.** `creator` debe ser igual a `pool_state.pool_creator`. `creator_token_0` y `creator_token_1` deben ser las ATAs canónicas de ese creador para los mints de la bóveda del pool y sus respectivos programas de token.
* **El pagador cubre las ATAs faltantes.** Ambas cuentas destinatarias usan `init_if_needed`; el pagador financia la renta cuando alguna cuenta no existe.
* **La recopilación es todo o nada.** La instrucción transfiere ambos contadores de comisiones del creador acumuladas en su totalidad, pone ambos en cero y actualiza `recent_epoch`. Devuelve el error `NoFeeCollect` existente cuando ambos contadores son cero.
* **Las integraciones existentes permanecen compatibles.** `CollectCreatorFee` no se modifica ni se elimina. No hay cambios en el diseño de `PoolState`, `AmmConfig`, `Permission`, eventos o códigos de error.
* **La creación de permisos tiene un segundo propietario.** `CreatePermissionPda` acepta el administrador del programa o un propietario dedicado de crear-PDA-de-permiso. `ClosePermissionPda` sigue siendo solo para administrador.

## Nuevas cuentas de instrucción

`CollectCreatorFeePermissionless` toma 14 cuentas en este orden:

| #     | Cuenta                               | Restricción o rol                                                      |
| ----- | ------------------------------------ | ---------------------------------------------------------------------- |
| 1     | `payer`                              | Firmante escribible; financia las ATAs del creador faltantes.          |
| 2     | `creator`                            | Debe ser igual a `pool_state.pool_creator`; no firma.                  |
| 3     | `authority`                          | PDA de autoridad de bóveda global de CPMM.                             |
| 4     | `pool_state`                         | Escribible; contiene los contadores de comisiones del creador.         |
| 5–6   | `token_0_vault`, `token_1_vault`     | Escribibles; deben coincidir con las bóvedas almacenadas en el pool.   |
| 7–8   | `vault_0_mint`, `vault_1_mint`       | Deben coincidir con el mint de bóveda correspondiente.                 |
| 9–10  | `creator_token_0`, `creator_token_1` | ATAs canónicas del creador escribibles; inicializadas si es necesario. |
| 11–12 | `token_0_program`, `token_1_program` | SPL Token o Token-2022 para cada mint.                                 |
| 13    | `associated_token_program`           | Crea una ATA del creador faltante.                                     |
| 14    | `system_program`                     | Soporta la creación de cuentas financiada por el pagador.              |

A diferencia de `CollectCreatorFee`, el nuevo diseño tiene cuentas separadas de `payer` y `creator` sin firma y no toma `amm_config`. Por lo tanto, requiere su propio discriminador y constructor.

## Impacto en SDK e IDL

La rama del código fuente del programa no incluye una actualización comprometida de SDK o IDL. Los integradores deben actualizar el IDL de CPMM implementado o usar una versión de cliente que explícitamente soporte `CollectCreatorFeePermissionless`. El conjunto de constructores `@raydium-io/raydium-sdk-v2@0.2.42-alpha` fijado en la documentación cubre solo la ruta original firmada por el creador.

## Límite de seguridad

La invocación sin permisos no significa custodia sin permisos. El llamador puede elegir cuándo recopilar y puede gastar SOL para crear ATAs del creador faltantes. El llamador no puede elegir el beneficiario, sustituir cuentas de token arbitrarias, solicitar una cantidad parcial o cambiar la configuración de comisiones del creador del pool.

El nuevo rol de creador de PDA de permiso puede crear un otorgamiento para cualquier `permission_authority` y paga la renta de la nueva cuenta. No puede cerrar ese PDA bajo este cambio. Trátalo como una autoridad de otorgamiento delegada, no como un administrador de permisos completo.

## Notas de migración

* Mantén las transacciones existentes de `CollectCreatorFee` sin cambios.
* Añade la instrucción sin permisos solo después de que la implementación de CPMM de destino y el IDL del cliente la incluyan.
* La automatización puede escanear pools con `creator_fees_token_0` o `creator_fees_token_1` distintos de cero y activar la recopilación sin custodia de claves del creador.
* Maneja `NoFeeCollect` como una carrera benigna cuando otro llamador drena los contadores primero.
* No pases cuentas de token destinatarias arbitrarias; deriva las ATAs del creador de `pool_state.pool_creator`, cada mint de bóveda y el programa de token coincidente.

## Páginas actualizadas

* `products/cpmm/overview` — actualización de recopilación de comisiones del creador y resumen de seguridad de destino.
* `products/cpmm/instructions` — resumen de nueva instrucción, lista completa de cuentas, efectos y matriz de cambio de estado.
* `products/cpmm/accounts` — rutas de recopilación de contadores de comisiones del creador y creación de PDA de Permiso delegada.
* `products/cpmm/fees` — mecánica de recopilación sin permisos y flujo operacional.
* `products/cpmm/code-demos` — advertencia de disponibilidad de SDK y límite de migración del cliente.
* `products/launchlab/platform-config` — aclarado que el creador de CPMM registrado sigue siendo el beneficiario incluso cuando otro pagador activa la recopilación.
* `protocol-overview/shared-infrastructure` — rutas de recopilación restringidas por autoridad y restringidas por destino.
* `security/admin-and-multisig` — autoridad de otorgamiento delegada y límites de recopilador sin permisos.
* `reference/program-addresses` — direcciones de propietario dedicado de `CreatePermissionPda` canónicas.
* `reference/error-codes` — `NoFeeCollect` expandido para cubrir la recopilación de comisiones del creador.

**Verificado 2026-08-13 contra**:

* Rama [`raydium-cp-swap` `feat/permissionless-collect-creator-fee`](https://github.com/raydium-io/raydium-cp-swap/tree/feat/permissionless-collect-creator-fee).
* Commits [`9585ea1`](https://github.com/raydium-io/raydium-cp-swap/commit/9585ea1efeb27be7be7eab1ebc033449f9c793b4) y [`d99d542`](https://github.com/raydium-io/raydium-cp-swap/commit/d99d5420c65b973af05d4efa009a2a9d060461f9), comparados con `master` en [`78f254e`](https://github.com/raydium-io/raydium-cp-swap/commit/78f254e1023751e706df7dc15c453fc3e046697c).

<Warning>
  Esta verificación cubre la rama de origen, no una implementación en mainnet-beta. Confirma el programa implementado y el IDL publicado antes de habilitar la nueva ruta en producción.
</Warning>
