> ## 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 向所有池創作者開放創作者費用

> CPMM 新增 InitializeV2，這是一個接受可選 creator_fee_on 參數的無需許可池創建指令。任何創作者現在都可以在沒有 Permission PDA 的情況下啟用創作者費用並選擇其收取側。Initialize、InitializeWithPermission 和所有其他指令均未改變。純增量變更：沒有帳戶佈局、錯誤代碼或現有帳戶列表改變。

> [!NOTE]
>
> **本頁內容由 AI 自動翻譯，所有內容以英文版本為準。**
>
> [查看英文版 →](https://docs.raydium.io/reference/changelog/2026-10-30-cpmm-initialize-v2.md)

> [!NOTE]
>
> 本條目涵蓋計劃於 **2026-10-30** 進行的 CPMM 程式升級。部署前已針對 `raydium-cp-swap` 的 `feat/initialize-v2` 分支（頭部 `40cbd81`）進行驗證。在依賴新指令之前，請確認已部署的程式。

每個 CPMM 池都有一個 `enable_creator_fee` 標誌和一個 `creator_fee_on` 收取側，兩者都在創建時固定。在此之前，創作者只能透過 `InitializeWithPermission` 設定它們，而這需要管理員簽發的 `Permission` PDA。公開的 `Initialize` 始終將費用儲存為停用。實際上，只有 LaunchLab 畢業和其他受限流程才能創建收取創作者費用的池。

此版本新增 **`InitializeV2`**。它就是多了一個參數 `creator_fee_on: Option<CreatorFeeOn>` 的 `Initialize`，任何人都可以呼叫。池數學、交換、流動性、費用收取以及創作者費用的協議份額均未改動。

## 整合者速覽

* **新指令：`InitializeV2`。** 無需許可。參數為 `init_amount_0`、`init_amount_1`、`open_time` 和 `creator_fee_on: Option<CreatorFeeOn>`。判別器 `[67, 153, 175, 39, 218, 16, 38, 32]`。
* **`Some(side)` 在該側啟用創作者費用；`None` 保持關閉。** `None` 儲存的內容與 `Initialize` 完全相同。
* **帳戶與 `Initialize` 相同，但移除了 `rent`。** 前 19 個帳戶完全相同，順序也相同。見[帳戶清單](https://docs.raydium.io/zh-Hant/products/cpmm/instructions.md#initializev2)。
* **創作者就是簽署者。** `pool_state.pool_creator` 是簽署的 `creator`。與 `InitializeWithPermission` 不同，受益人不能被設定為其他地址。
* **創作者選擇的是開/關和收取側，而不是費率。** 池收取其費用等級的 `AmmConfig.creator_fee_rate`。該費率預設為 `0`，因此在這樣的等級上已啟用的池不會累積任何費用。
* **現有內容均未改變。** `Initialize` 和 `InitializeWithPermission` 保留其判別器、帳戶、參數和行為。沒有帳戶佈局或錯誤代碼改變。
* **刷新你的 IDL** 以取得新指令。從不呼叫它的客戶端無需任何更改。

## 程式中的變更

### 新指令：`InitializeV2`

`InitializeV2` 執行與 `Initialize` 相同的創建程式碼。它：

* 接受規範池 PDA 或已簽署的隨機金鑰對作為 `pool_state`；
* 透過 `remaining_accounts` 套用相同的 Token-2022 允許清單和 `SupportMintAssociated` 檢查；
* 當設定了 `amm_config.disable_create_pool` 時拒絕創建；
* 當 `open_time` 不在未來時，將其提升到 `block_timestamp + 1`；
* 鎖定 100 個 LP 基礎單位，並將其餘部分鑄造給創作者；
* 收取 `amm_config.create_pool_fee`。

唯一的區別是它寫入新 `PoolState` 的內容：

| `creator_fee_on` 參數 | Borsh 位元組 | `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` |

無效的標籤位元組或變體位元組會在 Anchor 的參數反序列化階段失敗。不涉及新的錯誤代碼。

| | 判別器 |
| - | - |
| `initialize`（未改變） | `[175, 175, 109, 31, 13, 152, 155, 237]` |
| `initialize_with_permission`（未改變） | `[63, 55, 254, 65, 49, 178, 89, 121]` |
| `initialize_v2`（新增） | `[67, 153, 175, 39, 218, 16, 38, 32]` |

### 三條創建路徑的比較

| | `Initialize` | `InitializeV2` | `InitializeWithPermission` |
| - | - | - | - |
| 誰可以呼叫 | 任何人 | 任何人 | `Permission` PDA 持有者 |
| 創作者費用 | 始終關閉 | 由創作者選擇 | 始終開啟 |
| 收取側（`creator_fee_on`） | `BothToken`（未使用） | 由創作者選擇 | 由呼叫者選擇 |
| 記錄的 `pool_creator` | 簽署的 `creator` | 簽署的 `creator` | 單獨的 `creator` 帳戶，非簽署者 |
| 支付者 | `creator` | `creator` | 單獨的 `payer` |
| 末尾的 `rent` sysvar | 有 | 無 | 無 |

### 內部重構

三個處理程式現在共用同一個 `initialize_pool` 常式。此重構不會改變 `Initialize` 或 `InitializeWithPermission` 的帳戶、參數、檢查或儲存的值。新測試還會檢查在同一配置上普通的 `Initialize` 仍將創作者費用儲存為停用。

## 創作者需要了解的內容

* **先檢查費用等級。** 創作者費率屬於 `AmmConfig`，而不是池。請選擇一個 `creator_fee_rate` 正是你想收取的費率的等級。費率列於 [`products/cpmm/fees`](https://docs.raydium.io/zh-Hant/products/cpmm/fees)。
* **這一選擇是永久性的。** 創建後沒有任何指令可以更改 `enable_creator_fee` 或 `creator_fee_on`。如需更改，你必須創建一個新池。
* **交易者在交易費之外支付它。** 創作者費用是加在交換上的單獨費率。它不會減少 LP、協議或基金的份額，但確實會使該池的交易成本高於同一等級上關閉費用的池。
* **收取方式未改變。** 使用 `CollectCreatorFee` 或 `CollectCreatorFeePermissionless`。[2026-09-19 版本](https://docs.raydium.io/zh-Hant/reference/changelog/2026-09-19-cpmm-creator-fee-protocol-share.md)的協議份額適用，並且你無法在創建時選擇退出。

## 遷移說明

* **池創作者。** 僅當你希望開啟創作者費用時，才從 `Initialize` 切換到 `InitializeV2`。傳遞 `Some(side)` 並移除 `rent` 帳戶。`Initialize` 仍然可用。
* **SDK 使用者。** `@raydium-io/raydium-sdk-v2@0.2.64-alpha` 中的 `raydium.cpmm.createPool` 構建的是 `Initialize`。在某個版本提供 `InitializeV2` 構建器之前，請根據更新後的 IDL 對其進行編碼。
* **索引器和路由器。** 預計會有更多 `enable_creator_fee = true` 的池，由普通錢包而非 LaunchLab 創建。始終根據每個池自身的 `enable_creator_fee` 和 `creator_fee_on` 報價，而不要僅根據創建路徑或等級。如果你透過指令追蹤池創建，請解碼新指令。透過 `PoolState` 帳戶追蹤則無需更改。
* **UI。** 顯示池是否收取創作者費用以及費率，因為同一等級上的兩個池現在可能不同。
* **LaunchLab 和其他需要許可的流程。** 無變化。當支付者和記錄的創作者必須不同時，`InitializeWithPermission` 仍然是應使用的路徑。

## 未變更的內容

* **每個帳戶佈局**，包括 `PoolState` 和 `AmmConfig`。
* **`Initialize` 和 `InitializeWithPermission`**：判別器、帳戶、參數和儲存的值。
* **`Permission`、`CreatePermissionPda` 和 `ClosePermissionPda`。**
* **交換、存款和提取數學**、創作者費用的收取，以及創作者費用的協議份額。
* **錯誤代碼。** `6000`–`6015` 未改變；沒有附加任何內容。
* **程式 ID。**

## 更新的頁面

* `products/cpmm/instructions`：升級橫幅；摘要和狀態變更矩陣行；包含參數、編碼和帳戶清單的新 `InitializeV2` 部分；`Initialize` 後置條件現在指向 `InitializeV2`。
* `products/cpmm/fees`：「創作者費用」部分列出全部三條創建路徑，並註明啟用費用不會設定其費率。
* `products/cpmm/accounts`：`poolState` 和資金池 ID 說明；`creator_fee_on` / `enable_creator_fee` 欄位說明；`Permission` 說明；帳戶生命週期行。
* `products/cpmm/overview`：「新功能」提示框和「可預測的費用」要點。
* `products/cpmm/code-demos`：說明 `createPool` 構建的是 `Initialize`，以及如何使用 `InitializeV2`。
* `protocol-overview/shared-infrastructure`：創作者費用不再僅限於 LaunchLab 畢業的池。
* `reference/token-2022-support`：CPMM 池創建路徑。

**驗證對象**：`raydium-cp-swap` 分支 `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`，以及 `tests/initialize_v2.test.ts`。


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