> ## 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-22 — CLMM: CreateCustomizablePoolV2 abre la creación de múltiples pools a todos

> CreatePermissionedPool se renombra a CreateCustomizablePoolV2 y se elimina su compuerta Permission PDA, permitiendo que cualquier pagador cree pools CLMM adicionales para el mismo par y nivel de comisión en una dirección derivada de seed_index. La cuenta Permission y las instrucciones administrativas CreatePermissionPda / ClosePermissionPda se eliminan. Cambio importante para clientes que llaman la instrucción anterior; ningún diseño de cuenta ni código de error cambió.

<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-10-22-clmm-customizable-pool-v2)
</Info>

<Info>
  Esta entrada cubre una actualización del programa CLMM programada para **2026-10-22**. Se verificó contra la rama `feat/create-customizable-pool-v2` de `raydium-clmm` (head `18f5db1`) antes del despliegue. Confirma el programa desplegado antes de confiar en el nuevo nombre de instrucción o lista de cuentas.
</Info>

El lanzamiento del [2026-07-30](/es/reference/changelog/2026-07-30-clmm-permissioned-pools) agregó `CreatePermissionedPool`, que permite a un llamador crear más de un pool para el mismo `(amm_config, token_mint_0, token_mint_1)` incorporando un `seed_index` en el PDA del pool. Estaba controlado: el pagador tenía que poseer un PDA `Permission` emitido por un administrador.

Este lanzamiento elimina esa compuerta. La instrucción se renombra a **`CreateCustomizablePoolV2`**, cualquiera puede llamarla, y toda la maquinaria de permisos se elimina del programa. Las matemáticas del pool, swap, liquidez, órdenes limitadas, comisiones y recompensas no se modifican.

## TL;DR para integradores

* **`CreatePermissionedPool` → `CreateCustomizablePoolV2`.** Los mismos argumentos (`CreateCustomizableParams`, `seed_index: u16`) y la misma derivación de dirección del pool. El discriminador de Anchor cambia con el nombre, por lo que una transacción construida contra la instrucción anterior falla después de la actualización. Reconstruyela contra el nuevo IDL.
* **La cuenta `permission` se ha eliminado de la lista de cuentas.** Estaba en la posición 3, por lo que cada cuenta desde `amm_config` en adelante se mueve una posición hacia arriba. Consulta la [nueva lista de cuentas](#createcustomizablepoolv2-account-list).
* **La creación de múltiples pools ahora es sin permisos.** Cualquier pagador puede crear pools adicionales para un par y nivel de comisión con un `seed_index` distinto de cero. Trata un par como potencialmente teniendo muchos pools CLMM por nivel de comisión, creados por cualquiera.
* **`Permission`, `CreatePermissionPda` y `ClosePermissionPda` se eliminan.** El programa e IDL ya no conocen el tipo `Permission`.
* **Actualiza tu IDL.** Elimina dos instrucciones y un tipo de cuenta, para 37 instrucciones y 53 errores.
* **Ningún diseño de cuenta cambió y ningún código de error se agregó.** `PoolState.seed_index` mantiene su desplazamiento; solo su significado se amplía de "pool con permisos" a "cualquier pool V2".

## Qué cambió en el programa

### `CreatePermissionedPool` renombrado a `CreateCustomizablePoolV2`

El manejador es el mismo código bajo un nuevo nombre. Todavía:

* requiere `seed_index > 0`;
* deriva el pool en `["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]`;
* toma los mismos `CreateCustomizableParams` que `CreateCustomizablePool`, por lo que la comisión de un lado (`collect_fee_on`) y la opción de comisión dinámica funcionan de la misma manera;
* aplica las mismas comprobaciones de soporte de Token-2022 que `CreatePool`;
* registra `pool_creator` como `pool_state.owner` y escribe `seed_index` en `PoolState`;
* emite `PoolCreatedEvent`.

La comprobación del PDA `Permission` es el único comportamiento eliminado.

| | Discriminador antiguo | Discriminador nuevo |
| - | - | - |
| Instrucción | `create_permissioned_pool` → `[36, 243, 179, 35, 42, 239, 53, 229]` | `create_customizable_pool_v2` → `[29, 172, 106, 188, 103, 45, 70, 100]` |

### Lista de cuentas de `CreateCustomizablePoolV2`

| # | Cuenta | W | S | Notas |
| - | - | - | - | - |
| 1 | `payer` | W | S | Paga la renta de cada cuenta nueva. Cualquier billetera. |
| 2 | `pool_creator` | | | Escrito en `pool_state.owner`. No es un firmante y no se verifica. |
| 3 | `amm_config` | | | Nivel de comisión al que se vincula el pool. |
| 4 | `pool_state` | W | | `init` en el PDA derivado de `seed_index`. |
| 5 | `token_mint_0` | | | Debe ordenarse antes de `token_mint_1`. |
| 6 | `token_mint_1` | | | |
| 7 | `token_vault_0` | W | | PDA `["pool_vault", pool_state, token_mint_0]`. |
| 8 | `token_vault_1` | W | | PDA `["pool_vault", pool_state, token_mint_1]`. |
| 9 | `observation_state` | W | | PDA `["observation", pool_state]`. |
| 10 | `tick_array_bitmap` | W | | PDA `["pool_tick_array_bitmap_extension", pool_state]`. |
| 11 | `token_program_0` | | | Programa que posee `token_mint_0`. |
| 12 | `token_program_1` | | | Programa que posee `token_mint_1`. |
| 13 | `system_program` | | | |
| 14 | `rent` | | | |

`remaining_accounts` no cambian: los PDAs del registro de mint de soporte cuando un mint de Token-2022 los necesita, y `DynamicFeeConfig` **al final** cuando `enable_dynamic_fee = true`.

<Warning>
  `pool_creator` no se autentica. Cualquier pagador puede escribir cualquier dirección en `pool_state.owner`. Esa dirección obtiene el derecho de llamar a `InitializeReward` en el pool, pero no puede usarse como prueba de quién lo creó. No clasifiques, etiquetes ni confíes en un pool V2 por su campo `owner`.
</Warning>

### Eliminado: `Permission`, `CreatePermissionPda`, `ClosePermissionPda`

* El tipo de cuenta `Permission` (`["permission", authority]`, 280 bytes) se elimina del programa.
* `CreatePermissionPda` y `ClosePermissionPda` se eliminan, junto con la clave dedicada `permission_pda_admin` que podía firmarlas.
* Los PDAs de Permission creados antes de la actualización permanecen en la cadena. El programa ya no los lee y ya no tiene una instrucción que los cierre.

## Códigos de error

Sin cambios. `6000`–`6052` mantienen sus números. `NotApproved` (`6000`) ya no tiene un caso "el firmante no es ni `admin` ni `permission_pda_admin`", porque esas instrucciones se han eliminado.

## Notas de migración

* **Creadores de pools.** Cambia de `CreatePermissionedPool` a `CreateCustomizablePoolV2`, elimina la cuenta `permission` y desplaza las cuentas restantes una posición hacia arriba. Ya no necesitas una concesión de administrador.
* **Indexadores y enrutadores.** Indexa pools CLMM desde `PoolCreatedEvent` o escaneando cuentas `PoolState`, no derivando el PDA de cuatro semillas. Almacena `seed_index` para cualquier pool donde sea distinto de cero, porque lo necesitas para re-derivar la dirección. Espera más pools no canónicos ahora que cualquiera puede crearlos, y no asumas que el pool canónico es el más profundo.
* **Interfaces de usuario.** Un par y nivel de comisión pueden tener muchos pools con diferentes precios iniciales. Muestra la liquidez y la dirección del pool, y no presentes un pool como oficial por su `owner`.
* **Consumidores de IDL.** Elimina cualquier código de decodificador o cliente para `Permission`, `CreatePermissionPda` y `ClosePermissionPda`.

## Qué no cambió

* **Cada diseño de cuenta**, incluyendo `PoolState` (el campo `seed_index` y su desplazamiento son los mismos).
* **`CreatePool` y `CreateCustomizablePool`.** Todavía crean el único pool canónico por par y nivel, con `seed_index = [0, 0]`.
* **Pools creados a través de `CreatePermissionedPool` antes de la actualización.** Sus direcciones, estado y `seed_index` no cambian.
* **Códigos de error, comportamiento de swap, liquidez, comisión, comisión dinámica, recompensa y órdenes limitadas.**
* **ID del programa.**

## Páginas actualizadas

* `products/clmm/instructions`: banner de actualización; filas de inventario y control administrativo; sección `CreateCustomizablePoolV2` con la nueva lista de cuentas.
* `products/clmm/accounts`: `Permission` eliminado del inventario y documentado como retirado; descripción de `seed_index`; ayudante de PDA renombrado a `deriveCustomizablePoolV2`; filas de ciclo de vida.
* `products/clmm/overview`: nota "Novedades".
* `security/admin-and-multisig`: rol `permission_pda_admin` eliminado de la tabla CLMM.
* `reference/error-codes`: descripción de `NotApproved`.
* `reference/token-2022-support`: rutas de creación de pools CLMM.
* `sdk-api/anchor-idl`: recuento de instrucciones CLMM.
* `protocol-overview/versions-and-migration`: viñeta del historial de actualizaciones CLMM.

**Verificado contra**: rama `raydium-clmm` `feat/create-customizable-pool-v2` (`18f5db1`): `instructions/create_customizable_pool_v2.rs`, `instructions/mod.rs`, `instructions/admin/mod.rs`, `states/mod.rs`, `states/pool.rs`, `lib.rs`, y los eliminados `admin/create_permission_pda.rs`, `admin/close_permission_pda.rs`, `states/permission.rs`.


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