Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Ringkasan satu paragraf
CLMM — Concentrated Liquidity Market Maker — adalah AMM gaya Uniswap-v3 milik Raydium. Alih-alih menyebarkan deposit liquidity provider di seluruh kurva harga, CLMM memungkinkan LP menyetor ke dalam rentang harga tertentu. Di dalam rentang tersebut, setiap dolar deposit jauh lebih produktif dibanding di pool CPMM; di luar rentang, deposit tidak menghasilkan apa pun dan tersimpan sebagai saldo satu sisi. Program melacak likuiditas per-tick (bucket harga terdiskritisasi), menentukan harga state pool berdasarkan akar kuadrat harga yang dikodekan sebagai bilangan fixed-point Q64.64 (sqrt_price_x64), dan mencetak NFT untuk setiap posisi LP daripada token LP yang dapat ditukar.
Apa yang baru
Rilis CLMM terbaru menghadirkan tiga penambahan di atas inti gaya Uniswap-v3. Semuanya bersifat opt-in saat pembuatan pool dan kompatibel mundur dengan pool dan posisi yang ada:- Limit orders. LP sekarang dapat menempatkan order single-tick pada harga tertentu dan memiliki jalur swap mengisinya FIFO ketika swap melintasi tick tersebut. Order diselesaikan ke ATA pemilik pada harga limit; keeper off-chain (
limit_order_admin) dapat mengumpulkan order yang terisi tanpa pemilik harus online. Lihat Instructions → OpenLimitOrder / SettleLimitOrder dan Math → Limit-order matching during swap. - Single-sided fee (
CollectFeeOn). Pool dapat dikonfigurasi untuk mengambil biaya swap dari sisi input (perilaku legacy, mode0), atau selalu daritoken_0(1), atau selalu daritoken_1(2). Berguna ketika salah satu sisi pasangan adalah token akuntansi kanonik (misalnya, USDC). Lihat Fees → Single-sided fee. - Dynamic fee. Pool dapat memilih untuk menggunakan surcharge biaya pelacakan volatilitas yang meningkat dengan pergerakan tick cepat dan meluruh seiring waktu. Dikalibrasi oleh
DynamicFeeConfigper-tier danDynamicFeeInfoper-pool. Lihat Fees → Dynamic fee dan Math → Dynamic fee derivation.
CreateCustomizablePool, mengekspos ketiga kontrol tersebut saat pembuatan pool. CreatePool klasik terus berfungsi untuk pool dengan biaya default tanpa limit orders atau dynamic fees.
Rilis kemudian menambahkan permissioned multi-pools: CreatePermissionedPool memungkinkan operator yang terdaftar (yang memegang PDA Permission) membuat lebih dari satu pool untuk pasangan dan fee tier yang sama dengan melipat seed_index ke dalam alamat pool, dan memperkuat OpenLimitOrder untuk menolak order yang token akun input atau outputnya dibekukan. Lihat entri changelog 2026-07-30.
Rilis 2026-10-22 membuka pembuatan multi-pool untuk semua orang: CreatePermissionedPool diubah nama menjadi CreateCustomizablePoolV2, gerbang PDA Permission dihapus, dan pembayar apa pun dapat membuat pool tambahan untuk pasangan dan fee tier pada alamat yang diturunkan dari seed_index. Pasangan mungkin memiliki banyak pool CLMM per fee tier, jadi pilih pool berdasarkan likuiditas, bukan alamat. Lihat Instructions → CreateCustomizablePoolV2 dan entri changelog 2026-10-22.
Rilis 2026-08 menambahkan jalur pembekuan posisi bersyarat untuk pool penerbit terbatas KYC terpilih. Setiap mint NFT posisi baru menggunakan pool sebagai freeze authority, tetapi token account NFT tetap tidak dibekukan dan dapat ditransfer secara default. CLMM membekukannya hanya ketika posisi dibuka melalui OpenPositionV2 atau OpenPositionWithToken22Nft dan freeze authority mint pool salah satu cocok dengan daftar penerbit terbatas program. Pemilik masih dapat mengelola likuiditas dan menutup posisi yang cocok, tetapi tidak dapat mentransfer NFT-nya atau mengubah pemilik token-account. Posisi yang ada tidak dibekukan secara retroaktif. Lihat Ticks and positions → Restricted-issuer positions dan entri changelog 2026-08-17.
Apa yang CLMM berikan kepada Anda
- Efisiensi modal. LP stablecoin-stablecoin yang mengkonsentrasikan likuiditas dalam band ±0.1% di sekitar paritas dapat menghasilkan biaya 100×+ per dolar TVL dibandingkan pool CPMM dari pasangan yang sama.
- Akuntansi biaya tingkat posisi. Biaya terakumulasi per-posisi, bukan per-LP-mint. Dua posisi di pool yang sama menghasilkan jumlah biaya berbeda berdasarkan rentang mereka dan jalur yang telah diambil harga.
- Beberapa fee tier per pasangan. Pasangan dapat memiliki beberapa pool CLMM, masing-masing terikat pada
AmmConfigberbeda dengan tingkat biaya perdagangan dan tick-spacing-nya sendiri. UI web dan router menampilkan tier mana pun yang memiliki likuiditas paling banyak pada harga saat ini. - Dapat diinsentifkan langsung di pool. Hingga tiga aliran token reward dapat dilampirkan ke pool; posisi mengumpulkan reward secara pro-rata berdasarkan detik × likuiditas in-range yang mereka kontribusikan. Lihat
products/clmm/fees. - Posisi NFT. Setiap posisi adalah token non-fungible. Mentransfer NFT biasanya mentransfer posisi; dompet dan UI dapat menampilkan posisi dengan cara yang sama seperti menampilkan kolektibel. Hanya posisi V2 yang mint dasarnya cocok dengan filter penerbit terbatas yang dibekukan dan tidak dapat ditransfer.
- Dukungan Token-2022 di kedua sisi pasangan, dengan batasan ekstensi yang sama seperti CPMM.
Apa yang CLMM bukan
- Bukan set-it-and-forget-it. Rentang yang ditetapkan saat SOL adalah $160 tidak akan menghasilkan apa pun jika SOL bergerak ke $80, kecuali Anda secara aktif menyesuaikan. CLMM memberi reward LP aktif; LP pasif harus tetap dengan CPMM.
- Bukan tanpa biaya untuk dibuka. Setiap tick-array baru yang dilintasi posisi harus diinisialisasi, menimbulkan biaya rent. Rentang lebar lebih murah; rentang sempit tidak.
- Bukan CLOB. Tidak seperti AMM v4, CLMM tidak memiliki ketergantungan OpenBook. Semua likuiditas berada di tick map.
- Bukan superset CPMM. Posisi CLMM yang mencakup
[tick_min, tick_max]pada rentang maksimum berperilaku serupa dengan CPMM, tetapi dengan biaya gas berbeda, model akuntansi biaya berbeda, dan tidak ada token LP yang dapat ditukar. Jika Anda menginginkan pool LP yang dapat ditukar sederhana, gunakan CPMM.
Bagaimana CLMM berbeda dari CPMM dan AMM v4
Model mental
Pikirkan pool CLMM sebagai tiga struktur data berlapis:- Kurva kontinu dalam ruang
sqrt_price. Harga pool direpresentasikan sebagaisqrt_price_x64, fixed-point Q64.64. Swap berjalan di sepanjang kurva ini; dalam batas tick, matematikanya adalah matematika AMM likuiditas terkonsentrasi standar (lihatalgorithms/clmm-math). - Peta tick diskrit. Harga dikuantisasi menjadi tick — pangkat bilangan bulat dari
1.0001. Setiap tick memilikisqrt_priceyang diketahui. Posisi mereferensikan endpoint mereka sebagai indeks tick bilangan bulat. Indeks tick dikelompokkan ke dalam tick array berukuran tetap untuk penyimpanan. - Akuntansi biaya dan reward per-posisi. Setiap posisi menyimpan
fee_growth_insideglobal pada waktu pembaruan terakhirnya. Ketika LP menyentuh posisi (buka, tutup, sesuaikan, kumpulkan), program mengurangi nilai yang disimpan dari nilai global saat ini untuk menghitung apa yang terhutang. Ini adalah pola Uniswap-v3feeGrowthInside0X128 / feeGrowthInside1X128.
- Buka posisi: pilih rentang tick, setor token, mint NFT, sisipkan likuiditas ke dalam tick map dalam rentang, inisialisasi tick-array yang sebelumnya kosong.
- Tingkatkan / kurangi likuiditas: sesuaikan jumlah yang disimpan di akun posisi yang terkait dengan NFT dan di tick map; kumpulkan biaya terakumulasi pada saat yang sama.
- Swap: berjalan dari
sqrt_price_x64saat ini ke arah perdagangan, mengonsumsi likuiditas aktif hingga input habis atau tick yang diinisialisasi berikutnya tercapai; silang tick dan ambil atau lepaskan likuiditas di sisi baru. - Kumpulkan biaya / reward: hitung
fee_growth_inside_now − fee_growth_inside_last×position_liquidityuntuk setiap sisi dan setiap aliran reward; transfer keluar.
liquidity individual mereka.
Kapan memilih CLMM
Pilih CLMM ketika:- Anda menyediakan likuiditas untuk pasangan stabil atau mean-reverting (USDC/USDT, jitoSOL/SOL, wBTC/BTC) dan ingin berkonsentrasi di sekitar paritas.
- Anda adalah market maker yang bersedia memantau harga dan menyeimbangkan kembali.
- Anda secara khusus membutuhkan emisi insentif per-pool tanpa mendirikan farm terpisah.
- Anda membutuhkan akuntansi per-posisi untuk produk LP Anda sendiri (vault, produk terstruktur, dll.).
- Anda meluncurkan token baru dengan penemuan harga yang tidak diketahui.
- Anda menginginkan token LP yang dapat ditukar tunggal yang dapat Anda stake, lock, atau komposisi dengan.
- Anda menginginkan pengalaman LP pasif.
- Anda secara khusus membutuhkan kedalaman hybrid-CLOB yang ditempatkan AMM v4 di OpenBook.
- Anda bermigrasi integrasi AMM v4 yang ada dan tidak membuka posisi baru.
Posisi adalah NFT
Posisi CLMM direpresentasikan on-chain oleh dua akun:- Mint NFT posisi dengan supply 1.
- Akun state posisi personal yang dikunci ke mint NFT, menyimpan tick posisi, likuiditas, dan nilai fee-growth yang terakhir diamati.
products/clmm/ticks-and-positions.
Rilis CLMM yang lebih lama juga membuat akun
ProtocolPositionState per (pool, tick_lower, tick_upper) untuk mengagregasi likuiditas untuk rentang tersebut. Rilis yang lebih baru tidak lagi membuat atau menggunakannya — field masih muncul di daftar akun OpenPosition / IncreaseLiquidity / DecreaseLiquidity sebagai UncheckedAccount untuk kompatibilitas ABI, tetapi program tidak membaca atau menulisnya. Akuntansi rentang agregat berada di endpoint tick (liquidity_gross, liquidity_net) secara langsung.Langkah Selanjutnya
- Accounts — tata letak akun pool, config, tick-array, dan position.
- Ticks and positions — tick map, tick-spacing, ukuran tick-array, posisi berbasis NFT.
- Math —
sqrt_price_x64, langkah-langkah swap, derivasifee_growth_inside. - Instructions —
OpenPosition,IncreaseLiquidity,Swap,CollectRewards, keluarga limit-order, danCreateCustomizablePool. - Fees and rewards — model biaya per-posisi, mode biaya satu sisi, biaya dinamis, dan tiga slot reward.
- Code demos — panduan open / adjust / swap / collect / limit-order / customizable-pool dalam TypeScript.
- Raydium CLMM source —
raydium-io/raydium-clmm - Uniswap v3 whitepaper (“Uniswap v3 Core”) untuk matematika yang langsung diwariskan CLMM
reference/program-addressesuntuk ID program kanonik

