Ana içeriğe atla

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.

Bu sayfa yapay zekâ tarafından otomatik olarak çevrilmiştir. İngilizce sürüm esas alınır.İngilizce sürümü görüntüle →

Tek paragrafta özet

CLMM — Concentrated Liquidity Market Maker — Raydium’un Uniswap-v3 tarzında AMM’sidir. Likidite sağlayıcının yatırımını tüm fiyat eğrisi boyunca yaymak yerine, CLMM LP’lerin belirli bir fiyat aralığına yatırım yapmalarına izin verir. Bu aralık içinde, her bir yatırılan dolar CPMM havuzunda olacağından çok daha verimlidir; aralık dışında, yatırım hiçbir gelir getirmez ve tek taraflı bir bakiye olarak kalır. Program likiditeyi tick başına (ayrıklaştırılmış bir fiyat sepeti) izler, havuz durumunu fiyatın karekökü olarak Q64.64 sabit nokta sayısı (sqrt_price_x64) olarak kodlar ve her LP pozisyonu için fungible LP token yerine bir NFT basılır.

Yenilikler

En son CLMM sürümü, Uniswap-v3 tarzında temel çerçevenin üzerine üç ekleme ile gelir. Bunlar havuz oluşturma sırasında isteğe bağlıdır ve mevcut havuzlar ile pozisyonlarla geriye dönük uyumludur:
  • Limit emirleri. LP’ler artık belirli bir fiyatta tek-tick emri bırakabilir ve swap yolu, swap bu tick’i geçtiğinde FIFO’da doldurmaya başlar. Emirler limit fiyatında sahibinin ATA’sına çöker; çevrimdışı bir hizmetçi (limit_order_admin) sahibi çevrimiçi olmadan doldurulmuş emirleri toplayabilir. Bkz. Instructions → OpenLimitOrder / SettleLimitOrder ve Math → Swap sırasında limit emri eşleştirmesi.
  • Tek taraflı ücret (CollectFeeOn). Havuzlar swap ücretlerini giriş tarafından (eski davranış, mod 0), veya her zaman token_0’dan (1), ya da her zaman token_1’den (2) almak üzere yapılandırılabilir. Çiftin bir tarafının kanonik muhasebe tokeni olduğu durumlarda yararlıdır (örn. USDC). Bkz. Fees → Tek taraflı ücret.
  • Dinamik ücret. Havuzlar hızlı tick hareketi ile yükselen ve zaman içinde azalan volatilite izleme ücret tarifesine katılabilir. Her seviye için DynamicFeeConfig ve her havuz için DynamicFeeInfo tarafından kalibre edilmiştir. Bkz. Fees → Dinamik ücret ve Math → Dinamik ücret türetimi.
Yeni bir talimat olan CreateCustomizablePool, havuz oluşturma sırasında üç seçeneği de ortaya koymaktadır. Klasik CreatePool limit emirleri veya dinamik ücretleri olmayan varsayılan ücretli havuzlar için çalışmaya devam etmektedir.

CLMM’nin sağladığı avantajlar

  • Sermaye verimliliği. Parite etrafında ±0.1% bant içinde likiditeyi yoğunlaştıran bir stabil coin-stabil coin LP’i, aynı çift CPMM havuzuyla karşılaştırıldığında TVL başına dolar başına 100 kat ve daha fazla ücret kazanabilir.
  • Pozisyon seviyesi ücret muhasebesi. Ücretler LP-mint başına değil, pozisyon başına tahakkuk eder. Aynı havuzda iki pozisyon, aralıklarına ve fiyatın aldığı yola göre farklı ücret miktarları kazanır.
  • Çift başına birden fazla ücret seviyesi. Bir çift, her biri kendi ticaret ücret oranı ve tick-boşluğu ile farklı AmmConfig’e bağlı birkaç CLMM havuzuna sahip olabilir. Web arayüzü ve yönlendiriciler geçerli fiyatta en fazla likiditeye sahip olan seviyeyi gösterir.
  • Doğrudan havuzda teşvik edilebilir. Havuza kadar üç ödül token akışı eklenebilir; pozisyonlar katkıda bulundukları saniye × aralık içi likiditeye göre pro-rata olarak ödülleri toplar. Bkz. products/clmm/fees.
  • NFT pozisyonları. Her pozisyon, mint’i belirlenimci bir PDA’ya eşit olan fungible olmayan bir tokendır. NFT’yi transfer etmek pozisyonu transfer eder; cüzdanlar ve arayüzler pozisyonları koleksiyonlar gibi gösterebilir.
  • Token-2022 desteği çiftin her iki tarafında da, CPMM ile aynı uzantı kısıtlamaları ile.

CLMM ne değildir

  • Kur ve unut değil. SOL $160 iken ayarlanan bir aralık, aktif olarak ayarlamadığınız sürece SOL $80’e hareket ederse hiçbir şey kazanmaz. CLMM aktif LP’leri ödüllendirir; pasif LP’ler CPMM’de kalmalıdır.
  • Açmak maliyetsiz değildir. Pozisyonun geçtiği her yeni tick-array başlatılmalı ve kira ödemesi yapılmalıdır. Geniş aralıklar daha ucuzdur; dar olanlar değildir.
  • CLOB değildir. AMM v4’ün aksine, CLMM’nin OpenBook bağımlılığı yoktur. Tüm likidite tick haritasında kalır.
  • CPMM’nin bir üst kümesi değildir. Maksimum aralıkta [tick_min, tick_max] kapsayan bir CLMM pozisyonu CPMM’ye benzer şekilde davranır, ancak farklı gaz maliyetleri, farklı ücret muhasebesi modeli ve fungible LP token yoktur. Basit bir fungible-LP havuzu istiyorsanız, CPMM kullanın.

CLMM’nin CPMM ve AMM v4’ten farkları

BoyutAMM v4CPMMCLMM
EğriSabit ürünSabit ürünYoğunlaştırılmış (tick tabanlı)
LP payıFungible LP mintFungible LP mintPozisyon başına NFT
Likidite yaşadığı yer…Tüm fiyatlar arasındaTüm fiyatlar arasındaKullanıcı tarafından seçilen aralıkta
Ücret seviyeleriSabit 0.25%AmmConfig başına (örn. 0.25%, 1%)AmmConfig × tick-boşluğu başına
Aktif yönetimUygulanamazUygulanamazGereklidir
Ücret muhasebesiHavuz seviyesiHavuz seviyesiPozisyon başına
Ödül farmlarıAyrı Farm programıAyrı Farm programıYerleşik (3 ödüle kadar)
Token-2022HayırEvetEvet
Zincir üstü oracleHayırobservation halkasıhavuz başına observation dizisi

Zihinsel model

Bir CLMM havuzunu üç üst üste binmiş veri yapısı olarak düşünün:
  1. sqrt_price uzayında sürekli bir eğri. Havuzun fiyatı sqrt_price_x64 olarak, bir Q64.64 sabit nokta sayısı olarak temsil edilir. Swaplar bu eğri boyunca yürür; bir tick sınırı içinde, matematik standart yoğunlaştırılmış likidite AMM matematiğidir (bkz. algorithms/clmm-math).
  2. Ayrık bir tick haritası. Fiyatlar ticks’e — 1.0001’in tam sayı kuvvetlerine — ayrıklaştırılır. Her tick’in bilinen bir sqrt_price’ı vardır. Pozisyonlar uç noktalarını tam sayı tick indeksleri olarak referans alır. Tick indeksleri depolama için sabit boyutlu tick arrays halinde gruplandırılır.
  3. Pozisyon başına ücret ve ödül muhasebesi. Her pozisyon, son güncellemesinin zamanında global fee_growth_inside değerini depolar. LP pozisyona dokunduğunda (açma, kapatma, ayarlama, toplama), program depolanan değeri geçerli globalle çıkararak ne borçlu olduğunu hesaplar. Bu, Uniswap-v3 feeGrowthInside0X128 / feeGrowthInside1X128 desenidir.
Her kullanıcı eylemi bu üç yapıya durum geçişlerine ayrışır:
  • Pozisyon aç: tick aralığını seç, token yatır, NFT bas, likiditeyi aralık içinde tick haritasına ekle, daha önce boş olan tick-arrays’leri başlat.
  • Likiditeyi artır / azalt: NFT’nin ilişkili pozisyon hesabında ve tick haritasında depolanan miktarı ayarla; aynı zamanda birikmiş ücretleri topla.
  • Swap: geçerli sqrt_price_x64’ten ticaret yönünde yürü, aktif likiditeyi giriş tükenene veya sonraki başlatılan tick’e ulaşılana kadar tüket; tick’i geç ve yeni tarafta likiditeyi al veya bırak.
  • Ücretleri / ödülleri topla: her taraf ve her ödül akışı için fee_growth_inside_now − fee_growth_inside_last × position_liquidity hesapla; dışarı transfer et.
Havuz, hangi pozisyonların açık olduğuna karşı tarafsızdır. Aynı aralıktaki iki LP, aynı ücret-büyüme yolunu kendi liquidity miktarlarına göre ölçeklenmiş olarak görür.

CLMM’yi ne zaman seçmelisiniz

CLMM’yi seçin:
  • Stabil veya ortalamaya dönüş gösteren bir çift (USDC/USDT, jitoSOL/SOL, wBTC/BTC) için likidite sağlıyor ve parite yakınında yoğunlaştırmak istiyorsunuz.
  • Fiyatı izlemeye ve rebalans yapmaya istekli bir piyasa yapıcısı sizsiniz.
  • Havuz başına teşvik emisyonlarına özel olarak ihtiyacınız var ve ayrı bir farm kurmak istemiyorsunuz.
  • Kendi LP ürünü için (vault, yapılandırılmış ürün vb.) pozisyon başına muhasebe gereklidir.
Tercih ettiğiniz şu durumlarda CPMM:
  • Bilinmeyen fiyat keşfiyle yeni bir token başlatıyorsunuz.
  • Stake edebileceğiniz, kilitleyebileceğiniz veya başka şeylerle oluşturabileceğiniz tek bir fungible LP token istiyorsunuz.
  • Pasif bir LP deneyimi istiyorsunuz.
Tercih ettiğiniz şu durumlarda AMM v4:
  • Özellikle AMM v4’ün OpenBook üzerinde sunduğu hibrit-CLOB derinliğine ihtiyacınız vardır.
  • Mevcut AMM v4 entegrasyonlarını taşıyor ve yeni pozisyon açmıyor.

Pozisyonlar NFT’dir

Bir CLMM pozisyonu zincir üstünde iki hesap tarafından temsil edilir:
  • Bir pozisyon NFT mint’i arz 1 ile.
  • Kişisel pozisyon durumu hesabı, NFT mint’e anahtarlanmış, pozisyonun ticks, likidite ve son gözlenen ücret-büyüme değerlerini tutar.
NFT’yi transfer etmek pozisyonu transfer eder — kişisel pozisyon hesabının otoritesi NFT sahibidir. Bu, Uniswap v3’ün öncülük ettiği ve Solana’nın hesap modelinde uygulanan aynı dizendir. Ayrıntılı bir inceleme products/clmm/ticks-and-positions’te bulunmaktadır.
Eski CLMM sürümleri ayrıca o aralık için likiditeyi birleştirmek üzere (pool, tick_lower, tick_upper) başına bir ProtocolPositionState hesabı oluşturdular. Yeni sürümler artık onu oluşturmamakta veya kullanmamaktadır — alan hala OpenPosition / IncreaseLiquidity / DecreaseLiquidity hesap listelerinde ABI uyumluluğu için bir UncheckedAccount olarak görünmektedir, ancak program onu okumamakta veya yazmamaktadır. Toplam aralık muhasebesi tick uç noktalarında (liquidity_gross, liquidity_net) doğrudan yaşar.

Bundan sonra nereye gitmeli

  • Accounts — havuz, config, tick-array ve pozisyon hesabı düzenleri.
  • Ticks and positions — tick haritası, tick-boşluğu, tick-array boyutlandırması, NFT tabanlı pozisyonlar.
  • Mathsqrt_price_x64, swap adım geçişi, fee_growth_inside türetimi.
  • InstructionsOpenPosition, IncreaseLiquidity, Swap, CollectRewards, limit emri ailesi ve CreateCustomizablePool.
  • Fees and rewards — pozisyon başına ücret modeli, tek taraflı ücret modları, dinamik ücret ve üç ödül yuvası.
  • Code demos — TypeScript’te pozisyon aç / ayarla / swap et / topla / limit emri / özelleştirilebilir havuz izlenecek yollar.
Kaynaklar: