> ## 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 menambahkan instruksi yang dibatasi destinasi, memungkinkan siapa pun untuk menyapu biaya kreator ke ATA kanonik pemilik pool, dan mendelegasikan pembuatan Permission PDA tanpa mendelegasikan pencabutan.

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

  [Lihat versi bahasa Inggris →](/reference/changelog/2026-08-17-cpmm-permissionless-creator-fee-collection)
</Info>

<Info>
  Entri changelog dokumentasi untuk pembaruan program CPMM yang akan datang. Untuk indeks semua pembaruan, lihat [`reference/changelog`](/id/reference/changelog). Untuk garis waktu historis protokol itu sendiri, lihat [`introduction/history-and-milestones`](/id/introduction/history-and-milestones).
</Info>

Rilis ini menambahkan jalur operasional tanpa izin untuk pengumpulan biaya kreator. Siapa pun dapat membayar untuk memicu penyapuan, tetapi program menetapkan pemilik penerima ke `PoolState.pool_creator` dan menetapkan kedua destinasi ke akun token terkait kanonik kreator tersebut. Instruksi yang ditandatangani kreator yang ada tetap tidak berubah.

Ini juga memungkinkan otoritas khusus untuk membuat CPMM `Permission` PDA. Delegasi ini sengaja asimetris: otoritas khusus dapat memberikan akses ke `InitializeWithPermission`, sementara hanya admin program yang dapat mencabut hibah dengan `ClosePermissionPda`.

## TL;DR untuk integrator

* **Instruksi aditif baru: `CollectCreatorFeePermissionless`.** Penanda apa pun dapat menjadi `payer`. Pemilik pool yang tercatat tidak menandatangani.
* **Pemanggil tidak dapat mengalihkan dana.** `creator` harus sama dengan `pool_state.pool_creator`. `creator_token_0` dan `creator_token_1` harus berupa ATA kanonik kreator tersebut untuk mint vault pool dan program token masing-masing.
* **Pembayar mencakup ATA yang hilang.** Kedua akun penerima menggunakan `init_if_needed`; pembayar mendanai sewa ketika salah satu akun tidak ada.
* **Pengumpulan adalah semua atau tidak sama sekali.** Instruksi mentransfer kedua penghitung biaya kreator yang terkumpul, mengosongkan keduanya, dan memperbarui `recent_epoch`. Ini mengembalikan kesalahan `NoFeeCollect` yang ada ketika kedua penghitung adalah nol.
* **Integrasi yang ada tetap kompatibel.** `CollectCreatorFee` tidak dimodifikasi atau dihapus. Tidak ada perubahan tata letak `PoolState`, `AmmConfig`, `Permission`, acara, atau kode kesalahan.
* **Pembuatan Permission memiliki pemilik kedua.** `CreatePermissionPda` menerima admin program atau pemilik create-permission-PDA khusus. `ClosePermissionPda` tetap hanya admin.

## Akun instruksi baru

`CollectCreatorFeePermissionless` mengambil 14 akun dalam urutan ini:

| #     | Akun                                 | Batasan atau peran                                                      |
| ----- | ------------------------------------ | ----------------------------------------------------------------------- |
| 1     | `payer`                              | Penanda yang dapat ditulis; mendanai ATA kreator yang hilang.           |
| 2     | `creator`                            | Harus sama dengan `pool_state.pool_creator`; tidak menandatangani.      |
| 3     | `authority`                          | CPMM global vault authority PDA.                                        |
| 4     | `pool_state`                         | Dapat ditulis; menyimpan penghitung biaya kreator.                      |
| 5–6   | `token_0_vault`, `token_1_vault`     | Dapat ditulis; harus cocok dengan vault yang disimpan di pool.          |
| 7–8   | `vault_0_mint`, `vault_1_mint`       | Harus cocok dengan mint vault yang sesuai.                              |
| 9–10  | `creator_token_0`, `creator_token_1` | ATA kreator kanonik yang dapat ditulis; diinisialisasi jika diperlukan. |
| 11–12 | `token_0_program`, `token_1_program` | SPL Token atau Token-2022 untuk setiap mint.                            |
| 13    | `associated_token_program`           | Membuat ATA kreator yang hilang.                                        |
| 14    | `system_program`                     | Mendukung pembuatan akun yang didanai pembayar.                         |

Tidak seperti `CollectCreatorFee`, tata letak baru memiliki akun `payer` dan `creator` yang tidak menandatangani secara terpisah dan tidak mengambil `amm_config`. Oleh karena itu, ini memerlukan diskriminator dan builder-nya sendiri.

## Dampak SDK dan IDL

Cabang sumber program tidak menyertakan pembaruan SDK atau IDL yang berkomitmen. Integrator harus menyegarkan IDL CPMM yang digunakan atau menggunakan rilis klien yang secara eksplisit mendukung `CollectCreatorFeePermissionless`. Set builder `@raydium-io/raydium-sdk-v2@0.2.42-alpha` yang disematkan dokumentasi hanya mencakup jalur yang ditandatangani kreator asli.

## Batas keamanan

Invokasi tanpa izin tidak berarti penjagaan tanpa izin. Pemanggil dapat memilih kapan harus mengumpulkan dan dapat mengeluarkan SOL untuk membuat ATA kreator yang hilang. Pemanggil tidak dapat memilih penerima manfaat, mengganti akun token arbitrer, meminta jumlah sebagian, atau mengubah konfigurasi biaya kreator pool.

Peran kreator permission-PDA baru dapat membuat hibah untuk `permission_authority` apa pun, dan membayar sewa akun baru. Ini tidak dapat menutup PDA tersebut di bawah perubahan ini. Perlakukan sebagai otoritas hibah yang didelegasikan, bukan administrator izin penuh.

## Catatan migrasi

* Pertahankan transaksi `CollectCreatorFee` yang ada tanpa perubahan.
* Tambahkan instruksi tanpa izin hanya setelah penerapan CPMM target dan IDL klien menyertakannya.
* Otomasi dapat memindai pool dengan `creator_fees_token_0` atau `creator_fees_token_1` bukan nol dan memicu pengumpulan tanpa penjagaan kunci kreator.
* Tangani `NoFeeCollect` sebagai perlombaan yang jinak ketika pemanggil lain menguras penghitung terlebih dahulu.
* Jangan meneruskan akun token penerima arbitrer; turunkan ATA kreator dari `pool_state.pool_creator`, setiap mint vault, dan program token yang cocok.

## Halaman yang diperbarui

* `products/cpmm/overview` — pembaruan pengumpulan biaya kreator dan ringkasan keselamatan destinasi.
* `products/cpmm/instructions` — ringkasan instruksi baru, daftar akun lengkap, efek, dan matriks perubahan status.
* `products/cpmm/accounts` — jalur pengumpulan penghitung biaya kreator dan pembuatan Permission PDA yang didelegasikan.
* `products/cpmm/fees` — mekanika pengumpulan tanpa izin dan alur operasional.
* `products/cpmm/code-demos` — peringatan ketersediaan SDK dan batas migrasi klien.
* `products/launchlab/platform-config` — klarifikasi bahwa kreator CPMM yang tercatat tetap menjadi penerima manfaat bahkan ketika pembayar lain memicu pengumpulan.
* `protocol-overview/shared-infrastructure` — jalur pengumpulan yang dibatasi otoritas dan destinasi.
* `security/admin-and-multisig` — otoritas hibah yang didelegasikan dan batas kolektor tanpa izin.
* `reference/program-addresses` — alamat pemilik `CreatePermissionPda` khusus kanonik.
* `reference/error-codes` — `NoFeeCollect` yang diperluas untuk mencakup pengumpulan biaya kreator.

**Diverifikasi 2026-08-13 terhadap**:

* [`raydium-cp-swap` cabang `feat/permissionless-collect-creator-fee`](https://github.com/raydium-io/raydium-cp-swap/tree/feat/permissionless-collect-creator-fee).
* Komit [`9585ea1`](https://github.com/raydium-io/raydium-cp-swap/commit/9585ea1efeb27be7be7eab1ebc033449f9c793b4) dan [`d99d542`](https://github.com/raydium-io/raydium-cp-swap/commit/d99d5420c65b973af05d4efa009a2a9d060461f9), dibandingkan dengan `master` di [`78f254e`](https://github.com/raydium-io/raydium-cp-swap/commit/78f254e1023751e706df7dc15c453fc3e046697c).

<Warning>
  Verifikasi ini mencakup cabang sumber, bukan penerapan mainnet-beta. Konfirmasi program yang digunakan dan IDL yang dipublikasikan sebelum mengaktifkan jalur baru dalam produksi.
</Warning>
