Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Sejak pembaruan 2026-07, ketergantungan OpenBook / Serum pada AMM v4 telah dihapus — tidak ada instruksi yang membaca atau menulis status OpenBook lagi. Akun pasar di bawah ini dipertahankan hanya sebagai placeholder posisional pada tata letak instruksi v1 warisan (diterima tetapi diabaikan) dan sebagai bidang referensi pada
AmmInfo. Gunakan titik masuk swap V2, yang menghilangkannya sepenuhnya. Halaman ini masih mengelompokkan akun ke dalam bagian “pool-owned” dan “OpenBook (legacy)” untuk membaca transaksi yang lebih lama.Inventaris
Pool AMM v4 mencatat satu pasar terikat padaAmmInfo saat pembuatan. Gambaran lengkapnya:
Catatan: “serum” dipertahankan sebagai awalan dalam IDL dan nama bidang AMM v4 untuk kompatibilitas mundur. Akun-akun ini tidak lagi berfungsi setelah penghapusan OpenBook.
AmmInfo
Akun status root pool. Besar (≈ 752 byte) karena membawa referensi pool dan OpenBook secara inline.
Tata letak struct tidak berubah (kompatibel byte) sehingga deserializer yang ada terus bekerja, tetapi setelah penghapusan OpenBook, bidang yang ditandai
DEPRECATED di atas tidak lagi ditulis — penghitung volume swap_* dibekukan pada nilai terakhirnya. Untuk analitik volume, gunakan log perdagangan daripada bidang-bidang ini. Hanya need_take_pnl_* dan pool_open_time yang secara aktif dipertahankan.coin_vault,pc_vault— vault SPL Token pool.coinadalahtoken_0menurut konvensi Serum/OpenBook (base),pcadalahtoken_1(quote).coin_decimals,pc_decimals— sesuai dengan mint.open_orders,target_orders,market— bidang referensi warisan. Masih ada diAmmInfodan masih dilewatkan secara posisional pada tata letak instruksi v1, tetapi program tidak lagi membaca atau memvalidasinya. Titik masuk swap V2 menghilangkannya.fees.swap_fee_numerator / swap_fee_denominator— biaya perdagangan gabungan. Default25 / 10_000 = 0.25%.status— satu statusu64terenumerasi yang membatasi operasi, bukan bitmask. Dapat diatur admin melaluiSetParamsdenganparam = 0(Status). Lihat Status di bawah.lp_amount— total LP internal pool. Nilainya tidak sama denganlp_mint.supply: nilainya lebih tinggi tepat satu token LP utuh (10^coin_decimalsunit dasar), karena jumlah itu dihitung saat init tetapi tidak pernah di-mint. Semua matematika pro-rata memakailp_amount, jadi gunakan itu juga.amm_owner— ditulis saat pembuatan dari kunci admin yang di-hardcode pada program, bukan dari kreator.state_data.need_take_pnl_*— delta antara biaya yang terkumpul kotor dan apa yang telah disapu.TakePnlmengosongkan ini.
Pengkabelan OpenBook
Dihapus. Ketergantungan OpenBook / Serum telah dihapus dari program (pembaruan 2026-07). Akun yang dijelaskan di bagian ini tidak lagi divalidasi atau digunakan. Mereka tetap sebagai bidang referensi pada
AmmInfo dan sebagai placeholder posisional pada tata letak instruksi v1 warisan. Gunakan titik masuk swap V2 (SwapBaseInV2 / SwapBaseOutV2) yang melewatkan akun-akun ini sepenuhnya.SwapBaseIn / SwapBaseOut, Deposit, atau Withdraw warisan, jumlah akun harus tetap cocok dengan tata letak lama (akun pasar menempati posisi historisnya), tetapi isinya tidak lagi diperiksa — tidak ada CPI yang dikeluarkan terhadapnya. Kode baru harus menggunakan varian swap V2, yang tidak mengambil akun-akun ini sama sekali.
amm_open_orders AMM adalah akun milik OpenBook yang menyimpan status limit-order pool di pasar ini: pesanan aktif, saldo yang diselesaikan, referrer, dll. amm_target_orders adalah sisi AMM: ia menyimpan grid yang dimaksudkan AMM (harga/ukuran untuk setiap slot pesanan) sehingga program dapat dengan murah membandingkan dengan apa yang saat ini diposting dan menempatkan / membatalkan perbedaannya.
PDA Authority
Ada tepat satu PDAamm_authority untuk seluruh program AMM v4. Seed-nya trivial (["amm authority"]) dan bump-nya disimpan di setiap AmmInfo. Authority ini menandatangani semua pergerakan token untuk semua pool AMM v4.
254 di mainnet dan dicerminkan pada setiap AmmInfo sebagai nonce; WithdrawExcessLamports menurunkannya kembali dengan nonce itu di-hardcode.
Vault
Vault SPL Token pool adalah akun token standar yangowner-nya adalah amm_authority. Bukan ATA — alamatnya adalah PDA yang diturunkan pada Initialize2 dari [AMM_V4_PROGRAM_ID, market, "coin_vault_associated_seed"] dan [AMM_V4_PROGRAM_ID, market, "pc_vault_associated_seed"]. Mint bukan seed, dan amm_id juga bukan. Alamat disimpan di AmmInfo; derivasi adalah keingintahuan satu kali.
Token-2022 tidak didukung. Program hardcode ID program SPL Token untuk semua pergerakan vault. Mencoba mengikat pool AMM v4 ke mint Token-2022 gagal pada Initialize2 dengan InvalidSplTokenProgram.
LP mint
Mint SPL Token klasik yang authority-nya adalahamm_authority. Total supply melacak kepemilikan LP dari pool; membakar LP mengembalikan token dari kedua vault secara pro-rata.
Mirror dalam status memang ada: AmmInfo.lp_amount. Nilainya tidak sama dengan supply mint — nilainya lebih tinggi tepat satu token LP utuh (10^coin_decimals unit dasar), karena jumlah itu dihitung saat init tetapi tidak pernah di-mint. Setiap perhitungan pro-rata dalam program membagi dengan lp_amount, jadi gunakan bidang itu daripada supply on-chain mint.
Status
AmmInfo.status adalah satu status u64 terenumerasi, bukan bitmask. Uji dengan kesetaraan — klien yang menguji status & 1 salah mengklasifikasikan setiap pool aktif, karena status perdagangan normal adalah 6, yang bit 0-nya disetel.
Initialize2 menulis 7 ketika open_time berada di masa depan dan 6 jika tidak; pool pada 7 beralih sendiri ke 6 pada swap pertama pada atau setelah state_data.pool_open_time. Nilai di luar 0..=7 membuat AmmStatus::from_u64 panic.
Multisig Raydium menetapkan status melalui SetParams dengan param = 0 (Status); hanya nilai 1–7 yang diterima. (AdminCancelOrders telah dihapus.)
Observasi / oracle
AMM v4 tidak memiliki akun observasi khusus, dan sejak penghapusan OpenBook juga tidak ada status order-book untuk menurunkannya. Jika Anda membutuhkan TWAP Raydium dengan dukungan program, gunakan CPMM atau CLMM — keduanya memelihara ring bufferObservationState. Jika tidak, indeks log swap secara off-chain.
Menurunkan akun pool dari awal
Akun pool AMM v4 adalah PDA biasa yang dikunci pada pasar terikat — bukan keypair berseeded, dan bukan PDA per-pasangan. Daftar berikut lengkap: tidak ada akunObservationState di antaranya. Setiap akun memakai bentuk tiga-seed yang sama [AMM_V4_PROGRAM_ID, market, <label>] di bawah AMM_V4_PROGRAM_ID:
Liquidity.getAssociatedPoolKeys dari raydium-sdk-v2.
Dalam praktiknya, integrator membaca set akun lengkap pool dari GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> atau dari SDK. Derivasi manual jarang diperlukan.
Referensi cepat siklus hidup
Pool dan akun mereka bertahan selamanya. Bahkan jika likuiditas sepenuhnya ditarik,
AmmInfo tetap ada.
Apa yang dibaca di mana
- Matematika dan aritmetika biaya:
products/amm-v4/math. - Pembagian biaya dan bagaimana perbandingannya dengan CPMM/CLMM:
products/amm-v4/fees. - Daftar akun instruksi:
products/amm-v4/instructions. - Derivasi akun OpenBook: sumber program OpenBook (
github.com/openbook-dex/program) — sebuah monorepo Rust, bukan dokumentasi prosa.
- Program Raydium AMM —
raydium-io/raydium-amm reference/program-addressesuntuk ID program kanonik- Protokol OpenBook / Serum untuk akun pihak lawan

