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 →
2026-07 güncellemesi itibarıyla, AMM v4’ün OpenBook / Serum bağımlılığı kaldırılmıştır — hiçbir instruction artık OpenBook durumunu okumaz veya yazmaz. Aşağıdaki market hesapları yalnızca eski v1 instruction düzenlerinde konumsal yer tutucu olarak (kabul edilir ancak yoksayılır) ve
AmmInfo üzerinde referans alanları olarak tutulur. V2 swap giriş noktalarını kullanın; bunlar bu hesapları tamamen atlar. Bu sayfa, eski işlemleri okumak için hesapları “havuz tarafından sahip olunan” ve “OpenBook (eski)” bölümlerine ayırır.Envanter
Bir AMM v4 havuzu, oluşturulduğundaAmmInfo üzerinde bir bağlı market kaydeder. Tam resim:
Not: “serum” ön eki, geriye dönük uyumluluk için AMM v4’ün IDL ve alan adlarında tutulur. Bu hesaplar OpenBook kaldırılmasından sonra artık işlevsel değildir.
AmmInfo
Havuzun kök durum hesabı. Büyüktür (≈ 752 bayt) çünkü hem havuz hem de OpenBook referanslarını satır içinde taşır.
Struct düzeni değişmemiştir (bayt uyumlu) bu nedenle mevcut deserializer’lar çalışmaya devam eder, ancak OpenBook kaldırılmasından sonra yukarıda
DEPRECATED olarak işaretlenen alanlar artık yazılmaz — swap_* hacim sayaçları son değerlerinde dondurulur. Hacim analitikleri için bu alanlar yerine işlem günlüklerini kullanın. Yalnızca need_take_pnl_* ve pool_open_time aktif olarak korunur.coin_vault,pc_vault— havuzun SPL Token vault’ları.coin, Serum/OpenBook kuralına göretoken_0’dır (taban),pcisetoken_1’dir (alıntı).coin_decimals,pc_decimals— mint’lerle eşleşir.open_orders,target_orders,market— eski referans alanları.AmmInfoüzerinde hala mevcuttur ve v1 instruction düzenlerinde konumsal olarak hala geçirilir, ancak program artık bunları okumaz veya doğrulamaz. V2 swap giriş noktaları bunları atlar.fees.swap_fee_numerator / swap_fee_denominator— birleştirilmiş işlem ücreti. Varsayılan25 / 10_000 = 0.25%.status— işlemleri kapı açan tek bir numaralandırılmışu64durumudur, bitmask değildir.param = 0(Status) ileSetParamsaracılığıyla admin tarafından ayarlanabilir. Aşağıdaki Durum bölümüne bakın.lp_amount— havuzun dahili LP toplamı.lp_mint.supplyile eşit değildir: tam olarak bir bütün LP token’ı (10^coin_decimalstaban birimi) kadar daha yüksektir, çünkü bu miktar init sırasında sayılır ama hiçbir zaman mint’lenmez. Programdaki tüm orantısal matematiklp_amountkullanır; siz de onu kullanın.amm_owner— oluşturma sırasında yaratıcıdan değil, programın hardcode edilmiş admin anahtarından yazılır.state_data.need_take_pnl_*— brüt tahakkuk eden ücretler ile taranmış olanlar arasındaki delta.TakePnlbunları sıfırlar.
OpenBook bağlantısı
Kaldırılmıştır. OpenBook / Serum bağımlılığı programdan silinmiştir (2026-07 güncellemesi). Bu bölümde açıklanan hesaplar artık doğrulanmaz veya kullanılmaz.
AmmInfo üzerinde referans alanları ve eski v1 instruction düzenlerinde konumsal yer tutucuları olarak kalırlar. V2 swap giriş noktalarını (SwapBaseInV2 / SwapBaseOutV2) kullanın; bunlar bu hesapları tamamen atlar.SwapBaseIn / SwapBaseOut, Deposit veya Withdraw instruction’ını çağırdığınızda, hesap sayısı eski düzenle eşleşmelidir (market hesapları tarihsel konumlarını işgal eder), ancak içerikleri artık kontrol edilmez — bunlara karşı CPI verilmez. Yeni kod, bu hesapları hiç almayan V2 swap varyantlarını kullanmalıdır.
amm_open_orders’ı, bu market’te havuzun limit-order durumunu tutan OpenBook tarafından sahip olunan bir hesaptır: aktif emirler, kapatılan bakiyeler, referrer’lar vb. amm_target_orders AMM tarafındandır: AMM’nin amaçlanan grid’ini (her order slot’u için fiyat/boyut) tutar, böylece program şu anda ne kadar yayınlandığını ucuza karşılaştırabilir ve farkı yerleştirebilir / iptal edebilir.
Authority PDA’ları
Tüm AMM v4 programı için tam olarak biramm_authority PDA vardır. Tohumu önemsizdir (["amm authority"]) ve bump’ı her AmmInfo üzerinde depolanır. Bu authority, tüm AMM v4 havuzları için tüm token hareketlerini imzalar.
254’tür ve her AmmInfo üzerinde nonce olarak yansıtılır; WithdrawExcessLamports bunu, söz konusu nonce hardcode edilmiş hâlde yeniden türetir.
Vault’lar
Havuzun SPL Token vault’ları,owner’ı amm_authority olan standart token hesaplarıdır. ATA değil — adresleri, Initialize2 sırasında [AMM_V4_PROGRAM_ID, market, "coin_vault_associated_seed"] ve [AMM_V4_PROGRAM_ID, market, "pc_vault_associated_seed"] tohumlarından türetilen PDA’lardır. Mint bir tohum değildir, amm_id de değildir. Adresler AmmInfo üzerinde depolanır; türetme tek seferlik bir merak konusudur.
Token-2022 desteklenmez. Program, tüm vault hareketleri için SPL Token’ın program ID’sini hardcode eder. Bir AMM v4 havuzunu Token-2022 mint’ine bağlamaya çalışmak Initialize2 sırasında InvalidSplTokenProgram ile başarısız olur.
LP mint
amm_authority’nin authority’si olan klasik bir SPL Token mint’i. Toplam arz, havuzun LP sahipliğini izler; LP’yi yakma, her iki vault’tan orantılı olarak token’ları döndürür.
Durum içinde bir ayna vardır: AmmInfo.lp_amount. Bu, mint’in arzına eşit değildir — tam olarak bir bütün LP token’ı (10^coin_decimals taban birimi) kadar daha yüksektir, çünkü bu miktar init sırasında sayılır ama hiçbir zaman mint’lenmez. Programdaki her orantısal hesaplama lp_amount’a böler; bu nedenle mint’in zincir üzerindeki arzı yerine bu alanı kullanın.
Durum
AmmInfo.status, tek bir numaralandırılmış u64 durumudur, bitmask değildir. Eşitlik için test edin — status & 1 testi yapan bir istemci her canlı havuzu yanlış sınıflandırır, çünkü normal işlem durumu 6’dır ve bu değerin 0. biti set edilmiştir.
Initialize2, open_time gelecekteyse 7, aksi hâlde 6 yazar; 7 durumundaki bir havuz, state_data.pool_open_time anında veya sonrasındaki ilk swap’ta kendisini 6’ya çevirir. 0..=7 aralığı dışındaki bir değer AmmStatus::from_u64’ün panik yapmasına neden olur.
Raydium multisig’i durumu param = 0 (Status) ile SetParams aracılığıyla ayarlar; yalnızca 1–7 değerleri kabul edilir. (AdminCancelOrders kaldırılmıştır.)
Gözlem / oracle
AMM v4’ün adanmış gözlem hesabı yoktur ve OpenBook kaldırıldığından bu yana bundan türetilebilecek bir emir defteri durumu da yoktur. Program desteğiyle bir Raydium TWAP’ına ihtiyacınız varsa CPMM veya CLMM kullanın — her ikisi de birObservationState halka tamponu tutar. Aksi hâlde swap loglarını zincir dışında indeksleyin.
Bir havuzun hesaplarını sıfırdan türetme
AMM v4’ün havuz hesapları, bağlı market üzerine anahtarlanmış düz PDA’lardır — tohumlanmış keypair’ler değil, çift başına PDA’lar da değil. HepsiAMM_V4_PROGRAM_ID altında aynı üç tohumlu [AMM_V4_PROGRAM_ID, market, <label>] şeklini kullanır:
raydium-sdk-v2’nin Liquidity.getAssociatedPoolKeys bölümüne bakın.
Uygulamada, entegratörler havuzun tam hesap setini GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> veya SDK’dan okurlar. El ile türetme nadiren gereklidir.
Yaşam döngüsü hızlı referansı
Havuzlar ve hesapları süresiz olarak kalır. Likidite tamamen çekilse bile,
AmmInfo kalır.
Nerede ne okuyacağınız
- Matematik ve ücret aritmetiği:
products/amm-v4/math. - Ücret bölünmesi ve CPMM/CLMM ile nasıl karşılaştırıldığı:
products/amm-v4/fees. - Instruction hesap listeleri:
products/amm-v4/instructions. - OpenBook hesap türetmesi: OpenBook program kaynağı (
github.com/openbook-dex/program) — düzyazı dokümantasyon değil, bir Rust monorepo’su.
- Raydium AMM programı —
raydium-io/raydium-amm reference/program-addresseskanonik program ID’leri için- Karşı taraf hesapları için OpenBook / Serum protokolü

