> ## 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 öffnet Multi-Pool-Erstellung für alle

> CreatePermissionedPool wird in CreateCustomizablePoolV2 umbenannt und sein Permission-PDA-Gate wird entfernt, sodass jeder Zahler zusätzliche CLMM-Pools für dasselbe Paar und Gebührentier unter einer seed_index-abgeleiteten Adresse erstellen kann. Das Permission-Konto und die Admin-Instruktionen CreatePermissionPda / ClosePermissionPda werden gelöscht. Breaking für Clients, die die alte Instruktion aufrufen; keine Account-Layout oder Fehlercodes wurden geändert.

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

  [Englische Version ansehen →](/reference/changelog/2026-10-22-clmm-customizable-pool-v2)
</Info>

Dieser Eintrag behandelt ein CLMM-Programm-Upgrade, das für **2026-10-22** geplant ist. Es wurde vor der Bereitstellung gegen den Branch `feat/create-customizable-pool-v2` von `raydium-clmm` (Head `18f5db1`) verifiziert. Bestätigen Sie das bereitgestellte Programm, bevor Sie sich auf den neuen Instruktionsnamen oder die neue Account-Liste verlassen.

Das [Release vom 2026-07-30](/de/reference/changelog/2026-07-30-clmm-permissioned-pools) führte `CreatePermissionedPool` ein, mit dem ein Aufrufer mehr als einen Pool für dasselbe `(amm_config, token_mint_0, token_mint_1)` erstellen kann, indem ein `seed_index` in die Pool-PDA integriert wird. Es war gated: Der Zahler musste eine von einem Admin ausgestellte `Permission`-PDA halten.

Dieses Release entfernt dieses Gate. Die Instruktion wird in **`CreateCustomizablePoolV2`** umbenannt, jeder kann sie aufrufen, und die gesamte Permission-Maschinerie wird aus dem Programm gelöscht. Pool-Mathematik, Swap, Liquidität, Limit Orders, Gebühren und Rewards bleiben unverändert.

## TL;DR für Integratoren

* **`CreatePermissionedPool` → `CreateCustomizablePoolV2`.** Gleiche Argumente (`CreateCustomizableParams`, `seed_index: u16`) und gleiche Pool-Adress-Ableitung. Der Anchor-Diskriminator ändert sich mit dem Namen, daher schlägt eine gegen die alte Instruktion erstellte Transaktion nach dem Upgrade fehl. Erstellen Sie sie gegen die neue IDL neu.
* **Das `permission`-Konto ist weg aus der Account-Liste.** Es befand sich in Slot 3, daher rückt jedes Konto von `amm_config` an eine Position nach oben. Siehe [die neue Account-Liste](#createcustomizablepoolv2-account-list).
* **Multi-Pool-Erstellung ist jetzt erlaubnisfrei.** Jeder Zahler kann zusätzliche Pools für ein Paar und Gebührentier mit einem nicht-null `seed_index` erstellen. Behandeln Sie ein Paar als potenziell viele CLMM-Pools pro Gebührentier, erstellt von jedem.
* **`Permission`, `CreatePermissionPda` und `ClosePermissionPda` werden entfernt.** Das Programm und die IDL kennen den `Permission`-Typ nicht mehr.
* **Aktualisieren Sie Ihre IDL.** Sie verliert zwei Instruktionen und einen Account-Typ, für 37 Instruktionen und 53 Fehler.
* **Kein Account-Layout wurde geändert und kein Fehlercode wurde hinzugefügt.** `PoolState.seed_index` behält seinen Offset; nur seine Bedeutung erweitert sich von „genehmigter Pool" zu „jeder V2-Pool".

## Was sich im Programm geändert hat

### `CreatePermissionedPool` umbenannt zu `CreateCustomizablePoolV2`

Der Handler ist derselbe Code unter einem neuen Namen. Er:

* erfordert `seed_index > 0`;
* leitet den Pool unter `["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]` ab;
* nimmt dieselben `CreateCustomizableParams` wie `CreateCustomizablePool`, sodass einseitige Gebühren (`collect_fee_on`) und das Dynamic-Fee-Opt-in gleich funktionieren;
* wendet dieselben Token-2022-Support-Mint-Checks wie `CreatePool` an;
* zeichnet `pool_creator` als `pool_state.owner` auf und schreibt `seed_index` in `PoolState`;
* gibt `PoolCreatedEvent` aus.

Die `Permission`-PDA-Prüfung ist das einzige Verhalten, das entfernt wurde.

| | Alter Diskriminator | Neuer Diskriminator |
| - | - | - |
| Instruktion | `create_permissioned_pool` → `[36, 243, 179, 35, 42, 239, 53, 229]` | `create_customizable_pool_v2` → `[29, 172, 106, 188, 103, 45, 70, 100]` |

### `CreateCustomizablePoolV2` Account-Liste

| # | Konto | W | S | Notizen |
| - | - | - | - | - |
| 1 | `payer` | W | S | Zahlt Miete für jedes neue Konto. Jede Wallet. |
| 2 | `pool_creator` | | | Geschrieben zu `pool_state.owner`. Kein Unterzeichner und nicht geprüft. |
| 3 | `amm_config` | | | Gebührentier, an das der Pool gebunden ist. |
| 4 | `pool_state` | W | | `init` unter der `seed_index`-abgeleiteten PDA. |
| 5 | `token_mint_0` | | | Muss vor `token_mint_1` sortieren. |
| 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` | | | Programm, das `token_mint_0` besitzt. |
| 12 | `token_program_1` | | | Programm, das `token_mint_1` besitzt. |
| 13 | `system_program` | | | |
| 14 | `rent` | | | |

`remaining_accounts` sind unverändert: die Support-Mint-Registry-PDAs, wenn ein Token-2022-Mint sie benötigt, und die `DynamicFeeConfig` **zuletzt**, wenn `enable_dynamic_fee = true`.

<Warning>
  `pool_creator` ist nicht authentifiziert. Jeder Zahler kann jede Adresse in `pool_state.owner` schreiben. Diese Adresse erhält das Recht, `InitializeReward` auf dem Pool aufzurufen, kann aber nicht als Beweis dafür verwendet werden, wer ihn erstellt hat. Bewerten Sie, kennzeichnen Sie oder vertrauen Sie einem V2-Pool nicht aufgrund seines `owner`-Feldes.
</Warning>

### Entfernt: `Permission`, `CreatePermissionPda`, `ClosePermissionPda`

* Der `Permission`-Account-Typ (`["permission", authority]`, 280 Bytes) wird aus dem Programm gelöscht.
* `CreatePermissionPda` und `ClosePermissionPda` werden gelöscht, zusammen mit dem dedizierten `permission_pda_admin`-Schlüssel, der sie signieren konnte.
* Permission-PDAs, die vor dem Upgrade erstellt wurden, bleiben in der Chain. Das Programm liest sie nicht mehr und hat keine Instruktion, die sie schließt.

## Fehlercodes

Keine Änderung. `6000`–`6052` behalten ihre Nummern. `NotApproved` (`6000`) hat keinen Fall mehr für „Unterzeichner ist weder `admin` noch `permission_pda_admin`", da diese Instruktionen weg sind.

## Migrationsnoten

* **Pool-Ersteller.** Wechseln Sie von `CreatePermissionedPool` zu `CreateCustomizablePoolV2`, lassen Sie das `permission`-Konto weg und verschieben Sie die verbleibenden Konten um einen Slot nach oben. Sie benötigen keine Admin-Genehmigung mehr.
* **Indexer und Router.** Indexieren Sie CLMM-Pools aus `PoolCreatedEvent` oder durch Scannen von `PoolState`-Konten, nicht durch Ableitung der Vier-Seed-PDA. Speichern Sie `seed_index` für jeden Pool, bei dem er nicht null ist, da Sie ihn benötigen, um die Adresse neu abzuleiten. Erwarten Sie mehr nicht-kanonische Pools, da jetzt jeder sie erstellen kann, und nehmen Sie nicht an, dass der kanonische Pool der tiefste ist.
* **UIs.** Ein Paar und Gebührentier können viele Pools mit unterschiedlichen Startpreisen haben. Zeigen Sie Liquidität und die Pool-Adresse an, und präsentieren Sie einen Pool nicht als offiziell, weil sein `owner` es ist.
* **IDL-Konsumenten.** Entfernen Sie jeden Decoder oder Client-Code für `Permission`, `CreatePermissionPda` und `ClosePermissionPda`.

## Was sich nicht geändert hat

* **Jedes Account-Layout**, einschließlich `PoolState` (das `seed_index`-Feld und sein Offset sind gleich).
* **`CreatePool` und `CreateCustomizablePool`.** Sie erstellen immer noch den einzelnen kanonischen Pool pro Paar und Tier mit `seed_index = [0, 0]`.
* **Pools, die vor dem Upgrade durch `CreatePermissionedPool` erstellt wurden.** Ihre Adressen, Zustand und `seed_index` sind unverändert.
* **Fehlercodes, Swap-, Liquiditäts-, Gebühren-, Dynamic-Fee-, Reward- und Limit-Order-Verhalten.**
* **Programm-ID.**

## Aktualisierte Seiten

* `products/clmm/instructions`: Upgrade-Banner; Inventar- und Admin-Gating-Zeilen; `CreateCustomizablePoolV2`-Abschnitt mit der neuen Account-Liste.
* `products/clmm/accounts`: `Permission` aus dem Inventar entfernt und als veraltet dokumentiert; `seed_index`-Beschreibung; PDA-Helfer in `deriveCustomizablePoolV2` umbenannt; Lebenszykluszeilen.
* `products/clmm/overview`: „What's new"-Notiz.
* `security/admin-and-multisig`: `permission_pda_admin`-Rolle aus der CLMM-Tabelle entfernt.
* `reference/error-codes`: `NotApproved`-Beschreibung.
* `reference/token-2022-support`: CLMM-Pool-Erstellungspfade.
* `sdk-api/anchor-idl`: CLMM-Instruktionszahl.
* `protocol-overview/versions-and-migration`: CLMM-Upgrade-Verlauf-Punkt.

**Verifiziert gegen**: `raydium-clmm` Branch `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`, und die gelöschten `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.