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

# Biaya Stable AMM

> Identik dengan AMM v4: biaya perdagangan 0,25%, pembagian LP 0,22% / protokol 0,03%. Tanpa biaya dana, tanpa biaya kreator.

<Info>
  **Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.**

  [Lihat versi bahasa Inggris →](/products/stable/fees)
</Info>

## Model biaya

Stable AMM menggunakan **struktur biaya yang sama dengan AMM v4**. Setiap pool hanya memiliki satu tingkat biaya (ditetapkan saat inisialisasi); pool tidak dapat dikonfigurasi ulang ke tingkat yang lebih tinggi.

| Field                                               | Default       | Arti                                                                                                                                    |
| --------------------------------------------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `swap_fee_numerator / swap_fee_denominator`         | `25 / 10_000` | **Biaya perdagangan kotor: 0,25%** dari volume input.                                                                                   |
| `trade_fee_numerator / trade_fee_denominator`       | `25 / 10_000` | Sama 0,25%; field warisan yang dulunya digunakan untuk penetapan harga pesanan OpenBook, dipertahankan untuk kompatibilitas tata letak. |
| `pnl_numerator / pnl_denominator`                   | `12 / 100`    | **Bagian protokol dari biaya: 12%** — yaitu, `0,25% × 12% = 0,03%` dari volume.                                                         |
| `min_separate_numerator / min_separate_denominator` | `4 / 10_000`  | Lantai pembulatan internal.                                                                                                             |

Tidak ada **biaya dana** dan **biaya kreator** — ini adalah inovasi pasca-AMM v4 (CPMM/CLMM). Stable AMM mendahului konvensi tersebut.

## Cara pembagian dihitung

Pada setiap swap:

```
gross_fee = ceil(amount_in * (swap_fee_numerator / swap_fee_denominator))    // misalnya, 0,25% dari amount_in
pnl_portion = gross_fee * (pnl_numerator / pnl_denominator)                  // 12% dari gross_fee
lp_portion = gross_fee − pnl_portion                                          // 88% dari gross_fee
```

* **`lp_portion`** tetap di vault, menaikkan `k`, dan menguntungkan LP saat penebusan.
* **`pnl_portion`** menambah `AmmInfo.out_put.need_take_pnl_coin` atau `need_take_pnl_pc` (tergantung token input) dan disapu oleh `WithdrawPnl`.

Sama dengan **trik penjaga invarian** CPMM: jumlah PnL berada secara fisik di vault tetapi dikurangi dari "cadangan efektif" yang digunakan dalam matematika kurva, sehingga menghapusnya tidak menggeser harga.

## OpenBook PnL (sudah pensiun)

Awal dalam hidupnya, pool juga memposting pesanan limit di OpenBook; ketika pesanan tersebut terisi, pool mendapatkan atau kehilangan spread pembuat pasar/pengambil, diselesaikan selama `MonitorStep`, dan melacak hasilnya dalam penghitung `out_put.total_pnl_{coin,pc}`. **Jalur tersebut telah tidak aktif selama bertahun-tahun** — pool tidak memiliki pesanan terbuka, jadi satu-satunya akrual biaya adalah bagian protokol 0,03% yang dijelaskan di atas. Penghitung `total_pnl_*` tetap ada dalam tata letak tetapi tidak lagi bertambah. [Upgrade 2026-06-22](/id/reference/changelog) menghapus kode OpenBook yang tersisa (termasuk `MonitorStep`). CPMM menjadi default untuk pool baru sebagian karena kopling sebelumnya dengan OpenBook; Stable AMM tidak bergantung pada order book.

## Pengumpulan

Multisig Raydium (atau siapa pun yang mengontrol `amm_admin`) memanggil `WithdrawPnl` untuk menyapu:

1. Mentransfer `need_take_pnl_coin` dan `need_take_pnl_pc` dari vault ke akun yang ditunjuk admin.
2. Mengosongkan penghitung.

Operasi ini tidak menggerakkan kurva. LP tidak melihat perubahan harga.

<Warning>
  `WithdrawPnl` diubah dalam upgrade 2026-06-22: sekarang menggunakan **tata letak 10-akun tetap, hanya admin, tanpa jalur kompatibilitas** (tata letak lama gagal dengan kesalahan seperti `InvalidTokenCoin`), dan ketika dana yang tersedia di pool tidak cukup untuk menutupi PnL, ia mengembalikan `TakePnlError` secara langsung alih-alih menonaktifkan pool. Lihat [`products/stable/instructions`](/id/products/stable/instructions#withdrawpnl).
</Warning>

## Penebusan biaya LP

Tidak ada instruksi "kumpulkan biaya" khusus. Biaya LP terakumulasi di vault, menaikkan cadangan. LP merealisasikannya dengan membakar LP melalui `Withdraw`. Nilai token LP tumbuh seiring pertumbuhan cadangan.

## Visualisasi: kemana \$1.000 volume pergi

Pada `Swap` yang berat USDC sebesar \$1.000 terhadap pool Stable dengan parameter default:

```
Biaya perdagangan kotor (0,25%):     $2,50
  Bagian LP   (0,22%):                $2,20  → tetap di pool, menaikkan k
  Bagian PnL  (0,03%):                $0,30  → need_take_pnl_pc, disapu oleh WithdrawPnl
Pengguna menerima (minus kurva):      $997,50
```

Bandingkan dengan AMM v4 (identik) dan CPMM (tingkat 0,25%, tanpa biaya kreator): CPMM memberikan LP \$2,10, protokol \$0,30, dana \$0,10.

## Tabel perbandingan

|                   | Stable AMM | AMM v4    | CPMM `index=0`   |
| ----------------- | ---------- | --------- | ---------------- |
| Biaya perdagangan | 0,25%      | 0,25%     | 0,25%            |
| LP                | 0,22%      | 0,22%     | 0,21%            |
| Protokol          | 0,03%      | 0,03%     | 0,03%            |
| Dana              | Tidak ada  | Tidak ada | 0,01%            |
| Kreator           | Tidak ada  | Tidak ada | 0 secara default |

Matriks lengkap: [`reference/fee-comparison`](/id/reference/fee-comparison).

## Catatan integrator

* **Penawaran:** Selalu baca `AmmInfo` dari chain; jangan hardcode biaya. Dengan `SetParams` sekarang dihapus, parameter biaya pada pool yang ada secara efektif tetap.
* **Kurva vs. biaya:** Biaya 0,25% independen dari apakah kurva adalah formula (x·y=k di AMM v4) atau tabel pencarian (Stable). Keduanya menerapkan 0,25% yang sama ke jumlah input.
* **Tanpa reward:** Pool Stable tidak mendukung emisi reward on-pool. Farm ekosistem (Farm v3/v5/v6) menangani staking di tempat lain.

## Ke mana selanjutnya

* [`products/stable/math`](/id/products/stable/math) — penerapan biaya dalam matematika swap.
* [`products/stable/instructions`](/id/products/stable/instructions) — daftar akun `WithdrawPnl`.
* [`products/amm-v4/fees`](/id/products/amm-v4/fees) — derivasi biaya yang lebih dalam untuk jalur OpenBook.
* [`reference/fee-comparison`](/id/reference/fee-comparison) — semua produk berdampingan.

Sumber:

* `raydium-stable/program/src/state.rs` (struct `Fees`)
* Field `AmmInfo.fees` on-chain pada pool mainnet yang aktif
