> ## 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 ouvre la création multi-pool à tous

> CreatePermissionedPool est renommé en CreateCustomizablePoolV2 et sa porte PDA Permission est supprimée, permettant à n'importe quel payeur de créer des pools CLMM supplémentaires pour la même paire et le même niveau de frais à une adresse dérivée de seed_index. Le compte Permission et les instructions admin CreatePermissionPda / ClosePermissionPda sont supprimés. Changement cassant pour les clients qui appellent l'ancienne instruction ; aucune disposition de compte ni code d'erreur n'a changé.

<Info>
  **Cette page est traduite automatiquement par IA. La version anglaise fait foi.**

  [Voir la version anglaise →](/reference/changelog/2026-10-22-clmm-customizable-pool-v2)
</Info>

Cette entrée couvre une mise à niveau du programme CLMM prévue pour le **2026-10-22**. Elle a été vérifiée par rapport à la branche `feat/create-customizable-pool-v2` de `raydium-clmm` (head `18f5db1`) avant le déploiement. Confirmez le programme déployé avant de vous fier au nouveau nom d'instruction ou à la liste des comptes.

La [version du 2026-07-30](/fr/reference/changelog/2026-07-30-clmm-permissioned-pools) a ajouté `CreatePermissionedPool`, qui permet à un appelant de créer plus d'un pool pour le même `(amm_config, token_mint_0, token_mint_1)` en intégrant un `seed_index` dans le PDA du pool. C'était contrôlé : le payeur devait détenir un PDA `Permission` émis par un administrateur.

Cette version supprime cette porte. L'instruction est renommée en **`CreateCustomizablePoolV2`**, n'importe qui peut l'appeler, et tout le mécanisme de permission est supprimé du programme. Les mathématiques du pool, le swap, la liquidité, les ordres limites, les frais et les récompenses restent inchangés.

## TL;DR pour les intégrateurs

* **`CreatePermissionedPool` → `CreateCustomizablePoolV2`.** Mêmes arguments (`CreateCustomizableParams`, `seed_index: u16`) et même dérivation d'adresse de pool. Le discriminateur Anchor change avec le nom, donc une transaction construite par rapport à l'ancienne instruction échoue après la mise à niveau. Reconstruisez-la par rapport au nouvel IDL.
* **Le compte `permission` a disparu de la liste des comptes.** Il se trouvait à la position 3, donc chaque compte à partir de `amm_config` remonte d'une position. Voir [la nouvelle liste des comptes](#createcustomizablepoolv2-account-list).
* **La création multi-pool est maintenant sans permission.** N'importe quel payeur peut créer des pools supplémentaires pour une paire et un niveau de frais avec un `seed_index` non nul. Traitez une paire comme ayant potentiellement de nombreux pools CLMM par niveau de frais, créés par n'importe qui.
* **`Permission`, `CreatePermissionPda` et `ClosePermissionPda` sont supprimés.** Le programme et l'IDL ne connaissent plus le type `Permission`.
* **Actualisez votre IDL.** Il supprime deux instructions et un type de compte, pour 37 instructions et 53 erreurs.
* **Aucune disposition de compte n'a changé et aucun code d'erreur n'a été ajouté.** `PoolState.seed_index` conserve son décalage ; seule sa signification s'élargit de « pool autorisé » à « n'importe quel pool V2 ».

## Ce qui a changé dans le programme

### `CreatePermissionedPool` renommé en `CreateCustomizablePoolV2`

Le gestionnaire est le même code sous un nouveau nom. Il continue à :

* exiger `seed_index > 0` ;
* dériver le pool à `["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]` ;
* prendre le même `CreateCustomizableParams` que `CreateCustomizablePool`, donc les frais unilatéraux (`collect_fee_on`) et l'opt-in de frais dynamiques fonctionnent de la même manière ;
* appliquer les mêmes vérifications de support de mint Token-2022 que `CreatePool` ;
* enregistrer `pool_creator` comme `pool_state.owner` et écrire `seed_index` dans `PoolState` ;
* émettre `PoolCreatedEvent`.

La vérification du PDA `Permission` est le seul comportement supprimé.

| | Ancien discriminateur | Nouveau discriminateur |
| - | - | - |
| Instruction | `create_permissioned_pool` → `[36, 243, 179, 35, 42, 239, 53, 229]` | `create_customizable_pool_v2` → `[29, 172, 106, 188, 103, 45, 70, 100]` |

### Liste des comptes `CreateCustomizablePoolV2`

| # | Compte | W | S | Notes |
| - | - | - | - | - |
| 1 | `payer` | W | S | Paie le loyer pour chaque nouveau compte. N'importe quel portefeuille. |
| 2 | `pool_creator` | | | Écrit dans `pool_state.owner`. Pas un signataire et pas vérifié. |
| 3 | `amm_config` | | | Niveau de frais auquel le pool est lié. |
| 4 | `pool_state` | W | | `init` au PDA dérivé de `seed_index`. |
| 5 | `token_mint_0` | | | Doit être trié avant `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` | | | Programme qui possède `token_mint_0`. |
| 12 | `token_program_1` | | | Programme qui possède `token_mint_1`. |
| 13 | `system_program` | | | |
| 14 | `rent` | | | |

`remaining_accounts` restent inchangés : les PDAs du registre de support de mint lorsqu'un mint Token-2022 en a besoin, et `DynamicFeeConfig` **en dernier** lorsque `enable_dynamic_fee = true`.

<Warning>
  `pool_creator` n'est pas authentifié. N'importe quel payeur peut écrire n'importe quelle adresse dans `pool_state.owner`. Cette adresse gagne le droit d'appeler `InitializeReward` sur le pool, mais elle ne peut pas être utilisée comme preuve de qui l'a créé. Ne classez pas, n'étiquetez pas et ne faites pas confiance à un pool V2 en fonction de son champ `owner`.
</Warning>

### Supprimé : `Permission`, `CreatePermissionPda`, `ClosePermissionPda`

* Le type de compte `Permission` (`["permission", authority]`, 280 octets) est supprimé du programme.
* `CreatePermissionPda` et `ClosePermissionPda` sont supprimés, ainsi que la clé `permission_pda_admin` dédiée qui pouvait les signer.
* Les PDAs de permission créés avant la mise à niveau restent sur la chaîne. Le programme ne les lit plus et n'a plus d'instruction qui les ferme.

## Codes d'erreur

Aucun changement. `6000`–`6052` conservent leurs numéros. `NotApproved` (`6000`) n'a plus de cas « le signataire n'est ni `admin` ni `permission_pda_admin` », car ces instructions ont disparu.

## Notes de migration

* **Créateurs de pools.** Passez de `CreatePermissionedPool` à `CreateCustomizablePoolV2`, supprimez le compte `permission`, et décalez les comptes restants d'une position. Vous n'avez plus besoin d'une autorisation d'administrateur.
* **Indexeurs et routeurs.** Indexez les pools CLMM à partir de `PoolCreatedEvent` ou en scannant les comptes `PoolState`, pas en dérivant le PDA à quatre seeds. Stockez `seed_index` pour tout pool où il est non nul, car vous en avez besoin pour re-dériver l'adresse. Attendez-vous à plus de pools non canoniques maintenant que n'importe qui peut les créer, et ne supposez pas que le pool canonique est le plus profond.
* **Interfaces utilisateur.** Une paire et un niveau de frais peuvent avoir de nombreux pools avec des prix de départ différents. Affichez la liquidité et l'adresse du pool, et ne présentez pas un pool comme officiel en raison de son `owner`.
* **Consommateurs d'IDL.** Supprimez tout code de décodeur ou client pour `Permission`, `CreatePermissionPda` et `ClosePermissionPda`.

## Ce qui n'a pas changé

* **Chaque disposition de compte**, y compris `PoolState` (le champ `seed_index` et son décalage sont les mêmes).
* **`CreatePool` et `CreateCustomizablePool`.** Ils créent toujours le pool canonique unique par paire et niveau, avec `seed_index = [0, 0]`.
* **Pools créés via `CreatePermissionedPool` avant la mise à niveau.** Leurs adresses, état et `seed_index` restent inchangés.
* **Codes d'erreur, swap, liquidité, frais, frais dynamiques, récompenses et comportement des ordres limites.**
* **ID du programme.**

## Pages mises à jour

* `products/clmm/instructions` : bannière de mise à niveau ; lignes d'inventaire et de contrôle d'accès administrateur ; section `CreateCustomizablePoolV2` avec la nouvelle liste des comptes.
* `products/clmm/accounts` : `Permission` supprimé de l'inventaire et documenté comme retiré ; description de `seed_index` ; assistant PDA renommé en `deriveCustomizablePoolV2` ; lignes de cycle de vie.
* `products/clmm/overview` : note « Quoi de neuf ».
* `security/admin-and-multisig` : rôle `permission_pda_admin` supprimé du tableau CLMM.
* `reference/error-codes` : description de `NotApproved`.
* `reference/token-2022-support` : chemins de création de pools CLMM.
* `sdk-api/anchor-idl` : nombre d'instructions CLMM.
* `protocol-overview/versions-and-migration` : puce d'historique de mise à niveau CLMM.

**Vérifié par rapport à** : branche `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`, et les fichiers supprimés `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.