> ## 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 criação de multi-pool para todos

> CreatePermissionedPool é renomeado para CreateCustomizablePoolV2 e seu gate de Permission PDA é removido, permitindo que qualquer pagador crie pools CLMM adicionais para o mesmo par e taxa de comissão em um endereço derivado de seed_index. A conta Permission e as instruções administrativas CreatePermissionPda / ClosePermissionPda são deletadas. Quebra compatibilidade para clientes que chamam a instrução antiga; nenhum layout de conta ou código de erro foi alterado.

<Info>
  **Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.**

  [Ver versão em inglês →](/reference/changelog/2026-10-22-clmm-customizable-pool-v2)
</Info>

<Info>
  Esta entrada cobre uma atualização do programa CLMM agendada para **2026-10-22**. Foi verificada contra o branch `feat/create-customizable-pool-v2` do `raydium-clmm` (head `18f5db1`) antes da implantação. Confirme o programa implantado antes de confiar no novo nome de instrução ou lista de contas.
</Info>

O [lançamento de 2026-07-30](/pt/reference/changelog/2026-07-30-clmm-permissioned-pools) adicionou `CreatePermissionedPool`, que permite a um chamador criar mais de um pool para o mesmo `(amm_config, token_mint_0, token_mint_1)` incorporando um `seed_index` no PDA do pool. Era controlado por gate: o pagador precisava manter um PDA `Permission` emitido por um administrador.

Este lançamento remove esse gate. A instrução é renomeada para **`CreateCustomizablePoolV2`**, qualquer pessoa pode chamá-la, e toda a maquinaria de permissão é deletada do programa. A matemática do pool, swap, liquidez, ordens limitadas, taxas e recompensas não são alteradas.

## TL;DR para integradores

* **`CreatePermissionedPool` → `CreateCustomizablePoolV2`.** Mesmos argumentos (`CreateCustomizableParams`, `seed_index: u16`) e mesma derivação de endereço do pool. O discriminador Anchor muda com o nome, então uma transação construída contra a instrução antiga falha após a atualização. Reconstrua-a contra o novo IDL.
* **A conta `permission` foi removida da lista de contas.** Ela estava no slot 3, então cada conta de `amm_config` em diante sobe uma posição. Veja [a nova lista de contas](#createcustomizablepoolv2-account-list).
* **A criação de multi-pool agora é sem permissão.** Qualquer pagador pode criar pools adicionais para um par e taxa de comissão com um `seed_index` diferente de zero. Trate um par como potencialmente tendo muitos pools CLMM por taxa de comissão, criados por qualquer pessoa.
* **`Permission`, `CreatePermissionPda` e `ClosePermissionPda` são removidos.** O programa e IDL não conhecem mais o tipo `Permission`.
* **Atualize seu IDL.** Ele remove duas instruções e um tipo de conta, para 37 instruções e 53 erros.
* **Nenhum layout de conta foi alterado e nenhum código de erro foi adicionado.** `PoolState.seed_index` mantém seu offset; apenas seu significado se amplia de "pool com permissão" para "qualquer pool V2".

## O que mudou no programa

### `CreatePermissionedPool` renomeado para `CreateCustomizablePoolV2`

O handler é o mesmo código sob um novo nome. Ainda:

* requer `seed_index > 0`;
* deriva o pool em `["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]`;
* recebe o mesmo `CreateCustomizableParams` que `CreateCustomizablePool`, então a taxa de comissão unilateral (`collect_fee_on`) e o opt-in de taxa dinâmica funcionam da mesma forma;
* aplica as mesmas verificações de suporte a Token-2022 que `CreatePool`;
* registra `pool_creator` como `pool_state.owner` e escreve `seed_index` em `PoolState`;
* emite `PoolCreatedEvent`.

A verificação de PDA `Permission` é o único comportamento removido.

| | Discriminador antigo | Novo discriminador |
| - | - | - |
| Instrução | `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 contas `CreateCustomizablePoolV2`

| # | Conta | W | S | Notas |
| - | - | - | - | - |
| 1 | `payer` | W | S | Paga aluguel para cada nova conta. Qualquer carteira. |
| 2 | `pool_creator` | | | Escrito em `pool_state.owner`. Não é um signatário e não é verificado. |
| 3 | `amm_config` | | | Taxa de comissão à qual o pool se vincula. |
| 4 | `pool_state` | W | | `init` no PDA derivado de `seed_index`. |
| 5 | `token_mint_0` | | | Deve vir 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 possui `token_mint_0`. |
| 12 | `token_program_1` | | | Programa que possui `token_mint_1`. |
| 13 | `system_program` | | | |
| 14 | `rent` | | | |

`remaining_accounts` não são alteradas: os PDAs do registro de mint de suporte quando um mint Token-2022 precisa deles, e o `DynamicFeeConfig` **por último** quando `enable_dynamic_fee = true`.

<Warning>
  `pool_creator` não é autenticado. Qualquer pagador pode escrever qualquer endereço em `pool_state.owner`. Esse endereço ganha o direito de chamar `InitializeReward` no pool, mas não pode ser usado como prova de quem o criou. Não classifique, rotule ou confie em um pool V2 pelo seu campo `owner`.
</Warning>

### Removido: `Permission`, `CreatePermissionPda`, `ClosePermissionPda`

* O tipo de conta `Permission` (`["permission", authority]`, 280 bytes) é deletado do programa.
* `CreatePermissionPda` e `ClosePermissionPda` são deletados, junto com a chave dedicada `permission_pda_admin` que poderia assiná-los.
* PDAs de Permission criados antes da atualização permanecem on-chain. O programa não os lê mais e não tem mais uma instrução que os fecha.

## Códigos de erro

Sem alterações. `6000`–`6052` mantêm seus números. `NotApproved` (`6000`) não tem mais um caso "signatário não é nem `admin` nem `permission_pda_admin`", porque essas instruções foram removidas.

## Notas de migração

* **Criadores de pool.** Mude de `CreatePermissionedPool` para `CreateCustomizablePoolV2`, remova a conta `permission` e desloque as contas restantes uma posição para cima. Você não precisa mais de uma concessão de administrador.
* **Indexadores e roteadores.** Indexe pools CLMM de `PoolCreatedEvent` ou digitalizando contas `PoolState`, não derivando o PDA de quatro seeds. Armazene `seed_index` para qualquer pool onde ele seja diferente de zero, porque você precisa dele para re-derivar o endereço. Espere mais pools não-canônicos agora que qualquer pessoa pode criá-los, e não assuma que o pool canônico é o mais profundo.
* **UIs.** Um par e taxa de comissão podem ter muitos pools com preços iniciais diferentes. Mostre liquidez e o endereço do pool, e não apresente um pool como oficial por causa de seu `owner`.
* **Consumidores de IDL.** Remova qualquer código de decodificador ou cliente para `Permission`, `CreatePermissionPda` e `ClosePermissionPda`.

## O que não mudou

* **Cada layout de conta**, incluindo `PoolState` (o campo `seed_index` e seu offset são os mesmos).
* **`CreatePool` e `CreateCustomizablePool`.** Eles ainda criam o único pool canônico por par e taxa, com `seed_index = [0, 0]`.
* **Pools criados através de `CreatePermissionedPool` antes da atualização.** Seus endereços, estado e `seed_index` não são alterados.
* **Códigos de erro, comportamento de swap, liquidez, taxa, taxa dinâmica, recompensa e ordem limitada.**
* **ID do programa.**

## Páginas atualizadas

* `products/clmm/instructions`: banner de atualização; linhas de inventário e gating administrativo; seção `CreateCustomizablePoolV2` com a nova lista de contas.
* `products/clmm/accounts`: `Permission` removido do inventário e documentado como aposentado; descrição de `seed_index`; auxiliar de PDA renomeado para `deriveCustomizablePoolV2`; linhas de ciclo de vida.
* `products/clmm/overview`: nota "What's new".
* `security/admin-and-multisig`: função `permission_pda_admin` removida da tabela CLMM.
* `reference/error-codes`: descrição de `NotApproved`.
* `reference/token-2022-support`: caminhos de criação de pool CLMM.
* `sdk-api/anchor-idl`: contagem de instruções CLMM.
* `protocol-overview/versions-and-migration`: marcador de histórico de atualização CLMM.

**Verificado contra**: branch `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`, e os deletados `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.