> ## 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 öffnet die Creator-Gebühr für jeden Pool-Creator

> CPMM fügt InitializeV2 hinzu, eine berechtigungsfreie Anweisung zur Pool-Erstellung, die ein optionales Argument creator_fee_on nimmt. Jeder Creator kann nun die Creator-Gebühr aktivieren und ihre Seite wählen, ohne Permission-PDA. Initialize, InitializeWithPermission und jede andere Anweisung bleiben unverändert. Additiv: kein Account-Layout, kein Fehlercode und keine bestehende Kontoliste wurde geändert.

> [!NOTE]
>
> **Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.**
>
> [Englische Version ansehen →](https://docs.raydium.io/reference/changelog/2026-10-30-cpmm-initialize-v2.md)

> [!NOTE]
>
> Dieser Eintrag behandelt ein CPMM-Programm-Upgrade, das für **2026-10-30** geplant ist. Er wurde vor der Bereitstellung gegen den Branch `feat/initialize-v2` von `raydium-cp-swap` (Head `40cbd81`) verifiziert. Bestätigen Sie das bereitgestellte Programm, bevor Sie sich auf die neue Anweisung verlassen.

Jeder CPMM-Pool hat ein `enable_creator_fee`-Flag und eine `creator_fee_on`-Seite, beide bei der Erstellung festgelegt. Bisher konnte ein Creator sie nur über `InitializeWithPermission` setzen, das eine vom Admin ausgestellte `Permission`-PDA benötigt. Das öffentliche `Initialize` speicherte die Gebühr immer als deaktiviert. In der Praxis konnten nur LaunchLab-Graduierungen und andere gated Flows einen Pool erstellen, der eine Creator-Gebühr erhebt.

Dieses Release fügt **`InitializeV2`** hinzu. Es ist `Initialize` mit einem zusätzlichen Argument, `creator_fee_on: Option<CreatorFeeOn>`, und jeder kann es aufrufen. Pool-Mathematik, Swap, Liquidität, Gebührenerhebung und der Protokollanteil der Creator-Gebühr sind unberührt.

## TL;DR für Integratoren

* **Neue Anweisung: `InitializeV2`.** Berechtigungsfrei. Die Argumente sind `init_amount_0`, `init_amount_1`, `open_time` und `creator_fee_on: Option<CreatorFeeOn>`. Diskriminator `[67, 153, 175, 39, 218, 16, 38, 32]`.
* **`Some(side)` aktiviert die Creator-Gebühr auf dieser Seite; `None` lässt sie deaktiviert.** `None` speichert genau das, was `Initialize` speichert.
* **Dieselben Konten wie `Initialize`, ohne `rent`.** Die ersten 19 Konten sind identisch und in derselben Reihenfolge. Siehe [die Kontoliste](https://docs.raydium.io/de/products/cpmm/instructions.md#initializev2).
* **Der Creator ist der Unterzeichner.** `pool_state.pool_creator` ist der signierende `creator`. Anders als bei `InitializeWithPermission` kann der Begünstigte nicht auf eine andere Adresse gesetzt werden.
* **Der Creator wählt Ein/Aus und die Seite, nicht den Satz.** Der Pool erhebt die `AmmConfig.creator_fee_rate` seines Gebührentiers. Dieser Satz ist standardmäßig `0`, daher sammelt ein aktivierter Pool auf einem solchen Tier nichts an.
* **Nichts Bestehendes hat sich geändert.** `Initialize` und `InitializeWithPermission` behalten ihre Diskriminatoren, Konten, Argumente und ihr Verhalten. Kein Account-Layout und kein Fehlercode hat sich geändert.
* **Aktualisieren Sie Ihre IDL**, um die neue Anweisung zu erhalten. Clients, die sie nie aufrufen, benötigen keine Änderung.

## Was sich im Programm geändert hat

### Neue Anweisung: `InitializeV2`

`InitializeV2` führt denselben Erstellungscode wie `Initialize` aus. Es:

* akzeptiert entweder die kanonische Pool-PDA oder ein signiertes zufälliges Keypair als `pool_state`;
* wendet dieselbe Token-2022-Allowlist und dieselben `SupportMintAssociated`-Prüfungen über `remaining_accounts` an;
* lehnt die Erstellung ab, wenn `amm_config.disable_create_pool` gesetzt ist;
* erhöht `open_time` auf `block_timestamp + 1`, wenn es nicht in der Zukunft liegt;
* sperrt 100 LP-Basiseinheiten und prägt den Rest an den Creator;
* erhebt `amm_config.create_pool_fee`.

Der einzige Unterschied ist, was es in den neuen `PoolState` schreibt:

| `creator_fee_on`-Argument | Borsh-Bytes | `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` |

Ein ungültiges Tag- oder Varianten-Byte lässt die Argument-Deserialisierung von Anchor fehlschlagen. Es ist kein neuer Fehlercode beteiligt.

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

### Vergleich der drei Erstellungspfade

| | `Initialize` | `InitializeV2` | `InitializeWithPermission` |
| - | - | - | - |
| Wer kann aufrufen | Jeder | Jeder | Inhaber einer `Permission`-PDA |
| Creator-Gebühr | Immer aus | Wahl des Creators | Immer an |
| Seite (`creator_fee_on`) | `BothToken` (ungenutzt) | Wahl des Creators | Wahl des Aufrufers |
| Aufgezeichneter `pool_creator` | Signierender `creator` | Signierender `creator` | Separates `creator`-Konto, kein Unterzeichner |
| Zahler | `creator` | `creator` | Separater `payer` |
| Abschließende `rent`-Sysvar | Ja | Nein | Nein |

### Internes Refactoring

Die drei Handler teilen sich nun eine `initialize_pool`-Routine. Das Refactoring ändert weder die Konten, Argumente, Prüfungen noch die gespeicherten Werte von `Initialize` oder `InitializeWithPermission`. Die neuen Tests prüfen außerdem, dass ein einfaches `Initialize` auf derselben Config die Creator-Gebühr weiterhin als deaktiviert speichert.

## Was Creators wissen sollten

* **Prüfen Sie zuerst das Gebührentier.** Der Creator-Gebührensatz gehört zur `AmmConfig`, nicht zum Pool. Wählen Sie ein Tier, dessen `creator_fee_rate` dem entspricht, was Sie erheben möchten. Die Sätze sind in [`products/cpmm/fees`](https://docs.raydium.io/de/products/cpmm/fees) aufgeführt.
* **Die Wahl ist dauerhaft.** Keine Anweisung ändert `enable_creator_fee` oder `creator_fee_on` nach der Erstellung. Um sie zu ändern, müssen Sie einen neuen Pool erstellen.
* **Trader zahlen sie zusätzlich zur Handelsgebühr.** Die Creator-Gebühr ist ein separater Satz, der zum Swap hinzukommt. Sie reduziert nicht die LP-, Protokoll- oder Fonds-Anteile, macht den Pool aber teurer zu handeln als einen Pool auf demselben Tier mit deaktivierter Gebühr.
* **Die Erhebung ist unverändert.** Verwenden Sie `CollectCreatorFee` oder `CollectCreatorFeePermissionless`. Der Protokollanteil aus dem [Release vom 2026-09-19](https://docs.raydium.io/de/reference/changelog/2026-09-19-cpmm-creator-fee-protocol-share.md) gilt, und Sie können ihn bei der Erstellung nicht abwählen.

## Migrationsnotizen

* **Pool-Creators.** Wechseln Sie nur dann von `Initialize` zu `InitializeV2`, wenn Sie die Creator-Gebühr aktivieren möchten. Übergeben Sie `Some(side)` und entfernen Sie das `rent`-Konto. `Initialize` funktioniert weiterhin.
* **SDK-Nutzer.** `raydium.cpmm.createPool` in `@raydium-io/raydium-sdk-v2@0.2.64-alpha` baut `Initialize`. Bis ein Release einen `InitializeV2`-Builder mitliefert, kodieren Sie es aus der aktualisierten IDL.
* **Indexer und Router.** Rechnen Sie mit mehr Pools mit `enable_creator_fee = true`, die von gewöhnlichen Wallets statt von LaunchLab erstellt werden. Quoten Sie anhand von `enable_creator_fee` und `creator_fee_on` des jeweiligen Pools, niemals allein anhand des Erstellungspfads oder des Tiers. Dekodieren Sie die neue Anweisung, wenn Sie die Pool-Erstellung anhand von Anweisungen verfolgen. Das Verfolgen über `PoolState`-Konten erfordert keine Änderung.
* **UIs.** Zeigen Sie an, ob ein Pool eine Creator-Gebühr erhebt und zu welchem Satz, da sich zwei Pools auf demselben Tier nun unterscheiden können.
* **LaunchLab und andere berechtigte Flows.** Keine Änderung. `InitializeWithPermission` bleibt der Pfad, wenn sich Zahler und aufgezeichneter Creator unterscheiden müssen.

## Was sich nicht geändert hat

* **Jedes Account-Layout**, einschließlich `PoolState` und `AmmConfig`.
* **`Initialize` und `InitializeWithPermission`**: Diskriminatoren, Konten, Argumente und gespeicherte Werte.
* **`Permission`, `CreatePermissionPda` und `ClosePermissionPda`.**
* **Swap-, Deposit- und Withdraw-Mathematik**, die Erhebung der Creator-Gebühr und der Protokollanteil der Creator-Gebühr.
* **Fehlercodes.** `6000`–`6015` sind unverändert; nichts angehängt.
* **Programm-ID.**

## Aktualisierte Seiten

* `products/cpmm/instructions`: Upgrade-Banner; Zeilen in Übersicht und Zustandsänderungsmatrix; neuer `InitializeV2`-Abschnitt mit Argumenten, Kodierung und Kontoliste; die `Initialize`-Nachbedingung verweist nun auf `InitializeV2`.
* `products/cpmm/fees`: Der Abschnitt „Creator-Gebühr" listet alle drei Erstellungspfade auf und weist darauf hin, dass das Aktivieren der Gebühr nicht ihren Satz festlegt.
* `products/cpmm/accounts`: `poolState`- und Pool-ID-Hinweise; Feldhinweise zu `creator_fee_on` / `enable_creator_fee`; `Permission`-Hinweis; Zeile zum Konto-Lebenszyklus.
* `products/cpmm/overview`: „What's new"-Callout und der Punkt „Vorhersehbare Gebühren".
* `products/cpmm/code-demos`: Hinweis, dass `createPool` `Initialize` baut, und wie man `InitializeV2` erreicht.
* `protocol-overview/shared-infrastructure`: Creator-Gebühren sind nicht mehr auf LaunchLab-graduierte Pools beschränkt.
* `reference/token-2022-support`: CPMM-Pool-Erstellungspfade.

**Verifiziert gegen**: `raydium-cp-swap` Branch `feat/initialize-v2` (`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` und `tests/initialize_v2.test.ts`.


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