Passer au contenu principal

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.

Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →

Résumé en un paragraphe

Stable AMM est une variante du protocole AMM de Raydium qui remplace une formule de courbe par une table de consultation pré-remplie. Au lieu d’utiliser x·y=k, le pool stocke un tableau creux de points (x, y, prix) et utilise une recherche binaire + interpolation linéaire pour déterminer les prix. Cette conception excelle pour les paires de stablecoins et autres actifs ayant des relations de prix connues : les échanges entre jetons à parité 1-pour-1 ont un slippage quasi nul. Comme AMM v4, il s’intègre à un marché OpenBook et y publie des ordres à cours limité. La liquidité est actuellement faible ; la plupart des intégrateurs accèdent aux pools Stable par le programme de routage AMM.

Pourquoi une table de consultation au lieu de xy=k

Les AMM à produit constant engendrent un slippage élevé sur les paires avec des bandes de prix étroites. Un échange USDC-USDT devrait coûter presque rien ; sur un pool à produit constant, k=x·y force un mouvement de prix même pour un petit volume. Une table de consultation permet à l’administrateur du pool d’exprimer la relation de prix réelle :
  • Pour les stablecoins : densifiez la table autour de 1:1 pour que les micro-échanges coûtent ~0 slippage.
  • Pour les paires collatéralisées : encodez le ratio cible et laissez la grille façonner la surface de frais/incitation.
La table est statique entre les appels UpdateModelData (que l’administrateur envoie quand la relation change), donc le coût on-chain est simplement la recherche par interpolation — beaucoup moins cher que de recalculer une formule.

Comment ça marche : le compte model-data

Le pool détient un compte ModelDataInfo — un tableau de 50 000 éléments de structs DataElement. Chaque élément contient :
DataElement {
  x: u64,           // coordinate X de la table
  y: u64,           // coordinate Y de la table
  price: u64,       // prix à (x, y)
}
Seuls les premiers valid_data_count éléments sont remplis ; le reste est mis à zéro. Lors d’un swap, le programme :
  1. Calcule un ratio à partir des réserves actuelles du pool et utilise une recherche binaire pour trouver quels deux éléments de la table encadrent ce ratio.
  2. Interpole linéairement entre les deux points encadrants pour obtenir le prix de cotation.
  3. Applique les frais (identiques à 0,25 % comme AMM v4) et retourne le résultat à l’utilisateur.
Le champ multiplier sur la table tient compte de la possibilité que x et y soient stockés à une échelle réduite (par exemple, avec 6 décimales au lieu de 18). La découverte des prix est remise à l’échelle en conséquence.

Comparaison : Stable AMM vs. AMM v4 vs. CPMM

DimensionStable AMMAMM v4CPMM
CourbeTable de consultation + interpolationProduit constant (xy=k)Produit constant
Cas d’usage principalStablecoins, paires à paritéPaires génériques, liquidité profonde existantePaires génériques, nouveaux déploiements
Dépendance OpenBookOuiOuiNon
Token-2022NonNonOui
Profil de slippageMinimal à 1:1Élevé aux ratios étroitsModéré sur l’étendue
Courbe réglable par l’adminOui (UpdateModelData)Non (SetParams uniquement)Non
Taille de la table~50 000 éléments × 24 octetsN/AN/A
Calcul par swap~5k–15k CU (recherche binaire + interpolation)~150k–200k CU~60k–100k CU
Nombre de comptes par swap~17 (AMM + OpenBook)~18 (AMM + OpenBook)~11

Modèle mental

Un pool Stable AMM est un AMM à table de consultation interpolée dont les coffres séquestrent également les ordres à cours limité OpenBook, exactement comme AMM v4. La différence clé est que la courbe de découverte des prix n’est pas codée en dur — c’est un tableau creux que l’administrateur peut remplir et mettre à jour. Les opérations sont similaires à AMM v4 : swap direct (utilisateur ↔ pool), dépôt / retrait (opérations LP), crank (MonitorStep), et maintenance admin (UpdateModelData, SetParams).

Quand Stable AMM est le bon choix

  • Vous exploitez une paire stablecoin ou autre paire d’actifs corrélés et voulez un prix serré et prévisible.
  • Vous avez une connaissance approfondie de la relation de prix de votre paire et voulez l’encoder directement comme courbe.
  • Vous avez déjà des intégrations pour AMM v4 et avez simplement besoin d’une variante de courbe différente.
Pour un pool neuf et polyvalent sans exigence de corrélation étroite, CPMM est le choix par défaut plus simple et plus liquide.

Où aller ensuite

  • Comptes — référence des champs AmmInfo, ModelDataInfo, DataElement.
  • Mathématiques — recherche binaire, interpolation et application des frais.
  • InstructionsInitModelData, UpdateModelData, instructions de swap et LP.
  • Frais — la répartition 0,25 % (identique à AMM v4).
  • Démos de code — routage et intégration directe.
Sources :