> ## 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: permissionless creator-fee collection

> CPMM adds a destination-constrained instruction that lets any payer sweep creator fees to the pool creator's canonical ATAs, and delegates Permission PDA creation without delegating revocation.

<Info>
  **Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.**

  [Englische Version ansehen →](/reference/changelog/2026-08-17-cpmm-permissionless-creator-fee-collection)
</Info>

<Info>
  Ein Dokumentations-Changelog-Eintrag für ein bevorstehendes CPMM-Programm-Update. Für den Index aller Updates siehe [`reference/changelog`](/de/reference/changelog). Für die historische Zeitleiste des Protokolls siehe [`introduction/history-and-milestones`](/de/introduction/history-and-milestones).
</Info>

Dieses Release fügt einen erlaubnisfreien Betriebspfad für die Gebührenerfassung des Creators hinzu. Jeder kann zahlen, um die Übertragung auszulösen, aber das Programm legt den Empfänger auf `PoolState.pool_creator` fest und beide Ziele auf die kanonischen Associated Token Accounts des Creators. Die bestehende, vom Creator signierte Anweisung bleibt unverändert.

Es ermöglicht auch einer dedizierten Autorität, CPMM-`Permission`-PDAs zu erstellen. Diese Delegierung ist absichtlich asymmetrisch: Die dedizierte Autorität kann Zugriff auf `InitializeWithPermission` gewähren, während nur der Programm-Admin einen Zugriff mit `ClosePermissionPda` widerrufen kann.

## TL;DR für Integratoren

* **Neue additive Anweisung: `CollectCreatorFeePermissionless`.** Jeder Unterzeichner kann der `payer` sein. Der eingetragene Pool-Creator signiert nicht.
* **Der Aufrufer kann Gelder nicht umleiten.** `creator` muss gleich `pool_state.pool_creator` sein. `creator_token_0` und `creator_token_1` müssen die kanonischen ATAs dieses Creators für die Pool-Vault-Mints und ihre jeweiligen Token-Programme sein.
* **Der Zahler deckt fehlende ATAs ab.** Beide Empfängerkonten verwenden `init_if_needed`; der Zahler finanziert die Miete, wenn eines der Konten nicht existiert.
* **Erfassung ist alles oder nichts.** Die Anweisung überträgt beide vollständig aufgelaufenen Creator-Gebühren-Zähler, setzt beide auf Null und aktualisiert `recent_epoch`. Sie gibt den bestehenden `NoFeeCollect`-Fehler zurück, wenn beide Zähler Null sind.
* **Bestehende Integrationen bleiben kompatibel.** `CollectCreatorFee` wird nicht geändert oder entfernt. Es gibt keine `PoolState`-, `AmmConfig`-, `Permission`-, Event- oder Error-Code-Layout-Änderungen.
* **Permission-Erstellung hat einen zweiten Besitzer.** `CreatePermissionPda` akzeptiert den Programm-Admin oder einen dedizierten Create-Permission-PDA-Besitzer. `ClosePermissionPda` bleibt nur für Admins.

## Neue Anweisungskonten

`CollectCreatorFeePermissionless` nimmt 14 Konten in dieser Reihenfolge:

| #     | Konto                                | Einschränkung oder Rolle                                                |
| ----- | ------------------------------------ | ----------------------------------------------------------------------- |
| 1     | `payer`                              | Beschreibbar, Unterzeichner; finanziert fehlende Creator-ATAs.          |
| 2     | `creator`                            | Muss gleich `pool_state.pool_creator` sein; signiert nicht.             |
| 3     | `authority`                          | CPMM globale Vault-Autorität PDA.                                       |
| 4     | `pool_state`                         | Beschreibbar; enthält die Creator-Gebühren-Zähler.                      |
| 5–6   | `token_0_vault`, `token_1_vault`     | Beschreibbar; müssen den in dem Pool gespeicherten Vaults entsprechen.  |
| 7–8   | `vault_0_mint`, `vault_1_mint`       | Müssen dem entsprechenden Vault-Mint entsprechen.                       |
| 9–10  | `creator_token_0`, `creator_token_1` | Beschreibbare kanonische Creator-ATAs; werden bei Bedarf initialisiert. |
| 11–12 | `token_0_program`, `token_1_program` | SPL Token oder Token-2022 für jeden Mint.                               |
| 13    | `associated_token_program`           | Erstellt einen fehlenden Creator-ATA.                                   |
| 14    | `system_program`                     | Unterstützt die vom Zahler finanzierte Kontoerstellung.                 |

Im Gegensatz zu `CollectCreatorFee` hat das neue Layout separate `payer`- und nicht signierende `creator`-Konten und nimmt nicht `amm_config`. Es erfordert daher seinen eigenen Diskriminator und Builder.

## SDK- und IDL-Auswirkungen

Der Programm-Quellzweig enthält kein committiertes SDK- oder IDL-Update. Integratoren müssen die bereitgestellte CPMM-IDL aktualisieren oder einen Client-Release verwenden, der `CollectCreatorFeePermissionless` explizit unterstützt. Der angeheftete `@raydium-io/raydium-sdk-v2@0.2.42-alpha` Builder-Satz der Dokumentation deckt nur den ursprünglichen vom Creator signierten Pfad ab.

## Sicherheitsgrenze

Erlaubnisfreie Aufrufe bedeuten nicht erlaubnisfreie Verwahrung. Der Aufrufer kann wählen, wann die Erfassung erfolgt, und kann SOL ausgeben, um fehlende Creator-ATAs zu erstellen. Der Aufrufer kann den Begünstigten nicht wählen, beliebige Token-Konten ersetzen, einen Teilbetrag anfordern oder die Creator-Gebühren-Konfiguration des Pools ändern.

Die neue Permission-PDA-Creator-Rolle kann einen Zugriff für jede `permission_authority` gewähren und zahlt die Miete des neuen Kontos. Sie kann diese PDA unter dieser Änderung nicht schließen. Behandeln Sie sie als delegierte Zugriffsvergabe-Autorität, nicht als vollständiger Permission-Administrator.

## Migrationsnoten

* Behalten Sie bestehende `CollectCreatorFee`-Transaktionen unverändert bei.
* Fügen Sie die erlaubnisfreie Anweisung nur nach der Zielbereitstellung von CPMM und dem Client-IDL hinzu, die sie enthalten.
* Automatisierung kann Pools mit nicht-Null `creator_fees_token_0` oder `creator_fees_token_1` scannen und die Erfassung ohne Verwahrung von Creator-Schlüsseln auslösen.
* Behandeln Sie `NoFeeCollect` als gutartiges Rennen, wenn ein anderer Aufrufer die Zähler zuerst leert.
* Übergeben Sie keine beliebigen Empfänger-Token-Konten; leiten Sie die Creator-ATAs von `pool_state.pool_creator`, jedem Vault-Mint und dem entsprechenden Token-Programm ab.

## Aktualisierte Seiten

* `products/cpmm/overview` — Creator-Gebühren-Erfassungs-Update und Ziel-Sicherheits-Zusammenfassung.
* `products/cpmm/instructions` — neue Anweisungs-Zusammenfassung, vollständige Kontoliste, Effekte und Zustandsänderungs-Matrix.
* `products/cpmm/accounts` — Creator-Gebühren-Zähler-Erfassungspfade und delegierte Permission-PDA-Erstellung.
* `products/cpmm/fees` — erlaubnisfreie Erfassungsmechanik und Betriebsfluss.
* `products/cpmm/code-demos` — SDK-Verfügbarkeitswarnung und Client-Migrations-Grenze.
* `products/launchlab/platform-config` — klargestellt, dass der eingetragene CPMM-Creator der Begünstigte bleibt, auch wenn ein anderer Zahler die Erfassung auslöst.
* `protocol-overview/shared-infrastructure` — autorität-gesteuerte und ziel-eingeschränkte Erfassungspfade.
* `security/admin-and-multisig` — delegierte Zugriffsvergabe-Autorität und erlaubnisfreie Collector-Grenzen.
* `reference/program-addresses` — kanonische dedizierte `CreatePermissionPda`-Besitzer-Adressen.
* `reference/error-codes` — erweiterter `NoFeeCollect` zur Abdeckung der Creator-Gebühren-Erfassung.

**Verifiziert 2026-08-13 gegen**:

* [`raydium-cp-swap` Zweig `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) und [`d99d542`](https://github.com/raydium-io/raydium-cp-swap/commit/d99d5420c65b973af05d4efa009a2a9d060461f9), verglichen mit `master` bei [`78f254e`](https://github.com/raydium-io/raydium-cp-swap/commit/78f254e1023751e706df7dc15c453fc3e046697c).

<Warning>
  Diese Verifizierung deckt den Quellzweig ab, nicht eine mainnet-beta-Bereitstellung. Bestätigen Sie das bereitgestellte Programm und die veröffentlichte IDL, bevor Sie den neuen Pfad in der Produktion aktivieren.
</Warning>
