> ## 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 membuka pembuatan multi-pool untuk semua orang

> CreatePermissionedPool diganti nama menjadi CreateCustomizablePoolV2 dan gerbang Permission PDA-nya dihapus, sehingga pembayar apa pun dapat membuat pool CLMM tambahan untuk pasangan dan tingkat biaya yang sama di alamat yang diturunkan dari seed_index. Akun Permission dan instruksi admin CreatePermissionPda / ClosePermissionPda dihapus. Perubahan breaking untuk klien yang memanggil instruksi lama; tidak ada tata letak akun atau kode kesalahan yang berubah.

<Info>
  **Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.**

  [Lihat versi bahasa Inggris →](/reference/changelog/2026-10-22-clmm-customizable-pool-v2)
</Info>

<Info>
  Entri ini mencakup upgrade program CLMM yang dijadwalkan untuk **2026-10-22**. Ini diverifikasi terhadap branch `feat/create-customizable-pool-v2` dari `raydium-clmm` (head `18f5db1`) sebelum deployment. Konfirmasi program yang di-deploy sebelum mengandalkan nama instruksi baru atau daftar akun.
</Info>

Rilis [2026-07-30](/id/reference/changelog/2026-07-30-clmm-permissioned-pools) menambahkan `CreatePermissionedPool`, yang memungkinkan pemanggil membuat lebih dari satu pool untuk `(amm_config, token_mint_0, token_mint_1)` yang sama dengan melipat `seed_index` ke dalam pool PDA. Ini memiliki gerbang: pembayar harus memegang `Permission` PDA yang dikeluarkan oleh admin.

Rilis ini menghapus gerbang tersebut. Instruksi diganti nama menjadi **`CreateCustomizablePoolV2`**, siapa pun dapat memanggilnya, dan seluruh mesin permission dihapus dari program. Matematika pool, swap, likuiditas, limit order, biaya, dan reward tidak berubah.

## TL;DR untuk integrator

* **`CreatePermissionedPool` → `CreateCustomizablePoolV2`.** Argumen yang sama (`CreateCustomizableParams`, `seed_index: u16`) dan derivasi alamat pool yang sama. Diskriminator Anchor berubah dengan nama, jadi transaksi yang dibangun terhadap instruksi lama gagal setelah upgrade. Bangun ulang terhadap IDL baru.
* **Akun `permission` hilang dari daftar akun.** Akun ini berada di slot 3, jadi setiap akun dari `amm_config` ke depan bergeser naik satu posisi. Lihat [daftar akun baru](#createcustomizablepoolv2-account-list).
* **Pembuatan multi-pool sekarang tanpa izin.** Pembayar apa pun dapat membuat pool tambahan untuk pasangan dan tingkat biaya dengan `seed_index` bukan nol. Perlakukan pasangan sebagai berpotensi memiliki banyak pool CLMM per tingkat biaya, dibuat oleh siapa pun.
* **`Permission`, `CreatePermissionPda` dan `ClosePermissionPda` dihapus.** Program dan IDL tidak lagi mengenal tipe `Permission`.
* **Segarkan IDL Anda.** Ini menghapus dua instruksi dan satu tipe akun, untuk 37 instruksi dan 53 kesalahan.
* **Tidak ada tata letak akun yang berubah dan tidak ada kode kesalahan yang ditambahkan.** `PoolState.seed_index` mempertahankan offsetnya; hanya maknanya yang meluas dari "pool dengan izin" menjadi "pool V2 apa pun".

## Apa yang berubah dalam program

### `CreatePermissionedPool` diganti nama menjadi `CreateCustomizablePoolV2`

Handler adalah kode yang sama dengan nama baru. Masih:

* memerlukan `seed_index > 0`;
* menurunkan pool di `["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]`;
* mengambil `CreateCustomizableParams` yang sama seperti `CreateCustomizablePool`, jadi biaya satu sisi (`collect_fee_on`) dan opt-in biaya dinamis bekerja dengan cara yang sama;
* menerapkan pemeriksaan dukungan mint Token-2022 yang sama seperti `CreatePool`;
* mencatat `pool_creator` sebagai `pool_state.owner` dan menulis `seed_index` ke dalam `PoolState`;
* memancarkan `PoolCreatedEvent`.

Pemeriksaan Permission PDA adalah satu-satunya perilaku yang dihapus.

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

### Daftar akun `CreateCustomizablePoolV2`

| # | Akun | W | S | Catatan |
| - | - | - | - | - |
| 1 | `payer` | W | S | Membayar sewa untuk setiap akun baru. Dompet apa pun. |
| 2 | `pool_creator` | | | Ditulis ke `pool_state.owner`. Bukan penanda tangan dan tidak diperiksa. |
| 3 | `amm_config` | | | Tingkat biaya yang diikat pool. |
| 4 | `pool_state` | W | | `init` di PDA yang diturunkan dari `seed_index`. |
| 5 | `token_mint_0` | | | Harus diurutkan sebelum `token_mint_1`. |
| 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` | | | Program yang memiliki `token_mint_0`. |
| 12 | `token_program_1` | | | Program yang memiliki `token_mint_1`. |
| 13 | `system_program` | | | |
| 14 | `rent` | | | |

`remaining_accounts` tidak berubah: PDA registri support-mint ketika mint Token-2022 membutuhkannya, dan `DynamicFeeConfig` **terakhir** ketika `enable_dynamic_fee = true`.

<Warning>
  `pool_creator` tidak diautentikasi. Pembayar apa pun dapat menulis alamat apa pun ke dalam `pool_state.owner`. Alamat tersebut mendapatkan hak untuk memanggil `InitializeReward` di pool, tetapi tidak dapat digunakan sebagai bukti siapa yang membuatnya. Jangan menilai, memberi label, atau mempercayai pool V2 berdasarkan bidang `owner`-nya.
</Warning>

### Dihapus: `Permission`, `CreatePermissionPda`, `ClosePermissionPda`

* Tipe akun `Permission` (`["permission", authority]`, 280 byte) dihapus dari program.
* `CreatePermissionPda` dan `ClosePermissionPda` dihapus, bersama dengan kunci `permission_pda_admin` khusus yang dapat menandatanganinya.
* Permission PDA yang dibuat sebelum upgrade tetap berada di chain. Program tidak lagi membacanya dan tidak lagi memiliki instruksi yang menutupnya.

## Kode kesalahan

Tidak ada perubahan. `6000`–`6052` mempertahankan nomor mereka. `NotApproved` (`6000`) tidak lagi memiliki kasus "penanda tangan bukan `admin` maupun `permission_pda_admin`", karena instruksi tersebut hilang.

## Catatan migrasi

* **Pembuat pool.** Beralih dari `CreatePermissionedPool` ke `CreateCustomizablePoolV2`, lepaskan akun `permission`, dan geser akun yang tersisa naik satu slot. Anda tidak lagi memerlukan hibah admin.
* **Indexer dan router.** Indeks pool CLMM dari `PoolCreatedEvent` atau dengan memindai akun `PoolState`, bukan dengan menurunkan PDA empat-seed. Simpan `seed_index` untuk pool apa pun di mana nilainya bukan nol, karena Anda membutuhkannya untuk menurunkan ulang alamat. Harapkan lebih banyak pool non-kanonik sekarang bahwa siapa pun dapat membuatnya, dan jangan asumsikan pool kanonik adalah yang terdalam.
* **UI.** Pasangan dan tingkat biaya dapat memiliki banyak pool dengan harga awal yang berbeda. Tampilkan likuiditas dan alamat pool, dan jangan sajikan pool sebagai resmi karena `owner`-nya.
* **Konsumen IDL.** Hapus kode decoder atau klien apa pun untuk `Permission`, `CreatePermissionPda` dan `ClosePermissionPda`.

## Apa yang tidak berubah

* **Setiap tata letak akun**, termasuk `PoolState` (bidang `seed_index` dan offsetnya sama).
* **`CreatePool` dan `CreateCustomizablePool`.** Mereka masih membuat pool kanonik tunggal per pasangan dan tingkat, dengan `seed_index = [0, 0]`.
* **Pool yang dibuat melalui `CreatePermissionedPool` sebelum upgrade.** Alamat, status, dan `seed_index` mereka tidak berubah.
* **Kode kesalahan, swap, likuiditas, biaya, biaya dinamis, reward, dan perilaku limit order.**
* **ID Program.**

## Halaman yang diperbarui

* `products/clmm/instructions`: banner upgrade; baris inventaris dan gating admin; bagian `CreateCustomizablePoolV2` dengan daftar akun baru.
* `products/clmm/accounts`: `Permission` dihapus dari inventaris dan didokumentasikan sebagai pensiun; deskripsi `seed_index`; pembantu PDA diganti nama menjadi `deriveCustomizablePoolV2`; baris siklus hidup.
* `products/clmm/overview`: catatan "Apa yang baru".
* `security/admin-and-multisig`: peran `permission_pda_admin` dihapus dari tabel CLMM.
* `reference/error-codes`: deskripsi `NotApproved`.
* `reference/token-2022-support`: jalur pembuatan pool CLMM.
* `sdk-api/anchor-idl`: jumlah instruksi CLMM.
* `protocol-overview/versions-and-migration`: poin riwayat upgrade CLMM.

**Diverifikasi terhadap**: branch `raydium-clmm` `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`, dan `admin/create_permission_pda.rs`, `admin/close_permission_pda.rs`, `states/permission.rs` yang dihapus.


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