> ## 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: coleta de taxa de criador sem permissão

> CPMM adiciona uma instrução restrita por destino que permite a qualquer pagador transferir taxas de criador para as ATAs canônicas do criador do pool, e delega a criação de PDA de Permissão sem delegar revogação.

<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-08-17-cpmm-permissionless-creator-fee-collection)
</Info>

<Info>
  Uma entrada de changelog de documentação para uma atualização futura do programa CPMM. Para o índice de todas as atualizações, consulte [`reference/changelog`](/pt/reference/changelog). Para a linha do tempo histórica do protocolo, consulte [`introduction/history-and-milestones`](/pt/introduction/history-and-milestones).
</Info>

Esta versão adiciona um caminho operacional sem permissão para coleta de taxa de criador. Qualquer pessoa pode pagar para disparar a transferência, mas o programa fixa o proprietário do destinatário como `PoolState.pool_creator` e fixa ambos os destinos para as contas de token associadas canônicas desse criador. A instrução assinada pelo criador existente permanece inalterada.

Também permite que uma autoridade dedicada crie PDAs de `Permission` do CPMM. Essa delegação é intencionalmente assimétrica: a autoridade dedicada pode conceder acesso a `InitializeWithPermission`, enquanto apenas o administrador do programa pode revogar uma concessão com `ClosePermissionPda`.

## TL;DR para integradores

* **Nova instrução aditiva: `CollectCreatorFeePermissionless`.** Qualquer signatário pode ser o `payer`. O criador do pool registrado não assina.
* **O chamador não pode redirecionar fundos.** `creator` deve ser igual a `pool_state.pool_creator`. `creator_token_0` e `creator_token_1` devem ser as ATAs canônicas desse criador para os mints do vault do pool e seus respectivos programas de token.
* **O pagador cobre ATAs ausentes.** Ambas as contas de destinatário usam `init_if_needed`; o pagador financia aluguel quando qualquer conta não existe.
* **A coleta é tudo ou nada.** A instrução transfere ambos os contadores de taxa de criador acumulados completos, zera ambos e atualiza `recent_epoch`. Retorna o erro `NoFeeCollect` existente quando ambos os contadores são zero.
* **Integrações existentes permanecem compatíveis.** `CollectCreatorFee` não é modificado ou removido. Nenhuma alteração de layout `PoolState`, `AmmConfig`, `Permission`, evento ou código de erro está presente.
* **A criação de permissão tem um segundo proprietário.** `CreatePermissionPda` aceita o administrador do programa ou um proprietário dedicado de criar-PDA-de-permissão. `ClosePermissionPda` permanece apenas para administrador.

## Novas contas de instrução

`CollectCreatorFeePermissionless` leva 14 contas nesta ordem:

| #     | Conta                                | Restrição ou função                                               |
| ----- | ------------------------------------ | ----------------------------------------------------------------- |
| 1     | `payer`                              | Signatário gravável; financia ATAs de criador ausentes.           |
| 2     | `creator`                            | Deve ser igual a `pool_state.pool_creator`; não assina.           |
| 3     | `authority`                          | PDA de autoridade de vault global do CPMM.                        |
| 4     | `pool_state`                         | Gravável; contém os contadores de taxa de criador.                |
| 5–6   | `token_0_vault`, `token_1_vault`     | Graváveis; devem corresponder aos vaults armazenados no pool.     |
| 7–8   | `vault_0_mint`, `vault_1_mint`       | Devem corresponder ao mint do vault correspondente.               |
| 9–10  | `creator_token_0`, `creator_token_1` | ATAs de criador canônicas graváveis; inicializadas se necessário. |
| 11–12 | `token_0_program`, `token_1_program` | SPL Token ou Token-2022 para cada mint.                           |
| 13    | `associated_token_program`           | Cria uma ATA de criador ausente.                                  |
| 14    | `system_program`                     | Suporta criação de conta financiada pelo pagador.                 |

Diferentemente de `CollectCreatorFee`, o novo layout tem contas `payer` e `creator` não-assinante separadas e não leva `amm_config`. Portanto, requer seu próprio discriminador e construtor.

## Impacto do SDK e IDL

O branch de origem do programa não inclui uma atualização de SDK ou IDL confirmada. Os integradores devem atualizar o IDL do CPMM implantado ou usar uma versão de cliente que suporte explicitamente `CollectCreatorFeePermissionless`. O conjunto de construtor `@raydium-io/raydium-sdk-v2@0.2.42-alpha` fixado da documentação cobre apenas o caminho assinado pelo criador original.

## Limite de segurança

Invocação sem permissão não significa custódia sem permissão. O chamador pode escolher quando coletar e pode gastar SOL para criar ATAs de criador ausentes. O chamador não pode escolher o beneficiário, substituir contas de token arbitrárias, solicitar um valor parcial ou alterar a configuração de taxa de criador do pool.

O novo papel de criador de PDA de permissão pode criar uma concessão para qualquer `permission_authority` e paga o aluguel da nova conta. Não pode fechar esse PDA sob essa mudança. Trate-o como uma autoridade de concessão delegada, não como um administrador de permissão completo.

## Notas de migração

* Mantenha as transações `CollectCreatorFee` existentes inalteradas.
* Adicione a instrução sem permissão apenas após a implantação do CPMM de destino e o IDL do cliente incluírem-na.
* A automação pode verificar pools com `creator_fees_token_0` ou `creator_fees_token_1` não-zero e disparar a coleta sem custódia de chaves de criador.
* Trate `NoFeeCollect` como uma corrida benigna quando outro chamador drena os contadores primeiro.
* Não passe contas de token de destinatário arbitrárias; derive as ATAs de criador de `pool_state.pool_creator`, cada mint de vault e o programa de token correspondente.

## Páginas atualizadas

* `products/cpmm/overview` — atualização de coleta de taxa de criador e resumo de segurança de destino.
* `products/cpmm/instructions` — resumo de nova instrução, lista completa de contas, efeitos e matriz de mudança de estado.
* `products/cpmm/accounts` — caminhos de coleta de contador de taxa de criador e criação de PDA de Permissão delegada.
* `products/cpmm/fees` — mecânica de coleta sem permissão e fluxo operacional.
* `products/cpmm/code-demos` — aviso de disponibilidade do SDK e limite de migração do cliente.
* `products/launchlab/platform-config` — esclarecido que o criador do CPMM registrado permanece o beneficiário mesmo quando outro pagador dispara a coleta.
* `protocol-overview/shared-infrastructure` — caminhos de coleta com porta de autoridade e restritos por destino.
* `security/admin-and-multisig` — autoridade de concessão delegada e limites de coletor sem permissão.
* `reference/program-addresses` — endereços de proprietário dedicado `CreatePermissionPda` canônico.
* `reference/error-codes` — `NoFeeCollect` expandido para cobrir coleta de taxa de criador.

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

* Branch [`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) e [`d99d542`](https://github.com/raydium-io/raydium-cp-swap/commit/d99d5420c65b973af05d4efa009a2a9d060461f9), comparados com `master` em [`78f254e`](https://github.com/raydium-io/raydium-cp-swap/commit/78f254e1023751e706df7dc15c453fc3e046697c).

<Warning>
  Esta verificação cobre o branch de origem, não uma implantação em mainnet-beta. Confirme o programa implantado e o IDL publicado antes de ativar o novo caminho em produção.
</Warning>
