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 →
LaunchLab, Initialize sırasında seçilen üç eğri şeklini destekler: constant-product (en yaygın olanı, standart x · y = k eğrisinin sanal-rezerv biçimi), linear-price ve fixed-price. Graduation eşiği formülü üç şeklin tümü arasında paylaşılır. Bu sayfa constant-product matematiğini ayrıntılı olarak açıklar; lineer ve sabit biçimler sonunda özetlenmiştir.

LaunchState üzerinde saklanan parametreler

AlanAnlamı
curve_type0 = constant-product (sanal-rezervler), 1 = fixed-price, 2 = linear-price.
base_supply_maxEğrinin hiç bir zaman mint edebileceği toplam base token.
base_supply_graduationGraduation’a ulaşmak için satılması gereken base token. Genellikle 0.8 × base_supply_max; kalan %20 graduation sonrası havuzun başlangıç LP’si olur.
quote_reserve_targetGraduation’u tetikleyen quote miktarı. Initialize sırasında eğri parametreleri + base_supply_graduation ile türetilir.
virtual_base / virtual_quoteConstant-product eğrisi için sanal-rezerv tohumları.
migrate_typeGraduation hedefini seçer: AMM v4 vs CPMM. Bkz. instructions.
fees.buy_numerator / buy_denominatorAlış tarafı ücreti, örneğin 100 / 10_000 = %1.00.
fees.sell_numerator / sell_denominatorSatış tarafı ücreti. Genellikle alış ile aynı.
fees.protocol_share, fees.creator_share, fees.lp_shareYukarıdakilerin bölünmesi, payda ile toplamda eşit.
Rust struct’taki alan adları, accounts sayfasında açıklanan PoolState alanlarıyla eşleşir; yukarıdaki birimler kavramsal olup, uygulama detaylarına göre ayarlanır.

Sanal rezervli Constant-product eğrisi (curve_type = 0)

Varsayılan ve en çok kullanılan eğri. Pump tarzı başlatmalar bu biçimi kullanır. Eğri, baştan itibaren sanal quote rezerv V_q ve sanal base rezerv V_b olduğunu iddia eder (PoolState üzerinde virtual_quote ve virtual_base olarak saklanır), böylece etkili havuz bu rezervleri içeren bir CPMM gibi görünür. Alışlar x · y = k matematiğini takip eder:
(V_q + real_quote_in_after_fee) × (V_b + real_base_remaining − base_out) = V_q × V_b
base_out için çözüldüğünde:
base_out = (V_b + real_base_remaining) × quote_in_after_fee / (V_q + real_quote_in_after_fee)
Base satıldığında s etkin fiyat:
price(s) = (V_q + real_quote_in(s)) / (V_b + real_base_remaining(s))
LaunchLab’ın graduation öncesinde uyguladığı aynı x · y = k değişmezi, daha sonra graduation sonrası tam olarak CPMM (veya AMM v4) eğrisidir, bu nedenle graduation geçişi mekanik olarak sorunsuzdur: base_sold = base_supply_graduation konumundaki marjinal fiyat, graduation sonrası havuzun (quote_vault, base_vault_remaining) rezervleri ile açıldığı fiyata eşittir.

Fixed-price eğrisi (curve_type = 1)

Düz fiyatlandırma eğrisi. Her alış/satış sabit bir fiyatta gerçekleşir, Initialize sırasında yapılandırılabilir:
price(s) = virtual_quote / virtual_base    (tüm s için sabit)
Takımın tüm katılımcılar için ne zaman aldıklarına bakılmaksızın aynı fiyatlandırma istediği adil başlatmalar için faydalı. Graduation, base_supply_graduation satıldığında tetiklenir (lineer maliyet ilişkisi quote_reserve_target türetimini doğrudan yapar).

Linear-price eğrisi (curve_type = 2)

Fiyat base_sold ile lineer olarak artar:
price(s) = a · s     (a = eğim, virtual_base / virtual_quote'tan türetilir)
Entegre maliyet:
cost(s_0, s_1) = a · (s_1² − s_0²) / 2
base_sold içinde karesel — erken alıcılar neredeyse sıfır öderler, geç alıcılar önemli ölçüde daha fazla öderler, marjinal fiyat sabit bir eğimle her zaman yükselir. Zincir üstü uygulama curve/linear_price.rs dosyasında yer alır.

Eğri-şekli karşılaştırması

price
  │   linear (dik kuyruk)               linear (curve_type = 2)
  │       ╱
  │      ╱
  │     ╱            const-product (curve_type = 0)
  │    ╱            ╱
  │   ╱           ╱
  │  ╱         ╱
  │ ╱       ╱
  │╱_____╱_______________________  fixed-price (curve_type = 1)
  └──────────────────────────────── base_sold
  0                  S_grad         S_max

Graduation eşiği

quote_reserve_target, Initialize sırasında base_sold değerini 0 ile base_supply_graduation arasında sürüdürmek için gereken quote olarak hesaplanır:
quote_reserve_target = cost(0, base_supply_graduation) × (1 + buy_fee_rate)
                                                         ^^^^^^^^^^^^^^^^^
                                                         yaklaşık; kesin
                                                         biçim Buy sırasında
                                                         kullanılan ücret
                                                         yuvarlama ile eşleşir.
Bir başlatma, quote_vault.balance ≥ quote_reserve_target olur olmaz graduation yapar. Alışlar ayrık boyutlarda geldiği için, graduation sırasındaki gerçek bakiye hedefi hafifçe aşabilir — fazlalık ortaya çıkan CPMM havuzunda ek quote tarafı likidite olur.

Çalışılmış örnek — karesel bir başlatma

Parametreler:
  • base_supply_max = 1_000_000_000 (1 milyar base token, 6 ondalık)
  • base_supply_graduation = 800_000_000 (%80 satıldı graduation tetikler)
  • k = 40 (fiyat ölçeği)
  • Ücretler: %1 alış, %1 satış, bölüm lp:creator:protocol = 60:20:20.
İlk fiyat (s = 0): 0 (saf karesel sıfırdan başlar). %50 satıldığında fiyat (s = 500_000_000):
price = 40 × (500e6 / 1e9)² = 40 × 0.25 = 10  (base başına quote, 6 ondalık)
Graduation fiyatı (s = 800_000_000):
price = 40 × (800e6 / 1e9)² = 40 × 0.64 = 25.6
Graduation’a ulaşmak için gereken quote (entegre maliyet):
cost(0, 800_000_000) = (40 / (3 × 1e18)) × ((800e6)³ − 0)
                     = (40 / 3e18) × 5.12e26
                     ≈ 6.827e9
Bu nedenle ≈ 6.827 quote-yerel birim (yapılandırılan herhangi 6-ondalık quote mint’te, örneğin quote USDC ise ~6,827 USDC). Üzerine uygulanan ücret:
quote_reserve_target ≈ 6.827e9 × 1.01 ≈ 6.895e9  (6,895 USDC)
İlk alış 10 USDC kadar:
  • Sanal durum: s = 0, quote_vault = 0.
  • Ücreti çıkar: quote_after_fee = 10 × 0.99 = 9.9.
  • (40 / (3e18)) × s³ = 9.9 çöz ⇒ s ≈ 6.22e6 base token alındı.
  • %1 ücret (0.1 USDC) bölümü: lp 0.06, creator 0.02, protocol 0.02. Lp payı quote_vault’ta kalır; diğer ikisi ilgili birikme sayaçlarına yönlendirilir.
%75 satıldığında alış (graduation yaklaşırken): Aynı 10 USDC, eğri dik olduğu için çok daha az base alır. s₀ = 750e6 konumunda Newton çözümü quote_in_after_fee = 9.9 ile kabaca ∆s ≈ 0.4e6 verir — ilk alışa kıyasla USDC başına base’de ~15 kez azalma.

Eğri fazı sırasında ücret mekaniği

Her Buy sırasında:
gross_fee      = ceil(quote_in_gross × buy_numerator / buy_denominator)
lp_share       = gross_fee × fees.lp_share / fees.total_share
protocol_share = gross_fee × fees.protocol_share / fees.total_share
creator_share  = gross_fee × fees.creator_share / fees.total_share
  • lp_share, quote_vault’ta kalır. Bu etkili eğriyi daha sıkı yapar (aynı base arzı karşı daha fazla quote rezerv).
  • protocol_share, LaunchState.state_data.protocol_fees_quote ile artar.
  • creator_share, LaunchState.state_data.creator_fees_quote ile artar.
Sell sırasında aynı bölüm uygulanır ancak ücret giden quote_out’tan alınır. Her iki sayaç da CollectFees aracılığıyla taranır (yönetici veya yaratıcı, her biri kendi sayacına).

Hassasiyet

  • Base tarafı miktarlar: u64.
  • Quote tarafı miktarlar: u64.
  • Ara küpler / ürünler: u128.
  • “Tam quote alış” ve “tam quote satış” için Newton çözümleri, yapılandırılabilir maksimum yineleme sayısı (varsayılan 10) ile u128 sabit-noktalı olarak yinelenir. Başarısızlık modu NotConverged — graduation yakındaki nadir durumlar dışında nadir.

CPMM’ye geçiş

Graduate çalıştığında:
cpmm_quote_reserve = quote_vault − swept_protocol_fees − swept_creator_fees
cpmm_base_reserve  = base_vault                       // yani base_supply_max − base_sold
cpmm_initial_price = cpmm_quote_reserve / cpmm_base_reserve
Karesel eğri için, cpmm_initial_price mekanik olarak price(base_sold) olur (geçiş anında marjinal eğri fiyatıdır). CPMM havuzu tam o fiyatla açılır, bu nedenle eğri UI’dan CPMM UI’na geçen bir gözlemci hiçbir sıçrama görmez.

Sonraki adım

Kaynaklar: