> ## 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-06-22 — Stable AMM : suppression du code OpenBook (market) inactif

> Stable AMM supprime ses comptes et code de market-making OpenBook dormants : layouts Swap/Deposit/Withdraw plus petits, un changement WithdrawPnl qui casse la compatibilité, et une formule simplifiée d'actifs du pool.

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

  [Voir la version anglaise →](/reference/changelog/2026-06-22-stable-amm-openbook-cleanup)
</Info>

Stable AMM est un **programme indépendant** (son propre ID de programme — il n'est pas tradé via le programme AMM v4). Il **a cessé de poster des ordres sur OpenBook il y a longtemps** ; le chemin de market-making OpenBook est resté dormant pendant des années. Cette mise à jour est le nettoyage : elle **supprime les comptes et le code liés au marché, désormais inactifs**, des layouts d'instruction. Elle **ne change pas** le comportement du trading en direct — il n'y avait plus d'ordres OpenBook à arrêter de placer.

## TL;DR pour les intégrateurs

* **Swap / Deposit / Withdraw continuent de fonctionner sans changements.** Les transactions construites avec les anciens layouts de comptes s'exécutent toujours — les comptes Serum/market supprimés sont simplement ignorés. Vous **n'avez pas** besoin de déployer une mise à jour client pour maintenir les flux existants.
* **Mais vous devriez migrer vers les nouveaux layouts plus petits bientôt.** Les nouveaux layouts suppriment les comptes market inactifs, réduisant la taille de la transaction : `SwapBaseIn` / `SwapBaseOut` passent de **18 → 9** comptes, `Deposit` **14 → 12**, `Withdraw` **21 (+1 optionnel) → 12**. Le chemin de compatibilité sera supprimé dans une version future.
* **`WithdrawPnl` casse la compatibilité (admin uniquement).** Il passe de **16 (+1 optionnel) → 10** comptes **sans analyse de compatibilité**. L'envoi de l'ancien layout échoue avec des erreurs de validation comme `InvalidTokenCoin` en raison du désalignement des comptes (ancien #3 était `open_orders`). Tout outil d'administration qui appelle `WithdrawPnl` doit être mis à jour.
* **Frais de parrainage supprimés sur `Withdraw` et `WithdrawPnl`.** Le compte optionnel `referrer_pc_wallet` peut toujours être passé pour la compatibilité rétroactive sur l'ancien layout de `Withdraw`, mais il n'a plus d'effet.
* **Comptabilité des actifs du pool simplifiée.** Les actifs totaux du pool sont maintenant `soldes des coffres − PnL en attente` ; le terme OpenBook open-order — déjà zéro en pratique — est supprimé de la formule. Les indexeurs et le code de cotation qui ajoutaient encore un terme OpenOrders doivent le supprimer.
* **La plupart des instructions sont maintenant supprimées.** Seules `SwapBaseIn`, `SwapBaseOut`, `Deposit`, `Withdraw` et `WithdrawPnl` restent appelables. `Initialize`, `PreInitialize`, `InitModelData`, `UpdateModelData`, `MonitorStep`, `SetParams`, `WithdrawSrm` et `SimulateInfo` ne sont plus appelables.

## Pourquoi cela importe (pour les traders, les LP et les intégrateurs)

* **Les traders** ne voient aucun changement dans le comportement du swap ou la forme de la courbe de prix — la courbe de table de recherche est inchangée. Les nouveaux swaps de layout sont moins chers à exécuter car la transaction porte neuf comptes de moins.
* **Les LP** conservent les mêmes économies de dépôt/retrait. La liquidité s'est longtemps trouvée entièrement dans les coffres du pool, donc la valeur du pool est entièrement on-pool ; cette mise à jour supprime uniquement la tuyauterie de marché obsolète.
* **Les intégrateurs** obtiennent des transactions plus petites et plus simples, et un modèle de cotation avec un terme de moins (déjà vestigial). Les intégrations existantes ne se cassent pas (sauf l'admin `WithdrawPnl`), mais le shim de compatibilité est temporaire — migrez à votre convenance, avant qu'il ne soit supprimé.

## Changements au niveau des instructions

### `SwapBaseIn` / `SwapBaseOut` — 18 → 9 comptes (ancien layout toujours compatible)

Les neuf comptes OpenBook (`amm_open_orders`, `serum_program`, `serum_market`, `serum_bids`, `serum_asks`, `serum_event_queue`, `serum_coin_vault`, `serum_pc_vault`, `serum_vault_signer`) sont supprimés. **Compatibilité** : si l'instruction reçoit un nombre de comptes autre que 9, elle est analysée avec l'ancien layout de 18 comptes ; les comptes Serum doivent toujours occuper leurs positions mais leur contenu n'est plus validé ni utilisé.

### `Deposit` — 14 → 12 comptes (ancien layout toujours compatible)

`amm_open_orders` (ancien #3) et `serum_market` (ancien #9) sont supprimés. Quand 14 comptes sont passés, l'ancien layout est analysé pour la compatibilité.

### `Withdraw` — 21 (+1 optionnel) → 12 comptes (ancien layout toujours compatible)

Les neuf comptes Serum sont supprimés. Les anciens layouts de 21 ou 22 comptes sont toujours acceptés, **mais la logique de frais de parrainage pour le 22e compte optionnel `referrer_pc_wallet` a été supprimée** — le compte peut toujours être passé mais n'a plus d'effet.

### `WithdrawPnl` — 16 (+1 optionnel) → 10 comptes (⚠️ pas de chemin de compatibilité, casse la compatibilité)

Layout fixe de 10 comptes, admin uniquement. Il **n'y a pas** d'analyse de compatibilité pour l'ancien layout ; l'envoyer échoue avec des erreurs comme `InvalidTokenCoin` en raison du désalignement des comptes. **Changement logique** : quand les fonds disponibles du pool sont insuffisants pour retirer le PnL accumulé, le pool n'est plus mis en `CancelAllOrdersState` / `Disabled` ; l'instruction retourne directement `TakePnlError`. Le compte optionnel `referrer_pc_wallet` a également été supprimé.

## Changement du calcul des actifs du pool

La formule ajoutait historiquement les fonds que le pool détenait comme ordres ouverts dans son compte OpenOrders OpenBook. Ce terme a été zéro en pratique depuis que le pool a cessé de poster des ordres ; cette mise à jour le supprime entièrement de la formule, laissant le calcul basé sur le coffre uniquement :

|         | Formule                                                                                                                |
| ------- | ---------------------------------------------------------------------------------------------------------------------- |
| Ancien  | `soldes des coffres + fonds des ordres ouverts (native_coin_total / native_pc_total) − PnL en attente (need_take_pnl)` |
| Nouveau | `soldes des coffres − PnL en attente (need_take_pnl)`                                                                  |

## Pages mises à jour

* `products/stable/overview` — modèle AMM pur, dépendance OpenBook supprimée, tableaux de comparaison et de comptage de comptes mis à jour.
* `products/stable/index` — « Ce que c'est » et tableau des faits clés ne revendiquent plus une dépendance OpenBook.
* `products/stable/accounts` — comptes OpenBook supprimés de l'inventaire ; champs Serum/open-orders de `AmmInfo` marqués comme hérités/inutilisés ; note sur les actifs du pool ajoutée.
* `products/stable/instructions` — nouveaux tableaux de comptes Swap / Deposit / Withdraw / WithdrawPnl avec appels de compatibilité ; toutes les autres instructions (`Initialize`, `PreInitialize`, `InitModelData`, `UpdateModelData`, `MonitorStep`, `SetParams`, `WithdrawSrm`, `SimulateInfo`) marquées comme supprimées / plus appelables.
* `products/stable/math` — mise à jour de la formule des actifs du pool ; section `MonitorStep` / OpenBook reformulée comme longtemps retraitée.
* `products/stable/fees` — section « PnL from OpenBook » retraitée ; le flux de collecte ne règle plus les remplissages OpenBook.
* `products/stable/code-demos` — conseils de comptage de comptes mis à jour ; le SDK abstrait toujours la sélection de layout.

**Vérifié par rapport à** :

* Source du programme `raydium-stable` (post-mise à jour `instruction.rs` / `processor.rs`).
* Déploiement du programme Stable AMM on-chain sur Solana mainnet-beta.
