Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Banner versi. Halaman ini mendokumentasikan
@raydium-io/raydium-sdk-v2@0.2.64-alpha, versi yang digunakan setiap demo kode di situs ini. SDK masih pre-1.0 dan permukaan tipe telah berkembang di berbagai rilis — pastikan Anda menentukan versi.Versi diperbarui dari 0.2.42-alpha pada 2026-09-09 bersamaan dengan upgrade program: 0.2.64-alpha adalah rilis terkini SDK. Repo raydium-sdk-V2-demo yang ditautkan di halaman demo kode menginstal 0.2.62-alpha, jadi tentukan salah satu jika Anda mengikuti demo secara persis. Demo di halaman ini terakhir dijalankan terhadap 0.2.42-alpha (2026-04); tanda tangan panggilan mereka diperiksa ulang terhadap sumber 0.2.64-alpha pada 2026-09-09, tetapi perlakukan ketidaksesuaian apa pun sebagai bug dokumentasi dan buka issue.Instalasi
.d.ts bersama artefak JS-nya. Toolchain minimum: Node 18+, TypeScript 5.0+, moduleResolution: "bundler" atau "node16".
Inisialisasi
Titik masuk adalahRaydium.load:
Raydium.load bersifat async karena, secara default, ia memuat daftar token (raydium.token.load()) dari api-v3.raydium.io. Berikan disableLoadToken: true untuk melewati pengambilan tersebut. Feature-check ketersediaan adalah panggilan terpisah ke /v3/main/AvailabilityCheckAPI dan sudah dilewati kecuali Anda secara eksplisit memberikan disableFeatureCheck: false. Konfigurasi biaya tidak diambil pada waktu load sama sekali — semuanya datang secara lazy dari raydium.api.getCpmmConfigs() / getClmmConfigs() saat pertama kali dipakai.
Modul facade
Setelah dimuat, objekraydium mengekspos sepuluh modul facade ditambah satu klien API:
Builder transaksi
Setiap fungsi yang mengubah state mengembalikan builder daripada mengeksekusi segera:execute— fungsi kenyamanan yang menandatangani + mengirim. Setara denganbuilder.execute.builder— instanceTxBuilderdengan semua instruksi dan penandatangan terakumulasi.builder.build()mengembalikan sebuahTxBuildDatayangtransaction-nya adalah satuTransactionlegacy;builder.buildV0()mengembalikanTxV0BuildDatadengan satuVersionedTransaction. HanyabuildMultiTx/buildMultiTxV0yang menghasilkan array.transaction—Transaction/VersionedTransactionyang sudah dibangun.instructionTypes/signers— label instruksi dan set penandatangan yang terakumulasi.extInfo— tambahan spesifik produk. Misalnya,cpmm.createPoolmengembalikanextInfo.address.{poolId, lpMint, vaultA, vaultB};launchpad.createLaunchpadmengembalikanextInfo.address(sebuahLaunchpadPoolInfoditambahpoolId).
Tidak ada bidang
innerTransactions pada tipe pengembaliannya — melakukan destructuring atasnya
adalah error TypeScript. Builder yang tipe pengembaliannya MakeMultiTxData (misalnya
clmm.harvestAllRewards, farm.harvestAllRewards, tradeV2.swap,
launchpad.createLaunchpad) justru mengekspos transactions, dan execute-nya memerlukan
{ sequentially: boolean } serta menghasilkan { txIds } alih-alih { txId }.txVersion mengontrol format transaksi legacy vs V0. V0 (tabel pencarian alamat) adalah rekomendasi default — memungkinkan swap yang lebih besar masuk dalam satu transaksi.
Mengapa builder async?
Hampir setiap builder secara internal mengambil state on-chain: info pool (untuk quote), kepemilikan program token (untuk Token-2022 vs routing SPL), rent-exemption akun (untuk pembuatan ATA), dll. SDK melakukan cache secara agresif tetapi panggilan pertama untuk pool baru melibatkan round-trip RPC. Pertahankan instanceraydium yang berumur panjang untuk menghindari pengambilan ulang.
Penambahan modul CLMM (rilis terbaru)
Facade CLMM mendapatkan permukaan untuk fitur dynamic-fee, single-sided-fee, dan limit-order baru:raydium.clmm.createCustomizablePool— superset daricreatePoolyang menerimacollectFeeOndandynamicFeeConfig(PublicKeydari akun config-nya). MenyediakandynamicFeeConfigitulah yang mengaktifkan dynamic fee; tidak ada flagenableDynamicFeeterpisah dan tidak adadynamicFeeConfigId.createPoolklasik terus bekerja untuk pool dengan biaya default.raydium.clmm.openLimitOrder— buka limit order single-tick. MengambilpoolInfo,baseIn(arah),orderTick,amount, dan secara opsionaltickArrayBitmap,noneIndex,ownerInfo. Gunakan helper tereksporgetOrderTick({ baseIn, mintADecimal, mintBDecimal, tickSpacing, price })untuk mengkuantisasi tick.raydium.clmm.increaseLimitOrder/decreaseLimitOrder— sesuaikan bagian yang belum terisi dari order yang ada. Keduanya mengambil{ poolInfo, limitOrder, amount };decreaseLimitOrdermenambahkanslippageopsional. Menurunkan akan revert pada order yang sepenuhnya terisi denganInvalidOrderPhase.raydium.clmm.settleLimitOrder/settleAllLimitOrder— sapukan output yang terisi ke ATA pemilik.settleLimitOrderhanya mengambil{ limitOrder }— tanpapoolInfo. Baik pemilik order maupun keeperlimit_order_adminmilik program dapat memanggilnya.raydium.clmm.closeLimitOrder/closeAllLimitOrder— tutup order yang sepenuhnya diselesaikan untuk memulihkan rent.raydium.api.getClmmDynamicConfigs()— helper REST yang mengenai endpoint baru/main/clmm-dynamic-config. (Tidak ada helper atau endpoint limit-order-config: limit order dikunci berdasarkan tick, bukan berdasarkan akun config per-pool.)
@raydium-io/raydium-sdk-v2/<anything> tidak ter-resolve dalam ejaan apa pun — impor semuanya dari barrel tingkat atas. (Secara internal, src/raydium/clmm/utils/ diganti nama menjadi src/raydium/clmm/libraries/, tetapi itu tidak pernah menjadi entry point publik.)
Panduan walkthrough TypeScript end-to-end tersedia di products/clmm/code-demos.
Jebakan umum
1. Ketidaksesuaian cluster
Konfigurasi startup SDK spesifik cluster. Mencampurcluster: "mainnet" dengan Connection devnet menyebabkan mis-routing senyap: SDK membuat quote terhadap AmmConfig mainnet tetapi mengirim ke devnet. Selalu berikan keduanya.
2. Lupa membuat ATA sebelumnya
Pada interaksi pertama dengan mint, Associated Token Account pengguna mungkin tidak ada. SDK secara otomatis menambahkan instruksiAssociatedTokenAccount::create ketika mendeteksi ATA yang hilang, yang memerlukan sejumlah kecil rent. Jika dompet Anda kekurangan SOL ini akan gagal senyap. Periksa dan danai sebelum mencoba lagi.
3. poolInfo basi
poolInfo adalah snapshot cache. Jika state pool telah berubah sejak Anda mengambilnya (perdagangan besar menggerakkan harga, misalnya), minAmountOut swap mungkin dihitung terhadap state lama dan jatuh di bawah amount-out on-chain, revert. Ambil ulang poolInfo segera sebelum membangun transaksi bernilai tinggi, atau gunakan computeAmountOut SDK yang melakukan re-query reserve.
4. Priority fees
SDK tidak menambahkan harga compute-unit secara default. Di jendela volume tinggi (peluncuran pool baru, acara meme-coin) ini berarti transaksi Anda bersaing dengan banyak orang lain dan mungkin tidak mendarat. SediakancomputeBudgetConfig eksplisit:
integration-guides/priority-fee-tuning untuk panduan sizing.
5. Toleransi slippage harus cocok dengan tipe pool
CPMM dan AMM v4 adalah matematika CPMM (dampak rendah pada perdagangan normal). CLMM adalah piecewise (dampak melompat di crossing tick). Jika Anda menyalin toleransi slippage 0,5% dari contoh CPMM ke swap CLMM yang melintasi beberapa tick, transaksi kemungkinan akan revert.computeAmountOut SDK mengembalikan priceImpact; ukur toleransi Anda di atasnya.
6. BN vs number
Semua bidang jumlah dalam SDK adalah instance BN bn.js — tidak pernah JavaScript number. Mengonversi nilai jumlah melalui .toNumber() secara senyap memotong di 2^53; untuk nilai apa pun di atas ~9 kuadriliun (tidak jarang pada mint 9-desimal), ini menghasilkan hasil yang salah. Pertahankan semuanya dalam BN hingga render UI final.
Kebijakan versioning
@raydium-io/raydium-sdk-v2adalah satu-satunya SDK yang Raydium pertahankan. Semua docs, demo, dan panduan integrasi menargetkannya.- Paket v1 yang lebih lama (
@raydium-io/raydium-sdk) ada di npm untuk alasan historis. Pemeliharaan berakhir setelah CPMM dan LaunchLab dikirim (v1 tidak pernah mendapatkan dukungan untuk keduanya), dan tidak ada rilis v1 sejak 2024. Perlakukan v1 sebagai end-of-life: jangan gunakan untuk kode baru, dan migrasikan integrasi v1 yang tersisa ke v2. - SDK v2 adalah pre-1.0. Perubahan breaking antara rilis minor 0.x dimungkinkan; tentukan versi yang telah Anda verifikasi dan periksa catatan rilis GitHub saat upgrade.
Upgrade
Saat upgrade antara versi minor SDK:- Periksa ulang tipe pengembalian setiap panggilan yang mengubah state — perubahan bentuk (misalnya
extInfo) sering terjadi. - Regenerasi tanda tangan pengambilan
poolInfo— bidang mungkin telah diganti nama. - Verifikasi ulang penanganan slippage Anda; SDK telah bergeser antara perilaku auto-bound dan opt-in bound di berbagai rilis.
- Jika Anda menggunakan
raydium.tradeV2(routing), verifikasi ulang bentuk route — ini adalah bagian paling tidak stabil dari permukaan tersebut. Perhatikan bahwa facade-nya diganti nama daritrademenjaditradeV2; nama lama tidak lagi ada.
Mendapatkan bantuan
Untuk pertanyaan SDK dan API:- GitHub issues — file di github.com/raydium-io/raydium-sdk-V2/issues untuk bug dan permintaan fitur. Tim Raydium memantau secara aktif.
- Discord — channel
#dev-supportdi discord.gg/raydium untuk bantuan sinkron. - Telegram — chat developer tertaut dari raydium.io (hindari grup Telegram yang tidak terverifikasi).
security/disclosure.
Pointer
sdk-api/rest-api— pelengkap HTTP untuk SDK.sdk-api/trade-api— transaksi swap yang dibangun server.sdk-api/anchor-idl— regenerasi klien langsung dari IDL program.sdk-api/python-integration— setara Python melaluisolana-py.integration-guides/priority-fee-tuning— sizingcomputeBudgetConfig.
- Sumber Raydium SDK v2
- Catatan rilis Raydium SDK.

