> ## 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.

# Frais du Stable AMM

> Identique à AMM v4 : frais de swap de 0,25 %, répartition LP / protocole de 0,22 % / 0,03 %. Pas de frais de fonds, pas de frais de créateur.

<Info>
  **Cette page est traduite automatiquement par IA. La version anglaise fait foi.**

  [Voir la version anglaise →](/products/stable/fees)
</Info>

## 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.

| Champ                                               | Défaut        | Signification                                                                                                                          |
| --------------------------------------------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `swap_fee_numerator / swap_fee_denominator`         | `25 / 10_000` | **Frais de swap bruts : 0,25 %** du volume d'entrée.                                                                                   |
| `trade_fee_numerator / trade_fee_denominator`       | `25 / 10_000` | Mê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_denominator`                   | `12 / 100`    | **Part du protocole dans les frais : 12 %** — c'est-à-dire `0,25 % × 12 % = 0,03 %` du volume.                                         |
| `min_separate_numerator / min_separate_denominator` | `4 / 10_000`  | Plancher 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](/fr/reference/changelog) 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.

<Warning>
  `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`](/fr/products/stable/instructions#withdrawpnl).
</Warning>

## 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 AMM | AMM v4 | CPMM `index=0` |
| ------------- | ---------- | ------ | -------------- |
| Frais de swap | 0,25 %     | 0,25 % | 0,25 %         |
| LP            | 0,22 %     | 0,22 % | 0,21 %         |
| Protocole     | 0,03 %     | 0,03 % | 0,03 %         |
| Fonds         | Aucun      | Aucun  | 0,01 %         |
| Créateur      | Aucun      | Aucun  | 0 par défaut   |

Matrice complète : [`reference/fee-comparison`](/fr/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

* [`products/stable/math`](/fr/products/stable/math) — application des frais dans les mathématiques de swap.
* [`products/stable/instructions`](/fr/products/stable/instructions) — liste des comptes `WithdrawPnl`.
* [`products/amm-v4/fees`](/fr/products/amm-v4/fees) — dérivation plus approfondie des frais pour le chemin OpenBook.
* [`reference/fee-comparison`](/fr/reference/fee-comparison) — comparaison côte à côte de tous les produits.

Sources :

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