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 swap fees dari sisi input (perilaku legacy, mode0), atau selalu daritoken_0(1), atau selalu daritoken_1(2). Berguna ketika satu sisi pasangan adalah token akuntansi kanonik (misalnya, USDC). Lihat Fees → Single-sided fee. - Dynamic fee. Pool dapat memilih surcharge fee yang melacak volatilitas yang naik 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 pada saat pembuatan pool. CreatePool klasik terus berfungsi untuk pool dengan fee 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 account input atau outputnya beku. Lihat Instructions → CreatePermissionedPool dan entri changelog 2026-07-30.
Rilis 2026-08 menambahkan conditional position-freeze path untuk selected KYC-restricted issuer pools. Setiap mint NFT posisi baru menggunakan pool sebagai freeze authority, tetapi token account NFT tetap tidak beku dan dapat ditransfer secara default. CLMM membekunya hanya ketika posisi dibuka melalui OpenPositionV2 atau OpenPositionWithToken22Nft dan freeze authority mint pool salah satu cocok dengan daftar restricted-issuer 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
- Capital efficiency. LP stablecoin-stablecoin yang mengkonsentrasikan likuiditas dalam band ±0,1% di sekitar paritas dapat menghasilkan 100×+ fee per dolar TVL dibanding pool CPMM dari pasangan yang sama.
- Position-level fee accounting. Fee terakumulasi per-posisi, bukan per-LP-mint. Dua posisi di pool yang sama menghasilkan jumlah fee berbeda berdasarkan rentang mereka dan jalur yang diambil harga.
- Multiple fee tiers per pair. Pasangan dapat memiliki beberapa pool CLMM, masing-masing terikat pada
AmmConfigberbeda dengan trade-fee rate dan tick-spacing sendiri. Web UI dan router menampilkan tier mana pun yang memiliki likuiditas paling banyak pada harga saat ini. - Incentivizable directly on the pool. Hingga tiga reward token stream dapat dilampirkan ke pool; posisi mengumpulkan reward pro-rata berdasarkan detik × in-range-liquidity yang mereka kontribusikan. Lihat
products/clmm/fees. - NFT positions. 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 underlying mint-nya cocok dengan filter restricted-issuer yang beku dan tidak dapat ditransfer.
- Token-2022 support 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 zero-cost 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 fee accounting berbeda, dan tidak ada token LP yang dapat ditukar. Jika Anda menginginkan pool LP fungible sederhana, gunakan CPMM.
Bagaimana CLMM berbeda dari CPMM dan AMM v4
Mental model
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). - Discrete tick map. Harga dikuantisasi menjadi tick — pangkat integer dari
1.0001. Setiap tick memilikisqrt_priceyang diketahui. Posisi mereferensikan endpoint mereka sebagai indeks tick integer. Indeks tick dikelompokkan ke dalam tick arrays berukuran tetap untuk penyimpanan. - Per-position fee dan reward bookkeeping. Setiap posisi menyimpan global
fee_growth_insidepada saat update terakhirnya. Ketika LP menyentuh posisi (buka, tutup, sesuaikan, kumpulkan), program mengurangi nilai yang disimpan dari global saat ini untuk menghitung apa yang terhutang. Ini adalah pola Uniswap-v3feeGrowthInside0X128 / feeGrowthInside1X128.
- Open position: pilih rentang tick, setor token, mint NFT, masukkan likuiditas ke tick map dalam rentang, inisialisasi tick-arrays yang sebelumnya kosong.
- Increase / decrease liquidity: sesuaikan jumlah yang disimpan di position account terkait NFT dan di tick map; kumpulkan fee terakumulasi pada saat yang sama.
- Swap: berjalan dari
sqrt_price_x64saat ini ke arah perdagangan, mengonsumsi likuiditas aktif hingga input habis atau tick terinisialisasi berikutnya tercapai; silang tick dan ambil atau lepaskan likuiditas di sisi baru. - Collect fees / rewards: hitung
fee_growth_inside_now − fee_growth_inside_last×position_liquidityuntuk setiap sisi dan setiap reward stream; 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 per-pool incentive emissions tanpa mendirikan farm terpisah.
- Anda membutuhkan per-position accounting untuk produk LP Anda sendiri (vault, structured product, dll.).
- Anda meluncurkan token baru dengan price discovery yang tidak diketahui.
- Anda menginginkan token LP fungible 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 account:- Position NFT mint dengan supply 1.
- Personal-position state account yang dikunci ke NFT mint, menyimpan tick posisi, likuiditas, dan nilai fee-growth terakhir yang diamati.
products/clmm/ticks-and-positions.
Rilis CLMM yang lebih lama juga membuat account
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 account OpenPosition / IncreaseLiquidity / DecreaseLiquidity sebagai UncheckedAccount untuk kompatibilitas ABI, tetapi program tidak membaca atau menulisnya. Aggregate range bookkeeping hidup di endpoint tick (liquidity_gross, liquidity_net) secara langsung.Ke mana selanjutnya
- Accounts — pool, config, tick-array, dan layout position account.
- Ticks and positions — tick map, tick-spacing, tick-array sizing, posisi berbasis NFT.
- Math —
sqrt_price_x64, swap step-through, derivasifee_growth_inside. - Instructions —
OpenPosition,IncreaseLiquidity,Swap,CollectRewards, keluarga limit-order, danCreateCustomizablePool. - Fees and rewards — model fee per-posisi, mode single-sided fee, dynamic fee, dan tiga reward slot.
- Code demos — open / adjust / swap / collect / limit-order / customizable-pool walkthroughs dalam TypeScript.
- Raydium CLMM source —
raydium-io/raydium-clmm - Uniswap v3 whitepaper (“Uniswap v3 Core”) untuk matematika yang CLMM warisi secara langsung
reference/program-addressesuntuk canonical program IDs

