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 →
Ini adalah changelog dokumentasi — catatan pembaruan halaman-halaman ini sejak proyek diluncurkan. Untuk linimasa historis protokol itu sendiri, lihat
introduction/history-and-milestones. Setiap entri memuat tanggal, daftar bab yang terpengaruh, pemicu perubahan, dan tanggal verifikasi yang menunjukkan kapan status on-chain dan kode sumber program terakhir dicocokkan dengan konten tertulis.Belum Dirilis — CLMM: limit order, single-sided fee, dynamic fee
Rilis CLMM berikutnya menambahkan tiga kemampuan di tingkat pool. Ketiganya bersifat opt-in saat pembuatan pool dan kompatibel ke belakang dengan pool dan posisi yang sudah ada.Ringkasan untuk integrator
- Limit order kini menjadi primitif CLMM kelas pertama. LP dapat membuka order single-tick pada pool yang mendukungnya; order diisi secara FIFO saat swap melewati tick, dan off-chain keeper (
limit_order_admin) dapat menyelesaikan output yang sudah terisi tanpa pemilik harus online. Tujuh metode SDK baru (openLimitOrder,increaseLimitOrder,decreaseLimitOrder,settleLimitOrder,closeLimitOrder,closeAllLimitOrder,settleAllLimitOrder) dan tiga endpoint Temp API baru di bawah/limit-order/(order aktif, riwayat per-user, log event per-PDA) mencakup seluruh alur. - Single-sided fee (
CollectFeeOn) memungkinkan pool memungut biaya swap dari sisi input (mode lama, mode0), atau selalu daritoken_0(mode1), atau selalu daritoken_1(mode2). Berguna ketika salah satu sisi pasangan adalah token akuntansi kanonik. - Dynamic fee memungkinkan pool memilih surcharge pelacak volatilitas yang naik seiring pergerakan tick yang cepat dan meluruh seiring waktu, dikalibrasi oleh
DynamicFeeConfigper-tier danDynamicFeeInfoper-pool. Endpoint baru/main/clmm-dynamic-configmenampilkan daftar tier. - Instruksi baru,
CreateCustomizablePool, mengekspos ketiga parameter tersebut saat pembuatan pool.CreatePoolklasik tetap berfungsi untuk pool dengan fee default dan tanpa limit order. - Perubahan breaking bagi indexer: penghitung volume per-arah (
swap_in_amount_token_{0,1},swap_out_amount_token_{0,1}) dan penghitung fee seumur hidup (total_fees_token_{0,1},total_fees_claimed_token_{0,1}) padaPoolStatedihapus ke padding untuk memberi ruang bagifee_ondandynamic_fee_info. Indexer yang membaca field tersebut secara langsung harus berpindah ke ringObservationon-chain atau API.
Mengapa ini penting (bagi trader, LP, dan integrator)
- Trader mendapatkan kuotasi yang lebih ketat pada pasangan long-tail dan berbasis peristiwa: dynamic fee memungkinkan pool menyerap surcharge volatilitas dari taker tanpa LP harus secara aktif memperlebar rentang, dan tangga limit order memperdalam likuiditas on-chain pada harga tertentu tanpa mengomit modal sekitar rentang.
- LP mendapatkan strategi ketiga di samping rentang terkonsentrasi dan posisi full-range: tempatkan order pada harga tepat, isi saat harga menyentuhnya, selesaikan ke token kuotasi. Tidak diperlukan rebalancing aktif untuk bagian yang sudah terisi.
- Integrator dapat memodelkan pool dynamic-fee secara deterministik — algoritma dan parameternya sepenuhnya on-chain, tier kalibrasi dapat di-query, dan jalur swap tidak berubah bentuk (hanya fee per langkah yang bervariasi).
Perubahan pada program
Akun baru
DynamicFeeConfig— catatan kalibrasi per-tier (filter period, decay period, reduction factor, dynamic-fee control, max volatility accumulator). Dibuat olehCreateDynamicFeeConfig(admin), direferensikan olehCreateCustomizablePoolsaat dynamic fee diaktifkan.LimitOrderState— akun per-order (PDA seeds:[owner, limit_order_nonce, order_nonce]) yang menyimpan pool, tick, sisi, jumlah input, rasio yang belum terisi, FIFO cohort phase, dan snapshot pembukuan. Siklus hidupnya bersifat implisit (filled_amountvstotal_amount, ditambah keberadaan akun):Open → Filled → Settled → Closed.LimitOrderNonce— penghitung inkremental monoton per-(owner, nonce_index) yang menjadi seed PDA limit-order.nonce_index: u8memungkinkan pemilik yang sama mempartisi order ke dalam hingga 256 aliran nonce independen.
Perubahan bentuk PoolState
| Kelompok field | Tata letak lama | Tata letak baru |
|---|---|---|
| Penghitung volume per-arah | swap_in_amount_token_0, swap_out_amount_token_0, swap_in_amount_token_1, swap_out_amount_token_1 | Dilipat ke padding5: [u128; 4] |
| Penghitung fee seumur hidup | total_fees_token_0, total_fees_claimed_token_0, total_fees_token_1, total_fees_claimed_token_1 | Dilipat ke padding6: [u64; 4] |
| Single-sided fee | — | fee_on: u8 (0 = FromInput, 1 = Token0Only, 2 = Token1Only) |
| Dynamic fee | — | dynamic_fee_info: DynamicFeeInfo (tersemat) |
PoolState ke ring Observation atau API. Penghitung yang dihapus tidak dinolkan pada pool yang sudah ada (nilainya adalah data terakhir yang tersimpan), sehingga membaca ulang field tersebut setelah upgrade akan menghasilkan data basi.
Penambahan pada TickState (tanpa breaking change)
Empat field baru ditambahkan di akhir TickState, menggantikan sebagian padding ekornya:
order_phase: u64— penghitung yang membedakan cohort limit-order pada tick ini.orders_amount: u64— total input yang dikomit oleh semua order terbuka pada tick ini (tidak semuanya sepenuhnya belum terisi).part_filled_orders_remaining: u64— input yang belum terisi dalam cohort yang sedang dikonsumsi oleh swap.unfilled_ratio_x64: u128— rasio Q64.64 yang digunakan untuk menghitung bagian pengisian setiap order.
Instruksi baru
CreateDynamicFeeConfig(admin) — membuat tierDynamicFeeConfigyang telah dikalibrasi. Otoritas: multisig treasury yang sama denganCreateAmmConfig.UpdateDynamicFeeConfig(admin) — memperbarui parameter tier yang sudah ada.CreateCustomizablePool— titik masuk pembuatan pool yang mengeksposcollect_fee_on,enable_dynamic_fee, dandynamic_fee_config. Berdampingan denganCreatePool; kami merekomendasikanCreateCustomizablePooluntuk pool baru yang memerlukan parameter baru.OpenLimitOrder— membuka limit order single-tick. MenaikkanLimitOrderNonce, mengalokasikanLimitOrderState, memasukkan order ke cohort FIFO pada tick.IncreaseLimitOrder/DecreaseLimitOrder— menyesuaikan bagian order yang belum terisi. Akan revert pada order yang sudah terisi penuh denganInvalidOrderPhase.SettleLimitOrder— menyapu output yang sudah terisi ke ATA pemilik. Pemanggil bisa berupa pemilik atau keeperlimit_order_adminpool.CloseLimitOrder— menutup order yang sudah diselesaikan sepenuhnya untuk mengklaim kembali rent.
Perubahan perilaku SwapV2
Jalur swap itu sendiri tidak berubah bentuk, namun tiga hal kini terjadi di sepanjang proses:
- Dynamic fee (bila diaktifkan):
DynamicFeeInfopool diperbarui setiap langkah (decay → accumulate → cap), dan surcharge yang dihasilkan ditambahkan di atas fee dasar untuk langkah tersebut. - Pencocokan limit order (bila langkah melewati tick yang diinisialisasi dan memiliki order terbuka): sebagian input swap dikonsumsi secara FIFO untuk mengisi cohort pada tick tersebut, dengan
unfilled_ratio_x64diperbarui secara atomik. - Perutean single-sided fee (bila
fee_on != 0): fee diambil daritoken_0atautoken_1terlepas dari arah swap, bukan selalu dari sisi input.
Kode error baru
EnumErrorCode dinomori ulang dalam rilis ini: lima varian lama (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) dihapus, dan sebelas varian baru ditambahkan. Karena Anchor menomori error berdasarkan urutan enum dari 6000, setiap kode error pada atau setelah posisi yang dihapus telah bergeser — klien yang meng-hardcode kode numerik perlu memetakan ulang.
Kode-kode baru adalah:
6040OrderAlreadyFilled6041InvalidOrderPhase6042InvalidLimitOrderAmount6043OrderPhaseSaturated6044InvalidDynamicFeeConfigParams6045InvalidFeeOn6046ZeroSqrtPrice6047ZeroLiquidity6048MissingBaseFlag6049MissingMintAccount6050MissingTokenProgram2022
Perubahan pada SDK (@raydium-io/raydium-sdk-v2)
- Metode baru pada
raydium.clmm:createCustomizablePool,openLimitOrder,increaseLimitOrder,decreaseLimitOrder,settleLimitOrder,settleAllLimitOrder,closeLimitOrder,closeAllLimitOrder. - Helper REST baru pada
raydium.api:getClmmDynamicConfigs,getClmmLimitOrderConfigs. - Tipe baru: enum
CollectFeeOn,DynamicFeeConfig,DynamicFeeInfo,LimitOrderState,LimitOrderConfig. - Reorganisasi internal:
utils/dipindahkan kelibraries/. Barrel paket tidak berubah; hanya impor mendalam di bawah@raydium-io/raydium-sdk-v2/utils/...yang perlu diperbarui ke…/libraries/....
products/clmm/code-demos.
Perubahan pada API
api-v3— dua endpoint baru di bawah/main/:GET /main/clmm-dynamic-config— daftar tierDynamicFeeConfig.GET /main/clmm-limit-order-config— konfigurasi limit order per-pool.
temp-api-v1— tiga endpoint baru di bawah/limit-order/:GET /limit-order/order/list?wallet=…— order yang sedang diparkir oleh suatu wallet (terbuka dan sebagian terisi, disajikan dari cache Redis indexer; payload yang sama mencakup kedua fase melaluitotalAmount/filledAmount/pendingSettle).GET /limit-order/history/order/list-by-user?wallet=…— riwayat limit order suatu wallet. Filter opsional:poolId,mint1,mint2,hideCancel. Paginasi berbasis kursor melaluinextPageId/size(maks 100).GET /limit-order/history/event/list-by-pda?pda=…— log event per-PDA (open/increase/decrease/settle/close) untuk satu atau lebih limit-order PDA yang dipisahkan koma. Paginasi berbasis kursor melaluinextPageId/size(maks 100).
Cakupan otoritas
limit_order_admin adalah keeper operasional off-chain, bukan multisig. Ia hanya dapat memanggil SettleLimitOrder dan CloseLimitOrder pada order yang sudah ada, dan output dari settle selalu masuk ke ATA pemilik. Ia tidak dapat mengubah field pool, membuka atau memodifikasi order, atau menandatangani hal lain apa pun. Lihat Kunci admin dan multisig → CLMM.
Halaman yang diperbarui
products/clmm/overview— bagian “Yang baru” dan pembaruan tautan langkah berikutnya.products/clmm/accounts— tiga akun baru, perubahan bentukPoolStatebeserta peringatan migrasi, penambahanTickState, helper PDA baru.products/clmm/instructions— tujuh instruksi baru, addendum perilakuSwapV2, matriks perubahan status yang diperbarui.products/clmm/fees— bagian single-sided fee, bagian dynamic-fee dengan tabel parameter.products/clmm/math— pseudo-code pencocokan limit order, derivasi dynamic-fee.products/clmm/code-demos— democreateCustomizablePool, panduan limit order lengkap, pitfall baru.algorithms/clmm-math— referensi silang ke pencocokan limit order dan dynamic fee dalam loop swap multi-tick.sdk-api/typescript-sdk— bagian penambahan modul CLMM, catatan migrasiutils/→libraries/.api-reference/openapi/api-v3.yaml— dua endpoint baru dengan skema respons.api-reference/openapi/temp-api-v1.yaml— tiga endpoint limit-order baru (/limit-order/order/list,/limit-order/history/order/list-by-user,/limit-order/history/event/list-by-pda) beserta skema permintaan dan responnya.api-reference/api-v3/overview— catatan tentang endpoint konfigurasi CLMM baru.api-reference/temp-api-v1/overview— catatan tentang endpoint active-orders, history-by-user, dan event-by-PDA baru.reference/error-codes— sebelas kode error CLMM baru (6040–6050) ditambah lima kode lama yang dihapus; kode numerik setelah titik penghapusan telah bergeser.security/admin-and-multisig— baris adminDynamicFeeConfigbaru dan baris keeperlimit_order_adminbaru, beserta penjelasan otoritas terbatas.
- Kode sumber
raydium-clmm. - Kode sumber
@raydium-io/raydium-sdk-v2. - Kode sumber
api-v3dantemp-api-v1.
2026-04-26 — Publikasi awal
Rilis publik pertama dari dokumentasi Raydium. Diverifikasi terhadap:- Deployment program langsung di Solana mainnet-beta.
@raydium-io/raydium-sdk-v2@0.2.42-alpha.- Dokumentasi publik Raydium dan referensi on-chain hingga April 2026.
Konvensi dokumentasi
- Versi: dokumentasi ini menggunakan versi berbasis kalender (YYYY-MM-DD). Setiap pembaruan membuat entri baru di bagian atas file.
- Tanggal verifikasi: setiap entri mencatat kapan konten terakhir dicocokkan dengan status on-chain / API dan kode sumber program. Jika tidak dinyatakan, asumsikan tanggal utama entri tersebut.
- Breaking change: ditandai dalam kotak peringatan pada halaman yang terpengaruh dan ditandai dalam entri di bawah.
- Cakupan: changelog ini mencakup dokumentasi itu sendiri. Linimasa historis protokol tersimpan di
introduction/history-and-milestonesdan menjadi sumber kebenaran untuk “kapan X terjadi di Raydium”.
Koreksi
Jika Anda menemukan kesalahan dalam dokumentasi ini, silakan buka issue atau pull request di repositori dokumentasi. Koreksi dicatat dalam changelog ini.Tautan referensi
introduction/history-and-milestones— linimasa protokol.security/audits— riwayat audit.ray/protocol-fees— pembagian biaya protokol.reference/program-addresses— sumber kebenaran program ID.


