Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Stable AMM est son propre programme ; sa structure de comptes côté pool ressemble à AMM v4 (AmmInfo, vaults, autorité), et elle dispose en outre d’un compte
ModelDataInfo qui stocke la table de recherche. Cette page couvre les deux.Inventaire
AMM pur. Stable AMM détient toute la liquidité dans ses propres vaults et ne dépend pas d’OpenBook. Il a porté un chemin de tenue de marché OpenBook au début de sa vie, mais ce chemin est dormant depuis des années, et la mise à jour du 2026-06-22 a supprimé le code restant. Les comptes de marché
serum_* et amm_open_orders ci-dessous sont donc hérités : ils peuvent encore apparaître dans les anciennes transactions de disposition pour la compatibilité rétroactive, mais le programme ne les valide ni ne les lit, et les nouvelles instructions les omettent entièrement.| Catégorie | Compte | Propriétaire | Rôle |
|---|---|---|---|
| Pool | AmmInfo | Programme Stable | État du pool, références aux vaults et au compte de données du modèle. |
| Pool | amm_authority | Programme Stable | PDA détenu par le programme qui signe les mouvements de vault. Partagé entre tous les pools Stable AMM. |
| Pool | amm_target_orders | Programme Stable | Compte de grille côté pool (conservé dans les dispositions ; ne pilote plus les ordres OpenBook). |
| Pool | pool_coin_token_account | SPL Token | Vault côté coin du pool. |
| Pool | pool_pc_token_account | SPL Token | Vault côté pc du pool. |
| Pool | lp_mint | SPL Token | Mint LP fongible. |
| Modèle | model_data_account | Programme Stable | La table de recherche : 50 000 × DataElement. |
| Hérité | amm_open_orders | OpenBook | L’ancien compte OpenOrders OpenBook du pool. Inutilisé. |
| Hérité | serum_market | OpenBook | Marché OpenBook. Inutilisé. |
| Hérité | serum_bids, serum_asks | OpenBook | Files d’attente des offres/demandes. Inutilisées. |
| Hérité | serum_event_queue | OpenBook | File d’attente des événements. Inutilisée. |
| Hérité | serum_coin_vault, serum_pc_vault | SPL Token | Vaults au niveau du marché OpenBook. Inutilisés. |
| Hérité | serum_vault_signer | OpenBook | Signataire de vault au niveau du marché. Inutilisé. |
AmmInfo
Compte d’état racine. La disposition est presque identique à AMM v4 — paramètres du pool, décimales, frais, références aux vaults/mints — avec un ajout : un champ model_data_key pointant vers la table de recherche.
model_data_key— l’adresse de la table de recherche. Doit être passée à chaque instruction.fees— structure identique à AMM v4. Par défaut, frais de swap de 0,25 %, répartition LP / protocole de 0,22 % / 0,03 %.coin_vault,pc_vault— les vaults des pools.status— bitmask contrôlant le swap/dépôt/retrait/crank.out_put.need_take_pnl_*— balayés parWithdrawPnl.
ModelDataInfo
La table de recherche. Un grand tableau creux de points prix/quantité.
InitModelData (créé le compte) et UpdateModelData (éléments peuplés, définissant valid_data_count) — ont été supprimées dans la mise à jour du 2026-06-22. Les tables sur les pools existants sont maintenant fixes. À l’exécution, les instructions appelables restantes les consomment toujours :
- Swap / dépôt / retrait appellent des fonctions de recherche qui font une recherche binaire et interpolent dans
elements[0..valid_data_count].
DataElement
L’entrée atomique dans la table. Doit être triée (x croissant, y décroissant, prix croissant) pour que la recherche binaire fonctionne.
Autorité et vaults
Identique à AMM v4 :amm_authorityest un PDA unique au niveau du programme dérivé avec la graine["amm authority"]. Il possède tous les vaults du pool et signe leurs mouvements.- Les vaults sont des comptes SPL Token dont le propriétaire est
amm_authority, pas des ATA.
Bitmask de statut
Identique à AMM v4. Contrôle si le swap/dépôt/retrait/crank sont activés.Suivi des frais et du PnL
La structureout_put suit :
need_take_pnl_coin,need_take_pnl_pc— frais de protocole accumulés mais pas encore balayés.WithdrawPnlles déplace.swap_coin_in_amount,swap_pc_in_amount, etc. — compteurs d’analyse.
Taille du compte
LeModelDataInfo est volumineux (~1,2 Mo, puisque 50 000 éléments × 24 octets par élément). C’est pourquoi la création d’un pool Stable nécessite une pré-allocation explicite de loyer et de compte. Le SDK Raydium et les outils gèrent cela de manière transparente ; les intégrateurs ont rarement besoin d’allouer manuellement.
Dérivation des comptes à partir de zéro
Comme AMM v4, Stable AMM utilise des clés avec graine (pas des PDA purs). L’identité canonique du pool est dérivée via :Où lire quoi
- Listes de comptes d’instruction :
products/stable/instructions. - Comment l’interpolation utilise la table :
products/stable/math. - Structure des frais et WithdrawPnl :
products/stable/fees. - Le découplage OpenBook du 2026-06-22 :
reference/changelog.

