> ## 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>
  **이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.**

  [영문판 보기 →](/reference/changelog/2026-10-22-clmm-customizable-pool-v2)
</Info>

<Info>
  이 항목은 **2026-10-22**에 예정된 CLMM 프로그램 업그레이드를 다룹니다. 배포 전에 `raydium-clmm`의 `feat/create-customizable-pool-v2` 브랜치(`18f5db1` 헤드)에 대해 검증되었습니다. 새로운 명령어 이름이나 계정 목록을 사용하기 전에 배포된 프로그램을 확인하세요.
</Info>

[2026-07-30 릴리스](/ko/reference/changelog/2026-07-30-clmm-permissioned-pools)에서 `CreatePermissionedPool`이 추가되었으며, 이를 통해 호출자는 `seed_index`를 풀 PDA에 포함시켜 동일한 `(amm_config, token_mint_0, token_mint_1)`에 대해 둘 이상의 풀을 생성할 수 있었습니다. 이는 게이트되어 있었습니다. 지불자는 관리자가 발급한 `Permission` PDA를 보유해야 했습니다.

이번 릴리스에서는 해당 게이트를 제거합니다. 명령어는 \*\*`CreateCustomizablePoolV2`\*\*로 이름이 변경되고, 누구나 호출할 수 있으며, 전체 권한 메커니즘이 프로그램에서 삭제됩니다. 풀 수학, 스왑, 유동성, 한도 주문, 수수료 및 보상은 변경되지 않습니다.

## 통합자를 위한 요약

* **`CreatePermissionedPool` → `CreateCustomizablePoolV2`.** 동일한 인수(`CreateCustomizableParams`, `seed_index: u16`)와 동일한 풀 주소 파생. Anchor 판별자가 이름과 함께 변경되므로, 이전 명령어에 대해 구축된 트랜잭션은 업그레이드 후 실패합니다. 새로운 IDL에 대해 다시 구축하세요.
* **`permission` 계정이 계정 목록에서 제거되었습니다.** 슬롯 3에 있었으므로 `amm_config`부터의 모든 계정이 한 위치 위로 이동합니다. [새로운 계정 목록](#createcustomizablepoolv2-계정-목록)을 참조하세요.
* **다중 풀 생성이 이제 무허가입니다.** 모든 지불자가 0이 아닌 `seed_index`로 쌍과 수수료 계층에 대한 추가 풀을 생성할 수 있습니다. 쌍을 수수료 계층당 많은 CLMM 풀을 가질 수 있는 것으로 취급하세요. 이들은 누구든지 생성할 수 있습니다.
* **`Permission`, `CreatePermissionPda` 및 `ClosePermissionPda`가 제거되었습니다.** 프로그램과 IDL은 더 이상 `Permission` 타입을 알지 못합니다.
* **IDL을 새로고침하세요.** 37개 명령어와 53개 오류로 2개 명령어와 1개 계정 타입이 삭제됩니다.
* **계정 레이아웃이 변경되지 않았고 오류 코드가 추가되지 않았습니다.** `PoolState.seed_index`는 오프셋을 유지합니다. 의미만 "허가된 풀"에서 "모든 V2 풀"로 확대됩니다.

## 프로그램에서 변경된 사항

### `CreatePermissionedPool`이 `CreateCustomizablePoolV2`로 이름 변경

핸들러는 새로운 이름 아래의 동일한 코드입니다. 여전히:

* `seed_index > 0`을 요구합니다.
* `["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]`에서 풀을 파생합니다.
* `CreateCustomizablePool`과 동일한 `CreateCustomizableParams`를 사용하므로 편측 수수료(`collect_fee_on`)와 동적 수수료 옵트인이 동일한 방식으로 작동합니다.
* `CreatePool`과 동일한 Token-2022 지원 민트 검사를 적용합니다.
* `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 | | `seed_index` 파생 PDA에서 `init`됩니다. |
| 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`는 변경되지 않습니다. Token-2022 민트가 필요할 때 지원 민트 레지스트리 PDA와 `enable_dynamic_fee = true`일 때 **마지막**에 `DynamicFeeConfig`.

<Warning>
  `pool_creator`는 인증되지 않습니다. 모든 지불자가 `pool_state.owner`에 모든 주소를 쓸 수 있습니다. 해당 주소는 풀에서 `InitializeReward`를 호출할 권리를 얻지만, 누가 생성했는지 증명하는 데 사용될 수 없습니다. V2 풀을 `owner` 필드로 순위를 매기거나, 레이블을 지정하거나, 신뢰하지 마세요.
</Warning>

### 제거됨: `Permission`, `CreatePermissionPda`, `ClosePermissionPda`

* `Permission` 계정 타입(`["permission", authority]`, 280바이트)이 프로그램에서 삭제됩니다.
* `CreatePermissionPda` 및 `ClosePermissionPda`가 삭제되고, 이들에 서명할 수 있는 전용 `permission_pda_admin` 키도 삭제됩니다.
* 업그레이드 전에 생성된 Permission PDA는 온체인에 남아 있습니다. 프로그램은 더 이상 이들을 읽지 않으며 이들을 닫는 명령어가 없습니다.

## 오류 코드

변경 없음. `6000`–`6052`는 번호를 유지합니다. `NotApproved`(`6000`)는 더 이상 "서명자가 `admin` 또는 `permission_pda_admin`이 아님" 경우가 없습니다. 이러한 명령어가 제거되었기 때문입니다.

## 마이그레이션 참고 사항

* **풀 생성자.** `CreatePermissionedPool`에서 `CreateCustomizablePoolV2`로 전환하고, `permission` 계정을 삭제하고, 나머지 계정을 한 슬롯 위로 이동하세요. 더 이상 관리자 승인이 필요하지 않습니다.
* **인덱서 및 라우터.** `PoolCreatedEvent`에서 또는 `PoolState` 계정을 스캔하여 CLMM 풀을 인덱싱하세요. 4시드 PDA를 파생하지 마세요. 0이 아닌 `seed_index`를 가진 모든 풀에 대해 `seed_index`를 저장하세요. 주소를 다시 파생하려면 필요합니다. 이제 누구나 풀을 생성할 수 있으므로 더 많은 비정규 풀을 예상하고, 풀이 `owner` 때문에 공식이라고 가정하지 마세요.
* **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`: CLMM 테이블에서 `permission_pda_admin` 역할 제거.
* `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.