> ## 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-10-30 — CPMM: InitializeV2 abre la comisión del creador a todo creador de pool

> CPMM agrega InitializeV2, una instrucción de creación de pools sin permisos que toma un argumento opcional creator_fee_on. Cualquier creador puede ahora habilitar la comisión del creador y elegir su lado sin un PDA Permission. Initialize, InitializeWithPermission y todas las demás instrucciones no cambian. Aditivo: ningún diseño de cuenta, código de error ni lista de cuentas existente cambió.

> [!NOTE]
>
> **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 →](https://docs.raydium.io/reference/changelog/2026-10-30-cpmm-initialize-v2.md)

> [!NOTE]
>
> Esta entrada cubre una actualización del programa CPMM programada para **2026-10-30**. Se verificó contra la rama `feat/initialize-v2` de `raydium-cp-swap` (head `40cbd81`) antes del despliegue. Confirma el programa desplegado antes de confiar en la nueva instrucción.

Cada pool CPMM tiene un indicador `enable_creator_fee` y un lado `creator_fee_on`, ambos fijados en la creación. Hasta ahora, un creador solo podía establecerlos mediante `InitializeWithPermission`, que necesita un PDA `Permission` emitido por el administrador. La instrucción pública `Initialize` siempre almacenaba la comisión como deshabilitada. En la práctica, solo las graduaciones de LaunchLab y otros flujos controlados podían crear un pool que cobrara una comisión del creador.

Este lanzamiento agrega **`InitializeV2`**. Es `Initialize` con un argumento extra, `creator_fee_on: Option<CreatorFeeOn>`, y cualquiera puede llamarla. La matemática del pool, el swap, la liquidez, la recopilación de comisiones y la parte del protocolo de la comisión del creador no se tocan.

## TL;DR para integradores

* **Nueva instrucción: `InitializeV2`.** Sin permisos. Los argumentos son `init_amount_0`, `init_amount_1`, `open_time` y `creator_fee_on: Option<CreatorFeeOn>`. Discriminador `[67, 153, 175, 39, 218, 16, 38, 32]`.
* **`Some(side)` habilita la comisión del creador en ese lado; `None` la deja desactivada.** `None` almacena exactamente lo mismo que `Initialize`.
* **Mismas cuentas que `Initialize`, menos `rent`.** Las primeras 19 cuentas son idénticas y están en el mismo orden. Consulta [la lista de cuentas](https://docs.raydium.io/es/products/cpmm/instructions.md#initializev2).
* **El creador es el firmante.** `pool_state.pool_creator` es el `creator` firmante. A diferencia de `InitializeWithPermission`, el beneficiario no se puede establecer en otra dirección.
* **El creador elige si la activa y el lado, no la tasa.** El pool cobra el `AmmConfig.creator_fee_rate` de su nivel de comisión. Esa tasa es `0` por defecto, así que un pool habilitado en un nivel así no acumula nada.
* **Nada existente cambió.** `Initialize` e `InitializeWithPermission` conservan sus discriminadores, cuentas, argumentos y comportamiento. Ningún diseño de cuenta ni código de error cambió.
* **Actualiza tu IDL** para obtener la nueva instrucción. Los clientes que nunca la llamen no necesitan cambios.

## Qué cambió en el programa

### Nueva instrucción: `InitializeV2`

`InitializeV2` ejecuta el mismo código de creación que `Initialize`. Esta instrucción:

* acepta como `pool_state` la PDA canónica del pool o un keypair aleatorio firmado;
* aplica las mismas verificaciones de la lista de permitidos de Token-2022 y de `SupportMintAssociated`, mediante `remaining_accounts`;
* rechaza la creación cuando `amm_config.disable_create_pool` está activado;
* aumenta `open_time` a `block_timestamp + 1` cuando no está en el futuro;
* bloquea 100 unidades base de LP y acuña el resto al creador;
* cobra `amm_config.create_pool_fee`.

La única diferencia es lo que escribe en el nuevo `PoolState`:

| Argumento `creator_fee_on` | Bytes Borsh | `enable_creator_fee` | `creator_fee_on` |
| - | - | - | - |
| `None` | `00` | `false` | `0` (`BothToken`) |
| `Some(BothToken)` | `01 00` | `true` | `0` |
| `Some(OnlyToken0)` | `01 01` | `true` | `1` |
| `Some(OnlyToken1)` | `01 02` | `true` | `2` |

Un byte de etiqueta o de variante no válido falla en la deserialización de argumentos de Anchor. No interviene ningún código de error nuevo.

| | Discriminador |
| - | - |
| `initialize` (sin cambios) | `[175, 175, 109, 31, 13, 152, 155, 237]` |
| `initialize_with_permission` (sin cambios) | `[63, 55, 254, 65, 49, 178, 89, 121]` |
| `initialize_v2` (nuevo) | `[67, 153, 175, 39, 218, 16, 38, 32]` |

### Cómo se comparan las tres rutas de creación

| | `Initialize` | `InitializeV2` | `InitializeWithPermission` |
| - | - | - | - |
| Quién puede llamarla | Cualquiera | Cualquiera | Titular de un PDA `Permission` |
| Comisión del creador | Siempre desactivada | Elección del creador | Siempre activada |
| Lado (`creator_fee_on`) | `BothToken` (sin uso) | Elección del creador | Elección del llamador |
| `pool_creator` registrado | `creator` firmante | `creator` firmante | Cuenta `creator` separada, no firmante |
| Pagador | `creator` | `creator` | `payer` separado |
| Sysvar `rent` final | Sí | No | No |

### Refactorización interna

Los tres handlers ahora comparten una única rutina `initialize_pool`. La refactorización no cambia las cuentas, argumentos, verificaciones ni valores almacenados de `Initialize` o `InitializeWithPermission`. Las nuevas pruebas también verifican que un `Initialize` simple sobre la misma configuración sigue almacenando la comisión del creador como deshabilitada.

## Qué deben saber los creadores

* **Revisa primero el nivel de comisión.** La tasa de la comisión del creador pertenece a la `AmmConfig`, no al pool. Elige un nivel cuyo `creator_fee_rate` sea lo que quieres cobrar. Las tasas se enumeran en [`products/cpmm/fees`](https://docs.raydium.io/es/products/cpmm/fees).
* **La elección es permanente.** Ninguna instrucción cambia `enable_creator_fee` ni `creator_fee_on` después de la creación. Para cambiarla, debes crear un nuevo pool.
* **Los traders la pagan además de la comisión de trading.** La comisión del creador es una tasa separada que se suma al swap. No reduce las partes de LP, protocolo o fondo, pero sí hace que operar contra el pool sea más caro que contra un pool del mismo nivel con la comisión desactivada.
* **La recopilación no cambia.** Usa `CollectCreatorFee` o `CollectCreatorFeePermissionless`. Se aplica la parte del protocolo del [lanzamiento 2026-09-19](https://docs.raydium.io/es/reference/changelog/2026-09-19-cpmm-creator-fee-protocol-share.md), y no puedes excluirte de ella en la creación.

## Notas de migración

* **Creadores de pools.** Cambia de `Initialize` a `InitializeV2` solo si quieres activar la comisión del creador. Pasa `Some(side)` y elimina la cuenta `rent`. `Initialize` sigue funcionando.
* **Usuarios del SDK.** `raydium.cpmm.createPool` en `@raydium-io/raydium-sdk-v2@0.2.64-alpha` construye `Initialize`. Hasta que una versión incluya un constructor de `InitializeV2`, codifícala a partir del IDL actualizado.
* **Indexadores y routers.** Espera más pools con `enable_creator_fee = true`, creados por wallets comunes en lugar de LaunchLab. Cotiza a partir de los propios `enable_creator_fee` y `creator_fee_on` de cada pool, nunca a partir de la ruta de creación o del nivel por sí solo. Decodifica la nueva instrucción si rastreas la creación de pools a partir de instrucciones. El rastreo a partir de cuentas `PoolState` no necesita cambios.
* **Interfaces.** Muestra si un pool cobra una comisión del creador y a qué tasa, ya que dos pools del mismo nivel ahora pueden diferir.
* **LaunchLab y otros flujos con permisos.** Sin cambios. `InitializeWithPermission` sigue siendo la ruta cuando el pagador y el creador registrado deben ser distintos.

## Qué no cambió

* **Todos los diseños de cuenta**, incluidos `PoolState` y `AmmConfig`.
* **`Initialize` e `InitializeWithPermission`**: discriminadores, cuentas, argumentos y valores almacenados.
* **`Permission`, `CreatePermissionPda` y `ClosePermissionPda`.**
* **La matemática de swap, depósito y retiro**, el cobro de la comisión del creador y la parte del protocolo de la comisión del creador.
* **Códigos de error.** `6000`–`6015` no cambian; no se añadió nada.
* **ID del programa.**

## Páginas actualizadas

* `products/cpmm/instructions`: banner de la actualización; filas del resumen y de la matriz de cambio de estado; nueva sección `InitializeV2` con argumentos, codificación y lista de cuentas; la postcondición de `Initialize` ahora apunta a `InitializeV2`.
* `products/cpmm/fees`: la sección "Comisión del creador" enumera las tres rutas de creación y señala que habilitar la comisión no establece su tasa.
* `products/cpmm/accounts`: notas sobre `poolState` y el ID del pool; notas de los campos `creator_fee_on` / `enable_creator_fee`; nota sobre `Permission`; fila del ciclo de vida de cuentas.
* `products/cpmm/overview`: el aviso "Novedades" y la viñeta "Comisiones predecibles".
* `products/cpmm/code-demos`: nota de que `createPool` construye `Initialize` y de cómo llegar a `InitializeV2`.
* `protocol-overview/shared-infrastructure`: las comisiones de creador ya no se limitan a pools graduados de LaunchLab.
* `reference/token-2022-support`: rutas de creación de pools de CPMM.

**Verificado contra**: rama `feat/initialize-v2` de `raydium-cp-swap` (`40cbd81`): `programs/cp-swap/src/lib.rs`, `instructions/initialize_v2.rs`, `instructions/initialize.rs`, `instructions/initialize_with_permission.rs`, `instructions/mod.rs`, `states/pool.rs` y `tests/initialize_v2.test.ts`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.