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 →

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 melakukan deposit ke dalam rentang harga spesifik. Di dalam rentang tersebut, setiap dolar deposit jauh lebih produktif daripada di pool CPMM; di luar rentang, deposit tidak menghasilkan apa pun dan tersimpan sebagai saldo satu sisi. Program melacak liquidity per-tick (kurungan harga diskrit), menentukan harga keadaan 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 fungibel.

Fitur 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 kini dapat menempatkan pesanan single-tick pada harga spesifik dan jalur swap akan mengisinya FIFO saat swap melewati tick tersebut. Pesanan diselesaikan ke ATA pemilik pada harga limit; keeper off-chain (limit_order_admin) dapat mengumpulkan pesanan yang terisi tanpa pemilik online. Lihat Instructions → OpenLimitOrder / SettleLimitOrder dan Math → Limit-order matching during swap.
  • Single-sided fee (CollectFeeOn). Pool dapat dikonfigurasi untuk mengambil swap fee dari sisi input (perilaku legacy, mode 0), atau selalu dari token_0 (1), atau selalu dari token_1 (2). Berguna ketika salah satu sisi pasangan adalah token akuntansi kanonik (misalnya, USDC). Lihat Fees → Single-sided fee.
  • Dynamic fee. Pool dapat memilih surcharge fee pelacakan volatilitas yang meningkat dengan pergerakan tick cepat dan menurun seiring waktu. Dikalibrasi oleh DynamicFeeConfig per-tier dan DynamicFeeInfo per-pool. Lihat Fees → Dynamic fee dan Math → Dynamic fee derivation.
Instruksi baru, CreateCustomizablePool, mengekspos ketiga tombol tersebut saat pembuatan pool. CreatePool klasik terus bekerja untuk pool fee default tanpa limit order atau dynamic fee.

Apa yang CLMM berikan

  • Efisiensi modal. LP stablecoin-stablecoin yang mengkonsentrasikan liquidity dalam band ±0,1% di sekitar parity dapat menghasilkan fee 100×+ per dolar TVL dibandingkan pool CPMM dari pasangan yang sama.
  • Akuntansi fee tingkat posisi. Fee terkumpul per-posisi, bukan per-LP-mint. Dua posisi di pool yang sama menghasilkan jumlah fee berbeda berdasarkan rentang mereka dan jalur yang telah diambil harga.
  • Beberapa tier fee per pasangan. Pasangan dapat memiliki beberapa pool CLMM, masing-masing terikat ke AmmConfig berbeda dengan tingkat trade-fee dan tick-spacing sendirinya. Web UI dan router menampilkan tier mana pun yang memiliki liquidity paling banyak pada harga saat ini.
  • Dapat didorong insentif langsung di pool. Hingga tiga aliran token reward dapat ditambahkan ke pool; posisi mengumpulkan reward secara pro-rata berdasarkan detik × liquidity in-range yang mereka sumbangkan. Lihat products/clmm/fees.
  • Posisi NFT. Setiap posisi adalah token non-fungibel dengan mint sama dengan PDA deterministik. Mentransfer NFT mentransfer posisi; wallet dan UI dapat menampilkan posisi dengan cara yang sama seperti collectible.
  • Dukungan Token-2022 di kedua sisi pasangan, dengan pembatasan ekstensi yang sama seperti CPMM.

Apa 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 aktif menyesuaikan. CLMM memberi reward LP aktif; LP pasif harus tetap dengan CPMM.
  • Bukan tanpa biaya untuk membuka. Setiap tick-array baru yang dilintasi posisi harus diinisialisasi, memerlukan biaya sewa. Rentang luas lebih murah; rentang sempit tidak.
  • Bukan CLOB. Tidak seperti AMM v4, CLMM tidak memiliki ketergantungan OpenBook. Semua liquidity tersimpan di tick map.
  • Bukan superset CPMM. Posisi CLMM yang mencakup [tick_min, tick_max] pada rentang maksimal berperilaku serupa dengan CPMM, tetapi dengan biaya gas berbeda, model akuntansi fee berbeda, dan tidak ada token LP fungibel. Jika Anda menginginkan pool LP fungibel sederhana, gunakan CPMM.

Bagaimana CLMM berbeda dari CPMM dan AMM v4

DimensiAMM v4CPMMCLMM
KurvaConstant productConstant productConcentrated (tick-based)
Saham LPFungibel LP mintFungibel LP mintNFT per-posisi
Liquidity tinggal…Di semua hargaDi semua hargaDalam rentang pilihan pengguna
Tier feeFixed 0,25%Per AmmConfig (misalnya, 0,25%, 1%)Per AmmConfig × tick-spacing
Manajemen aktifTidak berlakuTidak berlakuDiperlukan
Akuntansi feeTingkat poolTingkat poolPer-posisi
Farm rewardProgram Farm terpisahProgram Farm terpisahBuilt-in (hingga 3 reward)
Token-2022TidakYaYa
Oracle on-chainTidakRing observationArray observation per pool

Model mental

Pikirkan pool CLMM sebagai tiga struktur data yang tumpang tindih:
  1. Kurva kontinu dalam ruang sqrt_price. Harga pool direpresentasikan sebagai sqrt_price_x64, fixed-point Q64.64. Swap berjalan di sepanjang kurva ini; dalam batas tick, matematikanya adalah matematika AMM concentrated-liquidity standar (lihat algorithms/clmm-math).
  2. Discrete tick map. Harga dikuantisasi menjadi tick — pangkat bilangan bulat dari 1.0001. Setiap tick memiliki sqrt_price yang diketahui. Posisi mereferensikan endpoint mereka sebagai indeks tick bilangan bulat. Indeks tick dikelompokkan ke dalam tick array berukuran tetap untuk penyimpanan.
  3. Bookkeeping fee dan reward per-posisi. Setiap posisi menyimpan global fee_growth_inside pada waktu update terakhirnya. Ketika LP menyentuh posisi (buka, tutup, sesuaikan, kumpulkan), program mengurangi nilai yang disimpan dari global saat ini untuk menghitung apa yang terutang. Ini adalah pola Uniswap-v3 feeGrowthInside0X128 / feeGrowthInside1X128.
Setiap tindakan pengguna terurai menjadi transisi keadaan pada ketiga struktur ini:
  • Buka posisi: pilih rentang tick, deposit token, mint NFT, sisipkan liquidity ke dalam tick map dalam rentang, inisialisasi tick-array apa pun yang sebelumnya kosong.
  • Naikkan / turunkan liquidity: sesuaikan jumlah yang disimpan di akun posisi terkait NFT dan di tick map; kumpulkan fee terakumulasi pada saat yang sama.
  • Swap: berjalan dari sqrt_price_x64 saat ini dalam arah perdagangan, mengonsumsi liquidity aktif hingga input habis atau tick terinialisasi berikutnya tercapai; lintas tick dan ambil atau lepaskan liquidity di sisi baru.
  • Kumpulkan fee / reward: hitung fee_growth_inside_now − fee_growth_inside_last × position_liquidity untuk setiap sisi dan setiap aliran reward; transfer keluar.
Pool sebaliknya tidak peduli posisi mana yang terbuka. Dua LP dalam rentang yang sama melihat jalur pertumbuhan fee yang sama, diskalakan oleh jumlah liquidity individual mereka.

Kapan memilih CLMM

Pilih CLMM ketika:
  • Anda menyediakan liquidity ke pasangan stabil atau mean-reverting (USDC/USDT, jitoSOL/SOL, wBTC/BTC) dan ingin berkonsentrasi dekat parity.
  • 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, structured product, dll.).
Lebih suka CPMM ketika:
  • Anda meluncurkan token baru dengan price discovery tidak diketahui.
  • Anda menginginkan token LP fungibel tunggal yang dapat Anda stake, lock, atau komposisi dengan.
  • Anda menginginkan pengalaman LP pasif.
Lebih suka AMM v4 ketika:
  • 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:
  • Position NFT mint dengan supply 1.
  • Akun personal-position state yang dikunci ke NFT mint, menampung tick posisi, liquidity, dan nilai fee-growth yang terakhir diobservasi.
Mentransfer NFT mentransfer posisi — otoritas akun personal-position adalah pemilik NFT. Ini adalah pola yang sama yang Uniswap v3 pelopori, diimplementasikan dalam model akun Solana. Perlakuan detail ada di products/clmm/ticks-and-positions.
Rilis CLMM yang lebih lama juga membuat akun ProtocolPositionState per (pool, tick_lower, tick_upper) untuk mengagregasi liquidity untuk rentang tersebut. Rilis yang lebih baru tidak lagi membuatnya atau menggunakannya — field masih muncul pada daftar akun OpenPosition / IncreaseLiquidity / DecreaseLiquidity sebagai UncheckedAccount untuk kompatibilitas ABI, tetapi program tidak membaca atau menulisnya. Bookkeeping rentang agregat tinggal di endpoint tick (liquidity_gross, liquidity_net) secara langsung.

Kemana selanjutnya

  • Accounts — pool, config, tick-array, dan layout akun posisi.
  • Ticks and positions — tick map, tick-spacing, sizing tick-array, posisi berbasis NFT.
  • Mathsqrt_price_x64, step-through swap, derivasi fee_growth_inside.
  • InstructionsOpenPosition, IncreaseLiquidity, Swap, CollectRewards, keluarga limit-order, dan CreateCustomizablePool.
  • Fees and rewards — model fee per-posisi, mode single-sided fee, dynamic fee, dan tiga slot reward.
  • Code demos — panduan buka / sesuaikan / swap / kumpulkan / limit-order / customizable-pool dalam TypeScript.
Sumber: