> ## 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]
>
> **Эта страница переведена с помощью ИИ. За эталон принимается английская версия.**
>
> [Открыть английскую версию →](https://docs.raydium.io/reference/changelog/2026-10-30-cpmm-initialize-v2.md)

> [!NOTE]
>
> Этот пункт описывает обновление программы CPMM, запланированное на **2026-10-30**. Оно было проверено на ветке `feat/initialize-v2` репозитория `raydium-cp-swap` (коммит `40cbd81`) перед развёртыванием. Прежде чем полагаться на новую инструкцию, убедитесь в развёрнутой программе.

У каждого пула CPMM есть флаг `enable_creator_fee` и сторона `creator_fee_on`, обе фиксируются при создании. До сих пор создатель мог задать их только через `InitializeWithPermission`, для которой нужен выданный администратором PDA `Permission`. Публичная `Initialize` всегда сохраняла комиссию выключенной. На практике только выпуски LaunchLab и другие закрытые потоки могли создать пул, взимающий комиссию создателя.

Этот релиз добавляет **`InitializeV2`**. Это `Initialize` с одним дополнительным аргументом, `creator_fee_on: Option<CreatorFeeOn>`, и вызвать её может кто угодно. Математика пула, своп, ликвидность, сбор комиссий и доля протокола в комиссии создателя не затронуты.

## TL;DR для интеграторов

* **Новая инструкция: `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/ru/products/cpmm/instructions.md#initializev2).
* **Создатель — это подписант.** `pool_state.pool_creator` — подписывающий `creator`. В отличие от `InitializeWithPermission`, получателя нельзя назначить на другой адрес.
* **Создатель выбирает включение/выключение и сторону, но не ставку.** Пул взимает `AmmConfig.creator_fee_rate` своего уровня комиссий. По умолчанию эта ставка равна `0`, поэтому на таком уровне пул с включённой комиссией ничего не накапливает.
* **Ничего существующего не изменилось.** `Initialize` и `InitializeWithPermission` сохраняют свои дискриминаторы, учётные записи, аргументы и поведение. Ни макет учётной записи, ни код ошибки не изменились.
* **Обновите IDL**, чтобы получить новую инструкцию. Клиентам, которые её не вызывают, ничего менять не нужно.

## Что изменилось в программе

### Новая инструкция: `InitializeV2`

`InitializeV2` выполняет тот же код создания, что и `Initialize`. Она:

* принимает в качестве `pool_state` либо канонический PDA пула, либо подписанную случайную пару ключей;
* применяет те же проверки списка разрешённых расширений Token-2022 и `SupportMintAssociated` через `remaining_accounts`;
* отклоняет создание, когда установлен `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` |
| - | - | - | - |
| Кто может вызвать | Любой | Любой | Владелец PDA `Permission` |
| Комиссия создателя | Всегда выключена | Выбор создателя | Всегда включена |
| Сторона (`creator_fee_on`) | `BothToken` (не используется) | Выбор создателя | Выбор вызывающего |
| Записанный `pool_creator` | Подписывающий `creator` | Подписывающий `creator` | Отдельная учётная запись `creator`, не подписант |
| Плательщик | `creator` | `creator` | Отдельный `payer` |
| Завершающий sysvar `rent` | Да | Нет | Нет |

### Внутренний рефакторинг

Три обработчика теперь используют общую процедуру `initialize_pool`. Рефакторинг не меняет учётные записи, аргументы, проверки или сохраняемые значения `Initialize` и `InitializeWithPermission`. Новые тесты также проверяют, что обычная `Initialize` на той же конфигурации по-прежнему сохраняет комиссию создателя выключенной.

## Что нужно знать создателям

* **Сначала проверьте уровень комиссий.** Ставка комиссии создателя принадлежит `AmmConfig`, а не пулу. Выберите уровень, чей `creator_fee_rate` соответствует тому, что вы хотите взимать. Ставки перечислены в [`products/cpmm/fees`](https://docs.raydium.io/ru/products/cpmm/fees).
* **Выбор постоянен.** Ни одна инструкция не меняет `enable_creator_fee` или `creator_fee_on` после создания. Чтобы изменить его, нужно создать новый пул.
* **Трейдеры платят её сверх торговой комиссии.** Комиссия создателя — отдельная ставка, добавляемая к свопу. Она не уменьшает доли LP, протокола или фонда, но делает торговлю с пулом дороже, чем с пулом того же уровня с выключенной комиссией.
* **Сбор не изменился.** Используйте `CollectCreatorFee` или `CollectCreatorFeePermissionless`. Доля протокола из [релиза 2026-09-19](https://docs.raydium.io/ru/reference/changelog/2026-09-19-cpmm-creator-fee-protocol-share.md) применяется, и отказаться от неё при создании нельзя.

## Примечания по миграции

* **Создатели пулов.** Переходите с `Initialize` на `InitializeV2`, только если хотите включить комиссию создателя. Передайте `Some(side)` и уберите учётную запись `rent`. `Initialize` продолжает работать.
* **Пользователи SDK.** `raydium.cpmm.createPool` в `@raydium-io/raydium-sdk-v2@0.2.64-alpha` собирает `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.