> ## 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 mở phí người tạo cho mọi người tạo pool

> CPMM thêm InitializeV2, một hướng dẫn tạo pool không cần phép nhận đối số tùy chọn creator_fee_on. Bất kỳ người tạo nào giờ đây cũng có thể bật phí người tạo và chọn phía của nó mà không cần Permission PDA. Initialize, InitializeWithPermission và mọi hướng dẫn khác không thay đổi. Mang tính bổ sung: không có bố cục tài khoản, mã lỗi hoặc danh sách tài khoản hiện có nào thay đổi.

> [!NOTE]
>
> **Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.**
>
> [Xem bản tiếng Anh →](https://docs.raydium.io/reference/changelog/2026-10-30-cpmm-initialize-v2.md)

> [!NOTE]
>
> Mục này bao gồm nâng cấp chương trình CPMM được lên lịch cho **2026-10-30**. Nó đã được xác minh so với nhánh `feat/initialize-v2` của `raydium-cp-swap` (head `40cbd81`) trước khi triển khai. Hãy xác nhận chương trình được triển khai trước khi dựa vào hướng dẫn mới.

Mỗi pool CPMM có một cờ `enable_creator_fee` và một phía `creator_fee_on`, cả hai đều cố định khi tạo. Cho đến nay, người tạo chỉ có thể đặt chúng thông qua `InitializeWithPermission`, vốn cần một PDA `Permission` do quản trị viên cấp. `Initialize` công khai luôn lưu phí ở trạng thái tắt. Trên thực tế, chỉ các tốt nghiệp LaunchLab và các luồng có cổng khác mới có thể tạo pool tính phí người tạo.

Bản phát hành này thêm **`InitializeV2`**. Nó là `Initialize` với một đối số bổ sung, `creator_fee_on: Option<CreatorFeeOn>`, và bất kỳ ai cũng có thể gọi nó. Toán học pool, swap, thanh khoản, thu thập phí và phần chia cho giao thức của phí người tạo không bị ảnh hưởng.

## TL;DR cho các nhà tích hợp

* **Hướng dẫn mới: `InitializeV2`.** Không cần phép. Các đối số là `init_amount_0`, `init_amount_1`, `open_time` và `creator_fee_on: Option<CreatorFeeOn>`. Discriminator `[67, 153, 175, 39, 218, 16, 38, 32]`.
* **`Some(side)` bật phí người tạo ở phía đó; `None` giữ nó tắt.** `None` lưu chính xác những gì `Initialize` lưu.
* **Cùng tài khoản như `Initialize`, trừ `rent`.** 19 tài khoản đầu tiên giống hệt nhau và theo cùng thứ tự. Xem [danh sách tài khoản](https://docs.raydium.io/vi/products/cpmm/instructions.md#initializev2).
* **Người tạo là người ký.** `pool_state.pool_creator` là `creator` đang ký. Không giống `InitializeWithPermission`, người thụ hưởng không thể được đặt thành địa chỉ khác.
* **Người tạo chọn bật/tắt và phía, không phải tỷ lệ.** Pool tính `AmmConfig.creator_fee_rate` của tầng phí của nó. Tỷ lệ đó mặc định là `0`, vì vậy một pool được bật trên tầng như vậy sẽ không tích lũy gì.
* **Không có gì hiện có thay đổi.** `Initialize` và `InitializeWithPermission` giữ nguyên discriminator, tài khoản, đối số và hành vi. Không có bố cục tài khoản hoặc mã lỗi nào thay đổi.
* **Làm mới IDL của bạn** để có hướng dẫn mới. Các client không bao giờ gọi nó không cần thay đổi.

## Những gì đã thay đổi trong chương trình

### Hướng dẫn mới: `InitializeV2`

`InitializeV2` chạy cùng mã tạo như `Initialize`. Nó:

* chấp nhận PDA pool chính tắc hoặc một keypair ngẫu nhiên đã ký làm `pool_state`;
* áp dụng cùng danh sách cho phép Token-2022 và các kiểm tra `SupportMintAssociated`, thông qua `remaining_accounts`;
* từ chối tạo khi `amm_config.disable_create_pool` được đặt;
* tăng `open_time` lên `block_timestamp + 1` khi nó không ở tương lai;
* khóa 100 đơn vị cơ sở LP và mint phần còn lại cho người tạo;
* tính `amm_config.create_pool_fee`.

Khác biệt duy nhất là những gì nó ghi vào `PoolState` mới:

| Đối số `creator_fee_on` | Byte 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` |

Byte tag hoặc byte biến thể không hợp lệ sẽ làm thất bại quá trình deserialize đối số của Anchor. Không có mã lỗi mới nào liên quan.

| | Discriminator |
| - | - |
| `initialize` (không thay đổi) | `[175, 175, 109, 31, 13, 152, 155, 237]` |
| `initialize_with_permission` (không thay đổi) | `[63, 55, 254, 65, 49, 178, 89, 121]` |
| `initialize_v2` (mới) | `[67, 153, 175, 39, 218, 16, 38, 32]` |

### So sánh ba đường dẫn tạo

| | `Initialize` | `InitializeV2` | `InitializeWithPermission` |
| - | - | - | - |
| Ai có thể gọi | Bất kỳ ai | Bất kỳ ai | Người nắm giữ PDA `Permission` |
| Phí người tạo | Luôn tắt | Lựa chọn của người tạo | Luôn bật |
| Phía (`creator_fee_on`) | `BothToken` (không sử dụng) | Lựa chọn của người tạo | Lựa chọn của người gọi |
| `pool_creator` được ghi lại | `creator` đang ký | `creator` đang ký | Tài khoản `creator` riêng biệt, không phải người ký |
| Người trả tiền | `creator` | `creator` | `payer` riêng biệt |
| Sysvar `rent` ở cuối | Có | Không | Không |

### Tái cấu trúc nội bộ

Ba handler giờ đây dùng chung một routine `initialize_pool`. Việc tái cấu trúc không thay đổi tài khoản, đối số, kiểm tra hoặc giá trị được lưu của `Initialize` hoặc `InitializeWithPermission`. Các bài kiểm tra mới cũng kiểm tra rằng một `Initialize` thông thường trên cùng cấu hình vẫn lưu phí người tạo ở trạng thái tắt.

## Những gì người tạo cần biết

* **Kiểm tra tầng phí trước.** Tỷ lệ phí người tạo thuộc về `AmmConfig`, không phải pool. Hãy chọn một tầng có `creator_fee_rate` là mức bạn muốn tính. Các tỷ lệ được liệt kê trong [`products/cpmm/fees`](https://docs.raydium.io/vi/products/cpmm/fees).
* **Lựa chọn là vĩnh viễn.** Không có hướng dẫn nào thay đổi `enable_creator_fee` hoặc `creator_fee_on` sau khi tạo. Để thay đổi, bạn phải tạo pool mới.
* **Nhà giao dịch trả nó ngoài phí giao dịch.** Phí người tạo là một tỷ lệ riêng được cộng vào swap. Nó không làm giảm phần LP, giao thức hoặc quỹ, nhưng nó làm cho việc giao dịch với pool đắt hơn so với một pool trên cùng tầng có phí bị tắt.
* **Thu thập không thay đổi.** Sử dụng `CollectCreatorFee` hoặc `CollectCreatorFeePermissionless`. Phần chia cho giao thức từ [bản phát hành 2026-09-19](https://docs.raydium.io/vi/reference/changelog/2026-09-19-cpmm-creator-fee-protocol-share.md) được áp dụng, và bạn không thể từ chối nó khi tạo.

## Ghi chú di chuyển

* **Người tạo pool.** Chỉ chuyển từ `Initialize` sang `InitializeV2` nếu bạn muốn bật phí người tạo. Truyền `Some(side)` và bỏ tài khoản `rent`. `Initialize` vẫn hoạt động.
* **Người dùng SDK.** `raydium.cpmm.createPool` trong `@raydium-io/raydium-sdk-v2@0.2.64-alpha` xây dựng `Initialize`. Cho đến khi một bản phát hành cung cấp trình xây dựng `InitializeV2`, hãy mã hóa nó từ IDL đã làm mới.
* **Indexer và router.** Hãy dự kiến nhiều pool hơn có `enable_creator_fee = true`, được tạo bởi các ví thông thường thay vì LaunchLab. Báo giá từ `enable_creator_fee` và `creator_fee_on` của chính mỗi pool, không bao giờ chỉ từ đường dẫn tạo hoặc tầng phí. Giải mã hướng dẫn mới nếu bạn theo dõi việc tạo pool từ các hướng dẫn. Theo dõi từ các tài khoản `PoolState` không cần thay đổi.
* **UI.** Hiển thị liệu pool có tính phí người tạo hay không và ở tỷ lệ nào, vì hai pool trên cùng tầng giờ đây có thể khác nhau.
* **LaunchLab và các luồng có cấp quyền khác.** Không thay đổi. `InitializeWithPermission` vẫn là đường dẫn khi người trả tiền và người tạo được ghi lại phải khác nhau.

## Những gì không thay đổi

* **Mọi bố cục tài khoản**, bao gồm `PoolState` và `AmmConfig`.
* **`Initialize` và `InitializeWithPermission`**: discriminator, tài khoản, đối số và giá trị được lưu.
* **`Permission`, `CreatePermissionPda` và `ClosePermissionPda`.**
* **Toán học swap, deposit và withdraw**, việc tính phí người tạo, và phần chia cho giao thức của phí người tạo.
* **Mã lỗi.** `6000`–`6015` không thay đổi; không có gì được thêm vào.
* **Program ID.**

## Các trang được cập nhật

* `products/cpmm/instructions`: banner nâng cấp; các hàng trong bảng tóm tắt và ma trận thay đổi trạng thái; phần `InitializeV2` mới với đối số, mã hóa và danh sách tài khoản; điều kiện sau của `Initialize` giờ trỏ đến `InitializeV2`.
* `products/cpmm/fees`: phần "Creator fee" liệt kê cả ba đường dẫn tạo và lưu ý rằng việc bật phí không đặt tỷ lệ của nó.
* `products/cpmm/accounts`: ghi chú `poolState` và ID pool; ghi chú trường `creator_fee_on` / `enable_creator_fee`; ghi chú `Permission`; hàng vòng đời tài khoản.
* `products/cpmm/overview`: callout "What's new" và gạch đầu dòng "Predictable fees".
* `products/cpmm/code-demos`: ghi chú rằng `createPool` xây dựng `Initialize` và cách tiếp cận `InitializeV2`.
* `protocol-overview/shared-infrastructure`: phí người tạo không còn giới hạn ở các pool đã tốt nghiệp LaunchLab.
* `reference/token-2022-support`: các đường dẫn tạo pool CPMM.

**Được xác minh dựa trên**: nhánh `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`, và `tests/initialize_v2.test.ts`.


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