Langsung ke konten utama

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.

Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →

Satu-satunya tingkatan yang dipublikasikan

Berbeda dengan CPMM dan CLMM, AMM v4 tidak memiliki akun AmmConfig. Biaya disimpan langsung pada struct AmmInfo.fees setiap pool dan ditetapkan saat pembuatan pool. Nilai default yang mencakup praktis semua pool AMM v4 yang aktif:
Bidang on-chainDefaultArti
swap_fee_numerator / swap_fee_denominator25 / 10_000Biaya perdagangan kotor pada swap jalur AMM: 0,25% dari volume input.
trade_fee_numerator / trade_fee_denominator25 / 10_000Digunakan oleh integrasi OpenBook untuk menghitung harga limit-order inklusif biaya. Sama dengan 0,25% seperti swap_fee secara default.
pnl_numerator / pnl_denominator12 / 100Bagian protokol dari biaya swap: 12% — yaitu 0,25% × 12% = 0,03% dari volume. Terakumulasi ke penghitung need_take_pnl_*.
min_separate_numerator / min_separate_denominator5 / 10_000Lantai presisi internal yang digunakan oleh logika pembulatan pembagian biaya.
Perhatikan bahwa pnl_numerator / pnl_denominator adalah fraksi dari biaya swap, bukan dari volume perdagangan — kesalahan bacaan yang umum. Bagian LP adalah pelengkap (88% dari biaya = 0,22% dari volume) dan bersifat implisit; tidak ada numerator “bagian LP” terpisah. Sejumlah kecil pool awal dibuat dengan numerator yang berbeda; selalu baca AmmInfo.fees sebelum mengutip. Tidak ada biaya dana dan tidak ada baris biaya kreator: ini adalah inovasi CPMM/CLMM yang tidak ada dalam model biaya asli AMM v4.

Bagaimana pembagian dihitung

Pada setiap swap, pool mengenakan biaya perdagangan kotor dari jumlah input, kemudian membagi:
gross_fee   = ceil(amount_in * swap_fee_numerator / swap_fee_denominator)        // 0.25% of amount_in
pnl_portion = gross_fee * pnl_numerator / pnl_denominator                        // 12% of gross_fee
lp_portion  = gross_fee − pnl_portion                                            // 88% of gross_fee
  • lp_portion tetap berada di vault dan berkontribusi pada k berikutnya. LP menangkapnya dengan menebus token LP nanti.
  • pnl_portion menambah AmmInfo.state_data.need_take_pnl_coin atau need_take_pnl_pc tergantung pada sisi mana yang merupakan input swap.
Trik penjaga invarian yang sama seperti CPMM: jumlah PnL secara fisik berada di vault tetapi dikurangi dari cadangan yang digunakan dalam kurva, jadi TakePnl memindahkan token keluar tanpa mengubah harga.

PnL dari OpenBook (historis)

Tidak lagi terkumpul. Integrasi OpenBook dinonaktifkan, sehingga aliran PnL kedua yang dijelaskan di bagian ini tidak lagi dihasilkan. Penghitung total_pnl_{coin,pc} pada pool yang ada mungkin membawa nilai historis, tetapi tidak ada jumlah baru yang ditambahkan. Jalur biaya protokol 0,03% (di atas) tidak terpengaruh dan masih aktif.
Secara historis, AMM v4 memiliki aliran pendapatan kedua mirip biaya: ketika limit order-nya di OpenBook terisi, pool bisa berada di sisi pengambil pengisian dan menghasilkan atau membayar spread pembuat/pengambil pasar. Acara PnL ini diselesaikan ke dalam vault pool selama MonitorStep dan program mengkreditnya ke state_data.total_pnl_{coin,pc} sebagai penghitung informasi.
  • Ketika grid yang diposting pool dikalibrasi dengan benar di sekitar harga kurva, pengisian OpenBook cenderung positif biaya untuk pool — AMM secara efektif membuat pasar di OpenBook dan mendapatkan rabat pembuat.
  • Ketika OpenBook berhenti atau antrean acara penuh, pool bisa duduk di atas pesanan basi yang terisi dengan harga yang merugikan, menghasilkan PnL negatif. Kopling operasional ini adalah salah satu motivasi untuk beralih dari desain hibrida.
PnL OpenBook ini bukan sama dengan biaya protokol 0,03%. PnL OpenBook menggembungkan cadangan pool secara langsung (menguntungkan LP + protokol sebanding dengan pembagian biaya), sementara biaya protokol 0,03% ditandai khusus untuk sweeping admin. Dengan sisi OpenBook mati, satu-satunya akumulasi biaya hari ini adalah 0,25% pada swap AMM dan pembagian 22/3 nya.

Pengumpulan

Admin (multisig Raydium) memanggil WithdrawPnl / TakePnl untuk menghapus need_take_pnl_* ke akun “pemilik PnL” tingkat pool yang dikonfigurasi pada AmmConfig program (konfigurasi berbeda, scoped program — bukan AmmConfig gaya per-pool CPMM). Penghapusan:
  1. Menyelesaikan pengisian OpenBook yang tertunda terlebih dahulu. (Operasi kosong sekarang OpenBook tidak aktif.)
  2. Mentransfer need_take_pnl_coin / need_take_pnl_pc dari vault pool ke tujuan PnL.
  3. Mengosongkan penghitung.
Operasi tidak menggerakkan kurva. LP seharusnya tidak melihat perubahan harga di seluruh panggilan TakePnl.

Penebusan biaya LP

Tidak ada instruksi khusus “kumpulkan biaya LP”. Biaya LP terakumulasi dalam vault dan menggembungkan k seiring waktu; LP merealisasikannya dengan membakar token LP melalui Withdraw. Nilai token LP tumbuh secara monotonik saat (coin_reserve_effective, pc_reserve_effective) tumbuh.

Visualisasi: di mana volume 1.000 USDC pergi

Pada swap yang berat USDC sebesar $1.000 terhadap pool dengan parameter default:
Gross trade fee (0.25%):   $2.50
  LP share   (0.22%):       $2.20   → stays in pool, raises k
  PnL share  (0.03%):       $0.30   → need_take_pnl_pc, swept by TakePnl
Remainder sent to user:   $997.50   (minus curve-driven price impact)
Bandingkan dengan CPMM AmmConfig[0] (tingkatan 0,25%, tanpa biaya kreator): LP mendapat $2,10, protokol $0,30, dana $0,10. CPMM memperkenalkan baris dana dengan mengukir dari apa yang akan menjadi bagian LP dalam tingkatan setara AMM v4.

Tabel perbandingan

AMM v4CPMM index=0CLMM index=2
Biaya perdagangan0,25%0,25%0,25%
LP0,22%0,21%Bervariasi menurut emisi
Protokol0,03%0,03%Per tingkatan
DanaN/A0,01%Per tingkatan
Kreator (opsional)N/A0 secara defaultN/A
Di mana biaya dudukVault pool + need_take_pnl_*Vault pool + protocol_fees_* + fund_fees_*Global + per-tick + per-position
Matriks lengkap di reference/fee-comparison.

Catatan pengintegrasian

  • Kutipan. Ambil AmmInfo melalui SDK atau api-v3.raydium.io/pools/info/ids. Jangan hitung kutipan Anda sendiri terhadap saldo vault mentah — jumlah yang disimpan OpenBook dan pengecualian PnL keduanya menarik cadangan efektif jauh dari apa yang ditunjukkan getTokenAccountBalance.
  • Parameter biaya basi. Pada prinsipnya SetParams bisa mengubah swap_fee_numerator, tetapi dalam praktik multisig Raydium belum mengubah default untuk pool aktif mana pun. Tetap saja, selalu baca dari status on-chain daripada hardcoding.
  • Tanpa imbalan. AMM v4 tidak mendukung emisi imbalan pada pool. Farm ekosistem legacy (Farm v3 / v5 / v6) adalah setara layer staking — lihat products/farm-staking.

Ke mana selanjutnya

Sumber: