> ## 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 открывает создание мультипулов для всех

> CreatePermissionedPool переименован в CreateCustomizablePoolV2, и его Permission PDA-шлюз удалён, поэтому любой плательщик может создавать дополнительные CLMM-пулы для одной пары и комиссии по адресу, производному от seed_index. Учётная запись Permission и инструкции администратора CreatePermissionPda / ClosePermissionPda удалены. Критично для клиентов, вызывающих старую инструкцию; макеты учётных записей и коды ошибок не изменились.

<Info>
  **Эта страница переведена с помощью ИИ. За эталон принимается английская версия.**

  [Открыть английскую версию →](/reference/changelog/2026-10-22-clmm-customizable-pool-v2)
</Info>

<Info>
  Этот пункт описывает обновление программы CLMM, запланированное на **2026-10-22**. Оно было проверено на ветке `feat/create-customizable-pool-v2` репозитория `raydium-clmm` (коммит `18f5db1`) перед развёртыванием. Перед использованием нового имени инструкции или списка учётных записей убедитесь в развёрнутой программе.
</Info>

Выпуск [2026-07-30](/ru/reference/changelog/2026-07-30-clmm-permissioned-pools) добавил `CreatePermissionedPool`, который позволял вызывающему создавать более одного пула для одной пары `(amm_config, token_mint_0, token_mint_1)`, встраивая `seed_index` в PDA пула. Это было защищено: плательщик должен был иметь PDA `Permission`, выданный администратором.

Этот выпуск удаляет этот шлюз. Инструкция переименована в **`CreateCustomizablePoolV2`**, её может вызвать кто угодно, и вся система разрешений удалена из программы. Математика пула, своп, ликвидность, лимитные ордера, комиссии и награды остаются без изменений.

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

* **`CreatePermissionedPool` → `CreateCustomizablePoolV2`.** Те же аргументы (`CreateCustomizableParams`, `seed_index: u16`) и та же производная адреса пула. Дискриминатор Anchor меняется с именем, поэтому транзакция, собранная для старой инструкции, не пройдёт после обновления. Пересоберите её с новым IDL.
* **Учётная запись `permission` удалена из списка учётных записей.** Она находилась в позиции 3, поэтому каждая учётная запись от `amm_config` и далее сдвигается на одну позицию вверх. См. [новый список учётных записей](#createcustomizablepoolv2-account-list).
* **Создание мультипулов теперь без разрешений.** Любой плательщик может создавать дополнительные пулы для пары и комиссии с ненулевым `seed_index`. Рассматривайте пару как потенциально имеющую много CLMM-пулов на комиссию, созданных кем угодно.
* **`Permission`, `CreatePermissionPda` и `ClosePermissionPda` удалены.** Программа и IDL больше не знают тип `Permission`.
* **Обновите IDL.** Он удаляет две инструкции и один тип учётной записи, оставляя 37 инструкций и 53 ошибки.
* **Ни один макет учётной записи не изменился и ни один код ошибки не был добавлен.** `PoolState.seed_index` сохраняет свой смещение; только его значение расширяется с «пула с разрешением» на «любой V2-пул».

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

### `CreatePermissionedPool` переименован в `CreateCustomizablePoolV2`

Обработчик — это тот же код под новым именем. Он по-прежнему:

* требует `seed_index > 0`;
* производит пул по адресу `["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]`;
* принимает те же `CreateCustomizableParams`, что и `CreateCustomizablePool`, поэтому односторонняя комиссия (`collect_fee_on`) и динамическая комиссия работают одинаково;
* применяет те же проверки поддержки Token-2022 mint, что и `CreatePool`;
* записывает `pool_creator` как `pool_state.owner` и записывает `seed_index` в `PoolState`;
* выдаёт `PoolCreatedEvent`.

Проверка Permission PDA — единственное удалённое поведение.

| | Старый дискриминатор | Новый дискриминатор |
| - | - | - |
| Инструкция | `create_permissioned_pool` → `[36, 243, 179, 35, 42, 239, 53, 229]` | `create_customizable_pool_v2` → `[29, 172, 106, 188, 103, 45, 70, 100]` |

### Список учётных записей `CreateCustomizablePoolV2`

| # | Учётная запись | W | S | Примечания |
| - | - | - | - | - |
| 1 | `payer` | W | S | Оплачивает аренду для каждой новой учётной записи. Любой кошелёк. |
| 2 | `pool_creator` | | | Записывается в `pool_state.owner`. Не подписант и не проверяется. |
| 3 | `amm_config` | | | Уровень комиссии, к которому привязан пул. |
| 4 | `pool_state` | W | | `init` по производному от `seed_index` PDA. |
| 5 | `token_mint_0` | | | Должен сортироваться перед `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` | | | Программа, владеющая `token_mint_0`. |
| 12 | `token_program_1` | | | Программа, владеющая `token_mint_1`. |
| 13 | `system_program` | | | |
| 14 | `rent` | | | |

`remaining_accounts` остаются без изменений: PDA реестра поддерживаемых mint, когда Token-2022 mint их требует, и `DynamicFeeConfig` **в конце**, когда `enable_dynamic_fee = true`.

<Warning>
  `pool_creator` не аутентифицирован. Любой плательщик может записать любой адрес в `pool_state.owner`. Этот адрес получает право вызывать `InitializeReward` на пуле, но его нельзя использовать как доказательство того, кто создал пул. Не ранжируйте, не помечайте и не доверяйте V2-пулу по его полю `owner`.
</Warning>

### Удалено: `Permission`, `CreatePermissionPda`, `ClosePermissionPda`

* Тип учётной записи `Permission` (`["permission", authority]`, 280 байт) удалён из программы.
* `CreatePermissionPda` и `ClosePermissionPda` удалены вместе с выделенным ключом `permission_pda_admin`, который мог их подписывать.
* PDA разрешений, созданные до обновления, остаются в цепи. Программа больше их не читает и не имеет инструкции для их закрытия.

## Коды ошибок

Без изменений. `6000`–`6052` сохраняют свои номера. `NotApproved` (`6000`) больше не имеет случая «подписант ни `admin`, ни `permission_pda_admin`», потому что эти инструкции удалены.

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

* **Создатели пулов.** Переключитесь с `CreatePermissionedPool` на `CreateCustomizablePoolV2`, удалите учётную запись `permission` и сдвиньте оставшиеся учётные записи на одну позицию вверх. Вам больше не нужно разрешение администратора.
* **Индексаторы и маршрутизаторы.** Индексируйте CLMM-пулы из `PoolCreatedEvent` или сканируя учётные записи `PoolState`, а не производя четырёхсемейный PDA. Сохраняйте `seed_index` для любого пула, где он ненулевой, потому что он нужен для повторного производства адреса. Ожидайте больше неканонических пулов теперь, когда их может создавать кто угодно, и не предполагайте, что канонический пул — самый глубокий.
* **UI.** Пара и комиссия могут иметь много пулов с разными начальными ценами. Показывайте ликвидность и адрес пула, и не представляйте пул как официальный из-за его `owner`.
* **Потребители IDL.** Удалите любой код декодера или клиента для `Permission`, `CreatePermissionPda` и `ClosePermissionPda`.

## Что не изменилось

* **Каждый макет учётной записи**, включая `PoolState` (поле `seed_index` и его смещение остаются теми же).
* **`CreatePool` и `CreateCustomizablePool`.** Они по-прежнему создают единственный канонический пул на пару и уровень комиссии с `seed_index = [0, 0]`.
* **Пулы, созданные через `CreatePermissionedPool` до обновления.** Их адреса, состояние и `seed_index` остаются без изменений.
* **Коды ошибок, своп, ликвидность, комиссия, динамическая комиссия, награда и поведение лимитных ордеров.**
* **ID программы.**

## Обновлённые страницы

* `products/clmm/instructions`: баннер обновления; строки инвентаря и администраторского шлюза; раздел `CreateCustomizablePoolV2` с новым списком учётных записей.
* `products/clmm/accounts`: `Permission` удалён из инвентаря и задокументирован как снятый с производства; описание `seed_index`; помощник PDA переименован в `deriveCustomizablePoolV2`; строки жизненного цикла.
* `products/clmm/overview`: примечание «Что нового».
* `security/admin-and-multisig`: роль `permission_pda_admin` удалена из таблицы CLMM.
* `reference/error-codes`: описание `NotApproved`.
* `reference/token-2022-support`: пути создания CLMM-пула.
* `sdk-api/anchor-idl`: количество инструкций CLMM.
* `protocol-overview/versions-and-migration`: пункт истории обновлений CLMM.

**Проверено на**: ветка `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` и удалённые `admin/create_permission_pda.rs`, `admin/close_permission_pda.rs`, `states/permission.rs`.


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