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 →
L’unique palier publié
Contrairement à CPMM et CLMM, AMM v4 n’a pas de compteAmmConfig. Les frais sont stockés directement dans la structure AmmInfo.fees de chaque pool et sont fixés lors de la création du pool. Les paramètres par défaut couvrent essentiellement tous les pools AMM v4 en production :
| Champ on-chain | Défaut | Signification |
|---|---|---|
swap_fee_numerator / swap_fee_denominator | 25 / 10_000 | Frais de swap bruts sur les swaps par AMM : 0,25% du volume d’entrée. |
trade_fee_numerator / trade_fee_denominator | 25 / 10_000 | Utilisé par l’intégration OpenBook pour calculer le prix des ordres limites incluant les frais. Par défaut, le même 0,25% que swap_fee. |
pnl_numerator / pnl_denominator | 12 / 100 | Part du protocole dans les frais de swap : 12% — c’est-à-dire 0,25% × 12% = 0,03% du volume. S’accumule dans les compteurs need_take_pnl_*. |
min_separate_numerator / min_separate_denominator | 5 / 10_000 | Seuil de précision interne utilisé par la logique d’arrondi de la répartition des frais. |
pnl_numerator / pnl_denominator est une fraction des frais de swap, et non du volume de trade — c’est une erreur de lecture courante. La part LP est le complément (88% des frais = 0,22% du volume) et est implicite ; il n’y a pas de numérateur séparé « part LP ».
Un petit nombre de pools créés tôt l’ont été avec des numérateurs différents ; lisez toujours AmmInfo.fees avant de citer.
Il n’y a pas de frais de fonds et pas de frais de créateur : ce sont des inventions de CPMM/CLMM qui n’existaient pas dans le modèle de frais original d’AMM v4.
Comment la répartition est calculée
À chaque swap, le pool prélève les frais bruts du montant d’entrée, puis répartit :lp_portionreste dans le coffre et contribue au prochaink. Les LP le capturent en échangeant leurs jetons LP plus tard.pnl_portionincrémenteAmmInfo.state_data.need_take_pnl_coinouneed_take_pnl_pcselon le côté d’entrée du swap.
TakePnl déplace les tokens sans changer le prix.
PnL depuis OpenBook (historique)
N’accumule plus. L’intégration OpenBook est désactivée, donc le deuxième flux de PnL décrit dans cette section n’est plus généré. Les compteurs
total_pnl_{coin,pc} sur les pools existants peuvent contenir des valeurs historiques, mais aucun nouveau montant n’est ajouté. Le chemin de frais de protocole de 0,03% (ci-dessus) n’est pas affecté et reste actif.MonitorStep et le programme les créditait aux compteurs informatifs state_data.total_pnl_{coin,pc}.
- Lorsque la grille affichée du pool était correctement calibrée autour du prix de la courbe, les remplissages OpenBook tendaient à être positifs en frais pour le pool — l’AMM faisait effectivement du market-making sur OpenBook et gagnait des rabais de teneur de marché.
- Lorsque OpenBook s’arrêtait ou que la file d’attente d’événements se remplissait, le pool pouvait avoir des ordres périmés qui se remplissaient à des prix désavantageux, produisant un PnL négatif. Ce couplage opérationnel était l’une des motivations pour s’éloigner de la conception hybride.
Collecte
L’admin (le multisig Raydium) appelleWithdrawPnl / TakePnl pour récupérer need_take_pnl_* dans les comptes « propriétaire PnL » au niveau du pool configurés sur l’AmmConfig du programme (une config différente, scoped au programme — pas l’AmmConfig par-pool de style CPMM). La récupération :
- Règle d’abord les remplissages OpenBook en attente. (Aucune opération maintenant qu’OpenBook est inactif.)
- Transfère
need_take_pnl_coin/need_take_pnl_pcdes coffres du pool vers la destination PnL. - Réinitialise les compteurs.
TakePnl.
Rachat des frais LP
Il n’y a pas d’instruction dédiée « collecter les frais LP ». Les frais LP s’accumulent dans les coffres et gonflentk au fil du temps ; les LP les réalisent en échangeant des jetons LP via Withdraw. La valeur d’un jeton LP croît de manière monotone avec la croissance de (coin_reserve_effective, pc_reserve_effective).
Visualisation : où vont 1 000 USDC de volume
Sur un swap lourd en USDC de 1 000 $ contre un pool avec paramètres par défaut :AmmConfig[0] (palier 0,25%, pas de frais de créateur) : LP obtient 2,10 $, protocole 0,30 $, fonds 0,10 $. CPMM introduit la ligne de fonds en la prélevant sur ce qui aurait été la part LP dans le palier équivalent d’AMM v4.
Tableau comparatif
| AMM v4 | CPMM index=0 | CLMM index=2 | |
|---|---|---|---|
| Frais de swap | 0,25% | 0,25% | 0,25% |
| LP | 0,22% | 0,21% | Varie selon les émissions |
| Protocole | 0,03% | 0,03% | Par palier |
| Fonds | N/A | 0,01% | Par palier |
| Créateur (optionnel) | N/A | 0 par défaut | N/A |
| Où les frais sont situés | Coffre du pool + need_take_pnl_* | Coffre du pool + protocol_fees_* + fund_fees_* | Global + par-tick + par-position |
reference/fee-comparison.
Notes pour les intégrateurs
- Citation. Récupérez
AmmInfovia le SDK ouapi-v3.raydium.io/pools/info/ids. Ne pas calculer votre propre citation contre les soldes bruts des coffres — les montants en séquestre OpenBook et l’exclusion PnL éloignent les réserves effectives de ce quegetTokenAccountBalanceaffiche. - Paramètres de frais périmés. En principe,
SetParamspourrait changerswap_fee_numerator, mais en pratique, le multisig Raydium n’a pas changé les paramètres par défaut pour aucun pool en production. Néanmoins, lisez toujours l’état on-chain plutôt que de coder en dur. - Pas de récompenses. AMM v4 ne supporte pas les émissions de récompenses au niveau du pool. Les fermes écosystème héritées (Farm v3 / v5 / v6) en sont l’équivalent au niveau du staking — voir
products/farm-staking.
Où aller ensuite
products/amm-v4/math— la dérivation des frais de swap dans la courbe.products/amm-v4/instructions— listes de comptes pourWithdrawPnl/SetParams.reference/fee-comparison— matrice côte à côte.
- Programme Raydium AMM —
raydium-io/raydium-amm - Champs de numérateur/dénominateur des frais AMM v4 on-chain (vérifiés contre les comptes
AmmInfosur mainnet).


