> ## 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 a taxa de criador para todo criador de pool

> O CPMM adiciona InitializeV2, uma instrução de criação de pool sem permissão que recebe um argumento opcional creator_fee_on. Qualquer criador agora pode habilitar a taxa de criador e escolher seu lado sem um PDA Permission. Initialize, InitializeWithPermission e todas as outras instruções permanecem inalteradas. Aditiva: nenhum layout de conta, código de erro ou lista de contas existente foi alterado.

> [!NOTE]
>
> **Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.**
>
> [Ver versão em inglês →](https://docs.raydium.io/reference/changelog/2026-10-30-cpmm-initialize-v2.md)

> [!NOTE]
>
> Esta entrada cobre uma atualização do programa CPMM agendada para **2026-10-30**. Foi verificada contra o branch `feat/initialize-v2` do `raydium-cp-swap` (head `40cbd81`) antes da implantação. Confirme o programa implantado antes de confiar na nova instrução.

Todo pool CPMM tem uma flag `enable_creator_fee` e um lado `creator_fee_on`, ambos fixados na criação. Até agora, um criador só podia defini-los via `InitializeWithPermission`, que precisa de um PDA `Permission` emitido pelo admin. O `Initialize` público sempre armazenava a taxa como desabilitada. Na prática, apenas graduações do LaunchLab e outros fluxos controlados podiam criar um pool que cobrasse uma taxa de criador.

Esta release adiciona **`InitializeV2`**. É `Initialize` com um argumento extra, `creator_fee_on: Option<CreatorFeeOn>`, e qualquer um pode chamá-la. A matemática do pool, swap, liquidez, coleta de taxas e a parcela do protocolo da taxa de criador não foram tocados.

## TL;DR para integradores

* **Nova instrução: `InitializeV2`.** Sem permissão. Os argumentos são `init_amount_0`, `init_amount_1`, `open_time` e `creator_fee_on: Option<CreatorFeeOn>`. Discriminador `[67, 153, 175, 39, 218, 16, 38, 32]`.
* **`Some(side)` habilita a taxa de criador nesse lado; `None` a deixa desligada.** `None` armazena exatamente o que `Initialize` armazena.
* **Mesmas contas que `Initialize`, menos `rent`.** As primeiras 19 contas são idênticas e estão na mesma ordem. Veja [a lista de contas](https://docs.raydium.io/pt/products/cpmm/instructions.md#initializev2).
* **O criador é o assinante.** `pool_state.pool_creator` é o `creator` assinante. Ao contrário de `InitializeWithPermission`, o beneficiário não pode ser definido para outro endereço.
* **O criador escolhe ligar/desligar e o lado, não a alíquota.** O pool cobra o `AmmConfig.creator_fee_rate` do seu nível de taxa. Essa alíquota tem padrão `0`, então um pool habilitado em um nível assim não acumula nada.
* **Nada existente mudou.** `Initialize` e `InitializeWithPermission` mantêm seus discriminadores, contas, argumentos e comportamento. Nenhum layout de conta ou código de erro foi alterado.
* **Atualize seu IDL** para obter a nova instrução. Clientes que nunca a chamam não precisam de mudança.

## O que mudou no programa

### Nova instrução: `InitializeV2`

`InitializeV2` executa o mesmo código de criação que `Initialize`. Ela:

* aceita como `pool_state` o PDA canônico do pool ou uma keypair aleatória assinada;
* aplica as mesmas verificações da lista de permissões Token-2022 e de `SupportMintAssociated`, via `remaining_accounts`;
* rejeita a criação quando `amm_config.disable_create_pool` está definido;
* aumenta `open_time` para `block_timestamp + 1` quando ele não está no futuro;
* bloqueia 100 unidades base de LP e cunha o restante para o criador;
* cobra `amm_config.create_pool_fee`.

A única diferença é o que ela grava no novo `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` |

Um byte de tag ou de variante inválido falha na desserialização de argumentos do Anchor. Nenhum código de erro novo está envolvido.

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

### Como os três caminhos de criação se comparam

| | `Initialize` | `InitializeV2` | `InitializeWithPermission` |
| - | - | - | - |
| Quem pode chamar | Qualquer um | Qualquer um | Detentor de um PDA `Permission` |
| Taxa de criador | Sempre desligada | Escolha do criador | Sempre ligada |
| Lado (`creator_fee_on`) | `BothToken` (não usado) | Escolha do criador | Escolha do chamador |
| `pool_creator` registrado | `creator` assinante | `creator` assinante | Conta `creator` separada, não assinante |
| Pagador | `creator` | `creator` | `payer` separado |
| Sysvar `rent` final | Sim | Não | Não |

### Refatoração interna

Os três handlers agora compartilham uma única rotina `initialize_pool`. A refatoração não altera as contas, argumentos, verificações ou valores armazenados de `Initialize` ou `InitializeWithPermission`. Os novos testes também verificam que um `Initialize` simples na mesma configuração ainda armazena a taxa de criador como desabilitada.

## O que os criadores devem saber

* **Verifique o nível de taxa primeiro.** A alíquota da taxa de criador pertence à `AmmConfig`, não ao pool. Escolha um nível cujo `creator_fee_rate` seja o que você quer cobrar. As alíquotas estão listadas em [`products/cpmm/fees`](https://docs.raydium.io/pt/products/cpmm/fees).
* **A escolha é permanente.** Nenhuma instrução altera `enable_creator_fee` ou `creator_fee_on` após a criação. Para mudá-la, você precisa criar um novo pool.
* **Os traders a pagam além da taxa de negociação.** A taxa de criador é uma alíquota separada adicionada ao swap. Ela não reduz as parcelas de LP, protocolo ou fundo, mas torna o pool mais caro para negociar do que um pool no mesmo nível com a taxa desligada.
* **A coleta não mudou.** Use `CollectCreatorFee` ou `CollectCreatorFeePermissionless`. A parcela do protocolo da [release de 2026-09-19](https://docs.raydium.io/pt/reference/changelog/2026-09-19-cpmm-creator-fee-protocol-share.md) se aplica, e você não pode optar por sair dela na criação.

## Notas de migração

* **Criadores de pool.** Mude de `Initialize` para `InitializeV2` apenas se quiser a taxa de criador ligada. Passe `Some(side)` e remova a conta `rent`. `Initialize` continua funcionando.
* **Usuários do SDK.** `raydium.cpmm.createPool` em `@raydium-io/raydium-sdk-v2@0.2.64-alpha` constrói `Initialize`. Até que uma release traga um builder de `InitializeV2`, codifique-a a partir do IDL atualizado.
* **Indexadores e roteadores.** Espere mais pools com `enable_creator_fee = true`, criados por carteiras comuns em vez do LaunchLab. Cote a partir dos próprios `enable_creator_fee` e `creator_fee_on` de cada pool, nunca apenas a partir do caminho de criação ou do nível. Decodifique a nova instrução se você rastreia a criação de pools a partir de instruções. O rastreamento a partir de contas `PoolState` não precisa de mudança.
* **UIs.** Mostre se um pool cobra uma taxa de criador e com qual alíquota, já que dois pools no mesmo nível agora podem diferir.
* **LaunchLab e outros fluxos com permissão.** Sem mudança. `InitializeWithPermission` continua sendo o caminho quando o pagador e o criador registrado precisam ser diferentes.

## O que não mudou

* **Todos os layouts de conta**, incluindo `PoolState` e `AmmConfig`.
* **`Initialize` e `InitializeWithPermission`**: discriminadores, contas, argumentos e valores armazenados.
* **`Permission`, `CreatePermissionPda` e `ClosePermissionPda`.**
* **Matemática de swap, depósito e saque**, a cobrança da taxa de criador e a parcela do protocolo da taxa de criador.
* **Códigos de erro.** `6000`–`6015` permanecem inalterados; nada foi anexado.
* **ID do programa.**

## Páginas atualizadas

* `products/cpmm/instructions`: banner da atualização; linhas do resumo e da matriz de mudança de estado; nova seção `InitializeV2` com argumentos, codificação e lista de contas; a pós-condição de `Initialize` agora aponta para `InitializeV2`.
* `products/cpmm/fees`: a seção "Taxa de criador" lista os três caminhos de criação e observa que habilitar a taxa não define sua alíquota.
* `products/cpmm/accounts`: notas de `poolState` e do ID do pool; notas dos campos `creator_fee_on` / `enable_creator_fee`; nota de `Permission`; linha do ciclo de vida das contas.
* `products/cpmm/overview`: o destaque "Novidades" e o item "Taxas previsíveis".
* `products/cpmm/code-demos`: nota de que `createPool` constrói `Initialize` e de como chegar a `InitializeV2`.
* `protocol-overview/shared-infrastructure`: as taxas de criador não estão mais limitadas a pools graduados do LaunchLab.
* `reference/token-2022-support`: caminhos de criação de pool do CPMM.

**Verificado contra**: branch `feat/initialize-v2` do `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` e `tests/initialize_v2.test.ts`.


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