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 →
Değişmez
Poolcoin_reserve × pc_reserve = k ilişkisini korur; burada (2026-07 OpenBook kaldırılmasından sonra):
- Rezervler artık yalnızca vault’tur. Tarihsel açık-emir terimi (pool’un OpenBook limit emirleri olarak emanet ettiği tokenlar) kaldırılmıştır — kaldırılmadan çok önce pratikte sıfırdı.
k’yi doğrudan zincir üstü vault bakiyelerinden hesaplayabilirsiniz. - PnL birikimi (
need_take_pnl_*) çıkarılır, böylece admin ücretleri topladığında eğri korunur. CPMM’ninprotocol_fees_*hariç tutulması ile aynı ilke.
calc_total_without_take_pnl_no_orderbook aracılığıyla hesaplar (eski emir defteri farkında olan varyant ortadan kaldırılmıştır).
Her Swap* işlemi, LP’nin ücret payı rezervlere geri eklendikten sonra k' ≥ k olmasını zorunlu kılar.
Ücret kuralı
AMM v4, CPMM / CLMM’nin1/1_000_000 kuralı yerine oran ücretleri (pay/payda çiftleri) kullanır. Zincir üstü Fees yapısı (program kaynağında Fees::initialize bölümüne bakın) varsayılan olarak:
- Toplam swap ücreti:
swap_fee = amount_in × 25 / 10_000 = 0.25%brüt girdinin. - Protokol payı:
pnl_numerator / pnl_denominator = 12 / 100 = 12%swap ücretinin, bu da0.25% × 12% = 0.03%hacim anlamına gelir. Bu pay PnL sayaçlarına birikir veWithdrawPnltarafından toplanır. - LP payı: swap ücretinin kalan
88%’i, bu da0.25% × 88% = 0.22%hacim anlamına gelir. Pool’da kalır vek’yi şişirir. - Fon payı yok. AMM v4’ün CPMM/CLMM fon-ücret bölünmesi yoktur.
pnl_numerator / pnl_denominator’ın ticaret hacminin değil, ücretin bir kesri olduğuna dikkat edin — bu alan adlarının yaygın bir yanlış okuması.
trade_fee_numerator / trade_fee_denominator (ayrıca 25 / 10_000) tarihsel olarak OpenBook entegrasyonu tarafından AMM’nin limit-emir ızgarası için ücret dahil fiyatlar hesaplanırken kullanılmıştır. OpenBook kodu kaldırıldığında, bu alan kalıntıdır; etkin swap ücreti swap_fee_*’dir.
Bu varsayılanlardan sapmalar nadirdir ancak birkaç eski pool’da mevcuttur; her zaman AmmInfo.fees’ten ücretleri okuyun.
Doğrudan swap matematik (AMM yolu)
En basit durum: kullanıcı OpenBook ile etkileşime girmeden pool’un vault’larına karşı swap yapar. Pool’un iç rezervleri (kitap üstü tahsisatlar dahil) paydadır. SwapBaseIn (tam giriş):MonitorStep / örtülü kapatma yolu kaldırılmıştır.
SwapBaseOut (tam çıkış):
Emir defteri etkileşimi (tarihsel)
Kaldırıldı. Bu bölümde açıklanan ızgara oluşturma, AMM v4’ün orijinal olarak eğriyi bir OpenBook pazarına nasıl yansıttığını yansıtır. OpenBook entegrasyonu —
MonitorStep krankı ve build_orders ızgara mantığı dahil — programdan kaldırılmıştır (2026-07 yükseltmesi). Aşağıdaki matematik, zincir üstü target_orders / amm_open_orders hesaplarının bir zamanlar ne kadar boyutlandırıldığı için tamamen tarihsel bağlam olarak korunmuştur.AmmInfo parametrelerinden hesaplanmıştır:
depth— taraf başına fiyat seviyeleri sayısı.amount_wave— seviye başına boyut temel birimi.min_size,coin_lot_size,pc_lot_size— OpenBook pazarı kısıtlamaları.state_data.swap_acc_coin_fee,swap_acc_pc_fee— sonTakePnl’den bu yana kümülatif ücret sayaçları.
build_orders’da hesaplanan target_orders tarafından belirlenir ve her MonitorStep’te amm_open_orders ile karşılaştırılır. Herhangi bir sapma, iptal + yeni gönderiler ile sonuçlanır. OpenBook’ta yeni doldurulmuş emirler, OpenBook tarafını yenileyen bir sonraki işlemde pool vault’larına kapatılır.
Entegratörler nadiren ızgarayı hesaplaması gerekir — Raydium bekçisi bunu korur — ancak şunu bilmek faydalıdır:
- Önemli kitap üstü likiditeye sahip bir pool, bu likiditenin
k’ye katkı sağladığını, boşta oturmadığını gösterir. - Eski bir OpenBook pazarı (olay sırası dolu, kranklar engellendi) ızgara güncellemelerini engeller; AMM daha sonra bir sonraki kranka kadar görünür emir defterinden sapan fiyatları alıntılayabilir.
Kapatma adımı (PnL)
0.03% protokol payıstate_data.need_take_pnl_coin ve state_data.need_take_pnl_pc’ye birikir. TakePnl bu tutarları vault’lardan admin tarafından belirtilen hedefe taşır, ardından sayaçları sıfırlar.
Kritik özellik: değişmezdeki rezervler her zaman eksi birikmiş PnL olarak hesaplanır, bu nedenle TakePnl eğriyi hareket ettirmez. Bu CPMM kuralı ile eşleşir.
Çalışılmış örnek
Pool durumu:coin_reserve = 1_000_000_000_000(1.000.000 coin tarafı; 6 ondalık)pc_reserve = 2_000_000_000_000(2.000.000 pc tarafı; 6 ondalık)- Ücretler: varsayılan
swap = 25/10_000,pnl = 3/10_000.
SwapBaseIn tam-giriş 1_000_000_000 coin (1.000 coin).
2_200_000) hiçbir yerde ayrılmaz — k’yi yükselten kalıntıdır.
Kesinlik kuralları
- Rezerv çarpımları
u128kullanır; son bölmeler sıfıra doğru yuvarlanır. swap_feeyukarı yuvarlanır (pool’un az ücret almaması için).SwapBaseOutiçinamount_inyukarı yuvarlanır (kullanıcı az ödeme yapmaması için).- Aşırı rezerv oranlarına sahip pool’lar çok küçük girdilerde
ZeroTradingTokens’a çarpabilir; CPMM ile aynı kural.
CPMM’ye karşı sınırlamalar
- AMM v4’ün rezervleri artık yalnızca vault’tur, bu nedenle vault bakiyelerinden doğrudan alıntı yapabilirsiniz (eksi
need_take_pnl_*) —open_orders.free/open_orders.lockedtutarlarını ekleme önceki gereksinimi artık geçerli değildir. SDK / API alıntısı en basit seçenek olmaya devam eder. - AMM v4 yapılandırılmış zincir üstü TWAP’ı açığa çıkarmaz. AMM-v4 destekli bir fiyat isteyen harici tüketiciler bunu ticaret günlüklerinden kendileri hesaplamalıdır.
- Token-2022 desteklenmez.
Sonraki adım
products/amm-v4/instructions—SwapBaseIn,Depositvb. nereye bağlanır.products/amm-v4/fees— tam ücret mekaniği,TakePnldetayları.algorithms/constant-product— paylaşılan türetme.
- Raydium AMM program kaynağı —
raydium-io/raydium-amm - Raydium SDK v2
Liquiditymodülü

