Skip to main content
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Banneau de version.
  • SDK : @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Cluster : Solana mainnet-beta
  • ID du programme Stable AMM : 5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h (voir reference/program-addresses)
  • Dernière vérification : 2026-04
Le module liquidity du SDK gère les pools Stable AMM nativement. Les pools stables apparaissent comme version: 5 (ou pooltype: "StablePool") sur ApiV3PoolInfoStandardItem ; les mêmes assistants addLiquidity / removeLiquidity / swap fonctionnent pour eux que pour les pools à produit constant AMM v4 (version: 4) — le SDK détecte la variante et émet automatiquement les instructions correctes. Les mathématiques de courbe stable hors chaîne se trouvent dans src/raydium/liquidity/stable.ts.

Configuration

Identifier un pool Stable

Deux signaux équivalents sur ApiV3PoolInfoStandardItem :
À la fois AMM v4 (version: 4, produit constant) et Stable AMM (version: 5) passent par la même API LiquidityModule sur le SDK. En interne, le module se dispatche vers :
  • InstructionType.AmmV4AddLiquidity / AmmV4RemoveLiquidity pour les pools v4
  • InstructionType.AmmV5AddLiquidity / AmmV5RemoveLiquidity pour les pools v5 (Stable)
Le programId du pool (retourné avec les clés du pool) indique au SDK dans quel programme faire un CPI ; vous n’avez pas besoin de le coder en dur.

Trouver un pool par paire de mints

Si la paire de mints a à la fois un pool v4 (produit constant) et un pool v5 (stable), la réponse inclut les deux — choisissez celui dont votre flux a besoin, ou confiez-les au programme AMM Routing et laissez-le choisir la meilleure route.

Effectuer un swap via un pool Stable

Le flux LiquidityModule.swap a la même forme que pour les pools v4 — il suffit de lui passer un objet pool v5 :
Le SDK lit le programId du pool à partir des clés du pool et se dispatche dans le programme Stable AMM. Aucun argument programId spécial n’est nécessaire.

Ajouter et retirer de la liquidité

addLiquidity et removeLiquidity fonctionnent de manière identique sur les pools v4 et v5 :
En interne, le SDK émet InstructionType.AmmV5AddLiquidity car pooltype.includes("StablePool") est vrai. Le flux removeLiquidity correspondant est symétrique — fournissez le lpAmount et les montants minimums que vous accepterez de chaque côté.

Assistants de cotation hors chaîne (stable.ts)

Pour les cotations côté serveur ou les backtests, le SDK expose les mathématiques de courbe stable sous-jacentes :
Ce sont des fonctions pures — pas de RPC, pas de signature. Le ModelDataInfo sur chaîne est récupéré une seule fois par initLayout() et mis en cache dans raydium.liquidity.stableLayout. Passez les réserves actuelles (x, y) et les assistants calculent en effectuant une recherche binaire dans la table de consultation et en interpolant linéairement entre les deux lignes DataElement environnantes. Voir products/stable/math pour l’algorithme sous-jacent.

Routage via AMM Routing (multi-hop / meilleur prix)

Si vous ne voulez pas choisir un lieu vous-même, le programme AMM Routing considérera chaque AMM Raydium (v4 / CPMM / CLMM / Stable) et routera via la combinaison la meilleure :
C’est le chemin recommandé pour les swaps en production et les agrégateurs — vous n’avez jamais besoin de décider manuellement si un pool Stable existe ou s’il est le meilleur lieu aujourd’hui.

Recommandations

  1. Pour les swaps des utilisateurs finaux, préférez le flux de routage tradeV2. Il gère tous les types de pools Raydium, y compris Stable.
  2. Pour les opérations spécifiques au pool (ajout / suppression de LP sur un pool Stable connu), utilisez directement le LiquidityModule — il détecte automatiquement les pools v5.
  3. Pour les cotations hors chaîne / l’analyse, appelez getStablePrice / getDyByDxBaseIn / getDxByDyBaseIn après initLayout(). Pas de trafic RPC par cotation après que les données du modèle soient mises en cache.
  4. Ne codez pas en dur les instructions SwapBaseIn brutes. La mise à jour du 2026-06-22 a supprimé les comptes OpenBook morts, donc la nouvelle disposition de swap prend 9 comptes (l’ancienne disposition de 18 comptes analyse toujours pour la compatibilité rétroactive). Deposit est maintenant 12 comptes (anciens 14 compatibles), Withdraw 12 (anciens 21/22 compatibles), et WithdrawPnl 10 sans aucun chemin de compatibilité. Les assistants pré-construits du SDK sélectionnent la disposition et l’ordre corrects pour vous ; rouler le vôtre est sujet aux erreurs. Voir products/stable/instructions pour les tableaux de comptes complets.

Où aller ensuite

  • Math — comment fonctionne l’interpolation de la table de consultation.
  • Instructions — référence complète des instructions.
  • AMM Routing — routage multi-pool sur AMM v4, CPMM, CLMM, Stable.
Sources :