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

Le modèle de frais

Le Stable AMM utilise la même structure de frais qu’AMM v4. Il n’existe qu’un seul palier de frais par pool (défini à l’initialisation) ; les pools ne peuvent pas être reconfigurés vers des paliers supérieurs.
ChampDéfautSignification
swap_fee_numerator / swap_fee_denominator25 / 10_000Frais de swap bruts : 0,25 % du volume d’entrée.
trade_fee_numerator / trade_fee_denominator25 / 10_000Même 0,25 % ; champ hérité autrefois utilisé pour la tarification des ordres OpenBook, conservé pour la compatibilité de mise en page.
pnl_numerator / pnl_denominator12 / 100Part du protocole dans les frais : 12 % — c’est-à-dire 0,25 % × 12 % = 0,03 % du volume.
min_separate_numerator / min_separate_denominator4 / 10_000Plancher d’arrondi interne.
Il n’existe pas de frais de fonds et pas de frais de créateur — ce sont des inventions post-AMM v4 (CPMM/CLMM). Le Stable AMM est antérieur à cette convention.

Comment la répartition est calculée

À chaque swap :
gross_fee = ceil(amount_in * (swap_fee_numerator / swap_fee_denominator))    // ex. 0,25 % de amount_in
pnl_portion = gross_fee * (pnl_numerator / pnl_denominator)                  // 12 % de gross_fee
lp_portion = gross_fee − pnl_portion                                          // 88 % de gross_fee
  • lp_portion reste dans le coffre, augmente k, et bénéficie aux LP lors du remboursement.
  • pnl_portion incrémente AmmInfo.out_put.need_take_pnl_coin ou need_take_pnl_pc (selon le token d’entrée) et est collectée par WithdrawPnl.
Même astuce de préservation de l’invariant que CPMM : le montant du PnL se trouve physiquement dans le coffre mais est soustrait des « réserves effectives » utilisées dans les mathématiques de la courbe, de sorte que le retirer ne change pas le prix.

PnL OpenBook (retiré)

Au début de sa vie, le pool affichait également des ordres limités sur OpenBook ; lorsque ceux-ci étaient exécutés, il gagnait ou perdait le spread market-maker/taker, réglé lors de MonitorStep, et suivait le résultat dans les compteurs out_put.total_pnl_{coin,pc}. Ce chemin est dormant depuis des années — le pool ne détient aucun ordre ouvert, donc la seule accumulation de frais est la part du protocole de 0,03 % décrite ci-dessus. Les compteurs total_pnl_* restent dans la mise en page mais ne s’incrémentent plus. La mise à jour du 2026-06-22 a supprimé le code OpenBook restant (y compris MonitorStep). CPMM est devenu le défaut pour les nouveaux pools en partie à cause de cet ancien couplage à OpenBook ; le Stable AMM est indépendant du carnet d’ordres.

Collecte

Le multisig Raydium (ou celui qui contrôle amm_admin) appelle WithdrawPnl pour collecter :
  1. Transfère need_take_pnl_coin et need_take_pnl_pc des coffres vers les comptes désignés par l’administrateur.
  2. Réinitialise les compteurs.
L’opération ne déplace pas la courbe. Les LP ne voient aucun changement de prix.
WithdrawPnl a été modifié dans la mise à jour du 2026-06-22 : il utilise désormais une mise en page fixe de 10 comptes, réservée à l’administrateur, sans chemin de compatibilité (les anciennes mises en page échouent avec des erreurs telles que InvalidTokenCoin), et lorsque les fonds disponibles du pool sont insuffisants pour couvrir le PnL, il retourne TakePnlError directement au lieu de désactiver le pool. Voir products/stable/instructions.

Remboursement des frais LP

Aucune instruction dédiée « collecter les frais ». Les frais LP s’accumulent dans les coffres, augmentant les réserves. Les LP les réalisent en brûlant des LP via Withdraw. La valeur d’un token LP augmente à mesure que les réserves augmentent.

Visualisation : où vont $1 000 de volume

Sur un Swap lourd en USDC de $1 000 contre un pool Stable avec paramètres par défaut :
Frais de swap bruts (0,25 %) :     $2,50
  Part LP   (0,22 %) :              $2,20  → reste dans le pool, augmente k
  Part PnL  (0,03 %) :              $0,30  → need_take_pnl_pc, collectée par WithdrawPnl
L'utilisateur reçoit (moins courbe) : $997,50
Comparez à AMM v4 (identique) et CPMM (palier 0,25 %, pas de frais de créateur) : CPMM donne aux LP $2,10, au protocole $0,30, au fonds $0,10.

Tableau de comparaison

Stable AMMAMM v4CPMM index=0
Frais de swap0,25 %0,25 %0,25 %
LP0,22 %0,22 %0,21 %
Protocole0,03 %0,03 %0,03 %
FondsAucunAucun0,01 %
CréateurAucunAucun0 par défaut
Matrice complète : reference/fee-comparison.

Notes pour les intégrateurs

  • Devis : Lisez toujours AmmInfo depuis la chaîne ; ne codez pas les frais en dur. Avec SetParams maintenant supprimé, les paramètres de frais sur les pools existants sont effectivement fixes.
  • Courbe vs. frais : Les frais de 0,25 % sont indépendants du fait que la courbe soit une formule (x·y=k dans AMM v4) ou une table de recherche (Stable). Les deux appliquent les mêmes 0,25 % au montant d’entrée.
  • Pas de récompenses : Les pools Stable ne supportent pas les émissions de récompenses sur le pool. Les fermes de l’écosystème (Farm v3/v5/v6) gèrent le staking ailleurs.

Où aller ensuite

Sources :
  • raydium-stable/program/src/state.rs (struct Fees)
  • Champs AmmInfo.fees on-chain sur les pools mainnet en direct