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 →
introduction/history-and-milestones. Setiap entri di sini memiliki tanggal, daftar bab yang terpengaruh, pemicu, dan tanggal verifikasi yang mencatat kapan status on-chain dan sumber program terakhir dikonfirmasi silang dengan konten yang ditulis.
2026-05-18 — CLMM: limit orders, single-sided fee, dynamic fee
Rilis CLMM berikutnya menambahkan tiga kemampuan tingkat pool. Keduanya bersifat opt-in saat pembuatan pool dan kompatibel mundur dengan pool dan posisi yang sudah ada.TL;DR untuk integrator
- Limit orders kini merupakan primitif CLMM tingkat satu. LP dapat membuka order single-tick pada pool yang mendukungnya; order diisi FIFO ketika swap melintasi tick, dan keeper off-chain (
limit_order_admin) dapat menyelesaikan output yang diisi 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/(active orders, per-user history, per-PDA event log) mencakup alur lengkap. - Single-sided fee (
CollectFeeOn) memungkinkan pool mengumpulkan biaya swap dari sisi input (legacy, mode0), atau selalu daritoken_0(mode1), atau selalu daritoken_1(mode2). Berguna ketika satu sisi pasangan adalah token akuntansi kanonik. - Dynamic fee memungkinkan pool memilih surcharge pelacakan volatilitas yang meningkat dengan pergerakan tick cepat dan meluruh seiring waktu, dikalibrasi oleh
DynamicFeeConfigper-tier danDynamicFeeInfoper-pool. Endpoint baru/main/clmm-dynamic-configmenampilkan daftar tier. - Instruksi baru,
CreateCustomizablePool, mengekspos ketiga kontrol saat pembuatan pool.CreatePoolklasik terus berfungsi untuk pool tanpa-limit-order dengan biaya default. - Breaking change indexer: penghitung volume per-arah (
swap_in_amount_token_{0,1},swap_out_amount_token_{0,1}) dan penghitung biaya seumur hidup (total_fees_token_{0,1},total_fees_claimed_token_{0,1}) padaPoolStatedipensiunkan menjadi padding untuk memberi ruang bagifee_ondandynamic_fee_info. Indexer yang membaca field tersebut secara langsung harus migrasi ke ringObservationon-chain atau API.
Mengapa hal ini penting (untuk trader, LP, dan integrator)
- Trader mendapat kutipan lebih ketat pada pasangan long-tail dan event-driven: dynamic fee memungkinkan pool menyerap surcharge volatilitas dari taker tanpa LP harus secara aktif memperlebar range, dan limit-order ladder memperdalam likuiditas on-chain pada harga spesifik tanpa berkomitmen pada modal range-wide.
- LP mendapat strategi ketiga bersama concentrated range dan full-range positions: parkir order exact-price, dapatkan diisi ketika harga mengunjungi, selesaikan menjadi quote token. Tidak ada rebalancing aktif yang diperlukan untuk portion yang diisi.
- Integrator dapat memodelkan dynamic-fee pool secara deterministik — algoritma dan parameter sepenuhnya on-chain, tier kalibrasi dapat dikueri, dan jalur swap tidak berubah dalam bentuk (hanya biaya per langkah yang bervariasi).
Apa yang berubah dalam program
Akun baru
DynamicFeeConfig— catatan kalibrasi per-tier (periode filter, periode decay, faktor reduksi, kontrol dynamic-fee, akumulator volatilitas maksimal). Dibuat olehCreateDynamicFeeConfig(admin), direferensikan olehCreateCustomizablePoolketika dynamic fee diaktifkan.LimitOrderState— akun per-order (PDA seeds:[owner, limit_order_nonce, order_nonce]) yang memegang pool, tick, side, jumlah input, rasio unfilled, fase cohort FIFO, dan snapshot book-keeping. Siklus hidup bersifat implisit (filled_amountvstotal_amount, plus keberadaan akun):Open → Filled → Settled → Closed.LimitOrderNonce— per-(owner, nonce_index) penghitung yang monotonically-incrementing yang mendapat PDA seeds limit-order.nonce_index: u8memungkinkan pemilik yang sama mempartisi order menjadi hingga 256 aliran nonce independen.
Reshape PoolState
| Kelompok Field | Layout Lama | Layout 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 biaya 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 (embedded) |
PoolState dan beralih ke ring Observation atau API. Penghitung yang dipensiunkan tidak dinolkan pada pool yang sudah ada (mereka menyimpan data apapun yang terjadi terakhir dibawa), jadi membaca ulang mereka setelah upgrade akan mengembalikan data basi.
Penambahan TickState (tidak ada breaking change)
Empat field baru ditambahkan di akhir TickState, menggantikan beberapa tail padding-nya:
order_phase: u64— penghitung yang membedakan limit-order cohort di tick ini.orders_amount: u64— total input yang berkomitmen oleh semua open order di tick ini (tidak semuanya fully unfilled).part_filled_orders_remaining: u64— input yang masih unfilled dalam cohort yang sedang dikonsumsi oleh swap.unfilled_ratio_x64: u128— rasio Q64.64 yang digunakan untuk menghitung share pengisian setiap order.
Instruksi baru
CreateDynamicFeeConfig(admin) — buat tierDynamicFeeConfigyang dikalibrasi. Authority: multisig treasury yang sama denganCreateAmmConfig.UpdateDynamicFeeConfig(admin) — perbarui parameter tier yang sudah ada.CreateCustomizablePool— titik masuk pembuatan pool yang mengeksposcollect_fee_on,enable_dynamic_fee, dandynamic_fee_config. Koeksistensi denganCreatePool; kami rekomendasikanCreateCustomizablePooluntuk pool baru apa pun yang memerlukan kontrol baru.OpenLimitOrder— buka single-tick limit order. BumpLimitOrderNonce, alokasikanLimitOrderState, slot order ke FIFO cohort di tick.IncreaseLimitOrder/DecreaseLimitOrder— sesuaikan unfilled portion order. Kembali pada fully-filled order denganInvalidOrderPhase.SettleLimitOrder— kemudikan filled output ke ATA pemilik. Pemanggil dapat berupa pemilik atau keeperlimit_order_adminpool.CloseLimitOrder— tutup fully-settled order untuk mengklaim kembali rent.
Perubahan perilaku SwapV2
Jalur swap itu sendiri tidak berubah dalam bentuk, tetapi tiga hal sekarang terjadi di sepanjang jalan:
- Dynamic fee (jika diaktifkan):
DynamicFeeInfopool diperbarui setiap langkah (decay → accumulate → cap), dan surcharge yang dihasilkan ditambahkan di atas biaya dasar untuk langkah itu. - Limit-order matching (ketika langkah melintasi initialized tick yang memiliki open order): bagian dari input swap dikonsumsi FIFO untuk mengisi cohort di tick itu, dengan
unfilled_ratio_x64diperbarui secara atomik. - Single-sided fee routing (ketika
fee_on != 0): biaya diambil daritoken_0atautoken_1terlepas dari arah swap, bukan selalu dari sisi input.
Kode error baru
EnumErrorCode dinomori ulang dalam rilis ini: lima varian legacy (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) dihapus, dan sebelas varian baru ditambahkan. Karena Anchor menomori error berdasarkan urutan enum dari 6000, setiap kode error di atau setelah posisi yang dihapus telah bergeser — klien yang hard-code kode numerik perlu remap.
Kode baru adalah:
6040OrderAlreadyFilled6041InvalidOrderPhase6042InvalidLimitOrderAmount6043OrderPhaseSaturated6044InvalidDynamicFeeConfigParams6045InvalidFeeOn6046ZeroSqrtPrice6047ZeroLiquidity6048MissingBaseFlag6049MissingMintAccount6050MissingTokenProgram2022
Apa yang berubah dalam 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. - Reorg internal:
utils/dipindahkan kelibraries/. Package barrel tidak berubah; hanya deep import di bawah@raydium-io/raydium-sdk-v2/utils/...perlu update ke…/libraries/....
products/clmm/code-demos.
Apa yang berubah dalam 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 dompet (open dan partially-filled, disajikan dari cache Redis indexer; payload yang sama mencakup kedua fase viatotalAmount/filledAmount/pendingSettle).GET /limit-order/history/order/list-by-user?wallet=…— limit order historis dompet. Filter opsional:poolId,mint1,mint2,hideCancel. Cursor-paginated vianextPageId/size(maks 100).GET /limit-order/history/event/list-by-pda?pda=…— event log per-PDA (open/increase/decrease/settle/close) untuk satu atau lebih limit-order PDA yang dipisahkan koma. Cursor-paginated vianextPageId/size(maks 100).
Permukaan Authority
limit_order_admin adalah keeper operasional off-chain, bukan multisig. Ia hanya dapat memanggil SettleLimitOrder dan CloseLimitOrder pada order yang sudah ada, dan output settle selalu mendarat di ATA pemilik. Ia tidak dapat mutasi field pool, membuka atau memodifikasi order, atau menandatangani apa pun yang lain. Lihat Admin keys and multisig → CLMM.
Halaman yang diperbarui
products/clmm/overview— bagian “What’s new” baru dan pointer next-step yang diperbarui.products/clmm/accounts— tiga akun baru, reshapePoolStatedengan peringatan migrasi, penambahanTickState, helper PDA baru.products/clmm/instructions— tujuh instruksi baru, addendum perilakuSwapV2, matriks perubahan state yang diperbarui.products/clmm/fees— bagian single-sided fee, bagian dynamic-fee dengan tabel parameter.products/clmm/math— pseudo-code limit-order matching, derivasi dynamic-fee.products/clmm/code-demos— democreateCustomizablePool, walkthrough limit-order lengkap, pitfall baru.algorithms/clmm-math— referensi silang ke limit-order matching 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 schema 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) dengan schema request dan respons mereka.api-reference/api-v3/overview— catatan pada endpoint config CLMM baru.api-reference/temp-api-v1/overview— catatan pada endpoint active-orders, history-by-user, dan event-by-PDA baru.reference/error-codes— sebelas kode error CLMM baru (6040–6050) plus lima kode legacy yang dihapus; kode numerik setelah titik penghapusan telah bergeser.security/admin-and-multisig— baris adminDynamicFeeConfigbaru dan baris keeperlimit_order_admin, dengan penjelasan bounded-authority.
- Sumber
raydium-clmm. - Sumber
@raydium-io/raydium-sdk-v2. - Sumber
api-v3dantemp-api-v1.
2026-04-26 — Publikasi awal
Rilis publik pertama kumpulan dokumentasi Raydium. Diverifikasi terhadap:- Deployment program live di Solana mainnet-beta.
@raydium-io/raydium-sdk-v2@0.2.42-alpha.- Referensi docs dan on-chain Raydium publik melalui April 2026.
Konvensi dokumentasi
- Versioning: dokumentasi ini menggunakan versioning berbasis kalender (YYYY-MM-DD). Setiap update membuat entri baru di atas file.
- Verified date: setiap entri mencatat kapan konten terakhir dikonfirmasi silang terhadap status on-chain / API dan sumber program. Jika tidak dinyatakan, asumsikan tanggal utama entri.
- Breaking changes: ditandai dalam peringatan berkotak pada halaman yang terpengaruh dan ditandai dalam entri di bawah.
- Coverage: changelog ini mencakup set dokumentasi itu sendiri. Garis waktu historis protokol itu sendiri tinggal di
introduction/history-and-milestonesdan merupakan 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.Pointer
introduction/history-and-milestones— garis waktu protokol itu sendiri.security/audits— riwayat audit.ray/protocol-fees— pembagian biaya protokol.reference/program-addresses— sumber kebenaran ID program.


