Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Banner versi.
- SDK:
@raydium-io/raydium-sdk-v2@0.2.64-alpha - Cluster: Solana
mainnet-beta - Program ID: lihat
reference/program-addresses - Terakhir diverifikasi: 2026-09-09 terhadap sumber SDK
0.2.64-alpha,raydium-sdk-V2-demo/src/launchpad, dan sumber programraydium-launch
package.json Anda. Antarmuka kurva bonding telah berkembang di antara rilis minor.Setup
Demo di sini mencerminkan file diraydium-sdk-V2-demo/src/launchpad. Bootstrap mengikuti config.ts.template repo demo:
Buat peluncuran
Sumber:src/launchpad/createMint.ts (dan createBonkMintApi.ts untuk varian Bonk yang didorong API)
Sebagian besar ekonomi peluncuran bukan argumen — mereka berasal dari GlobalConfig yang Anda ikat melalui configId, dan SDK mengisi sisanya dari parameter default API. Anda meneruskan identitas mint, konfigurasi untuk diikat, dan (opsional) pembelian pertama:
- Tidak ada argumen
curveType,graduationFractionBps,initialK,quoteMint,openTime,fees, ataupostGraduationLpPolicy. Bentuk kurva dan quote mint adalah propertiGlobalConfigyang Anda ikat; tingkat biaya hidup diGlobalConfigdanPlatformConfig; pembuangan LP saat lulus adalah pengaturanPlatformConfig. Lihatproducts/launchlab/instructionsuntuk mengetahui dengan tepat apa yang diterimaInitializeV2. symbollebih panjang dari 10 karakter danurikosong keduanya ditolak sisi klien sebelum RPC apa pun.- Melewatkan
transferFeeExtensionParamsmengalihkan builder keInitializeWithToken2022dan memaksamigrateTypemenjadi"cpmm". - Builder mengembalikan array
transactions;createOnly: falsemenambahkan transaksi pembelian pertama. Selaluexecute({ sequentially: true })— mint harus ada sebelum pembelian mendarat.
Ambil status peluncuran
Sumber:src/launchpad/poolInfo.ts
Tidak ada getLaunchById. ID pool adalah PDA dari (programId, mintA, mintB), dan getRpcPoolInfo mengembalikan PoolState yang didekodekan dengan configInfo terikatnya:
getRpcPoolsInfo({ poolIdList }) adalah bentuk batch dan mengembalikan poolInfoMap yang dikunci berdasarkan ID pool — gunakan untuk tampilan portofolio alih-alih looping. Jika Anda ingin mendekodekan akun mentah sendiri, LaunchpadPool.decode dan LaunchpadConfig.decode diekspor.
Beli — quote tepat masuk
Sumber:src/launchpad/buy.ts
Pembantu kutipan off-chain adalah Curve.buyExactIn, metode statis pada kelas Curve yang diekspor — bukan metode pada raydium.launchpad. Builder transaksi adalah buyToken. Keduanya memerlukan tingkat biaya platform, yang hidup di akun PlatformConfig terpisah:
minMintAAmount secara eksplisit alih-alih slippage; hilangkan keduanya dan SDK menghitung batas dari data RPC langsung. shareFeeRate tidak boleh melebihi poolInfo.configInfo.maxShareFeeRate, dan hanya berlaku saat Anda juga meneruskan shareFeeReceiver.
Beli — base tepat keluar
Builder adalahbuyTokenExactOut, dan argumen jumlah adalah outAmount (base yang Anda inginkan) dan maxBuyAmount (quote yang akan Anda belanjakan paling banyak). Curve.buyExactOut({ poolInfo, amountA, ... }) adalah pratinjau off-chain yang cocok.
outAmount nol sisi klien, dan program kembali jika kurva telah bergerak cukup sehingga persyaratan kutipan melebihi maxBuyAmount.
Jual
Sumber:src/launchpad/sell.ts
Builder adalah sellToken (sellTokenExactOut untuk varian exact-quote-out), dengan sellAmount dan minAmountB opsional. Curve.sellExactIn({ poolInfo, amountA, ... }) mempratinjauinya.
real_a sebesar sellAmount mengembalikan quote_out sama dengan area terintegrasi di bawah kurva antara real_a − sellAmount dan real_a, dikurangi biaya jual. sellAmount harus lebih besar dari nol — builder menolak nol sebelum RPC apa pun.
Kelulusan
Dompet tersebut dioperasikan oleh crank kelulusan Raydium, jadi dalam praktik migrasi mendarat dalam hitungan detik setelah ambang batas terlampaui terlepas dari siapa yang melakukan pembelian terakhir. Dari sisi integrator, satu-satunya hal yang harus dilakukan adalah memperlakukan transisi status sebagai peristiwa cepat: pollinggetRpcPoolInfo (atau berlangganan melalui gRPC, di bawah) dan alihkan UI Anda dari kurva ke pool CPMM yang dihasilkan saat status berubah.
Lihat products/launchlab/instructions untuk daftar akun, biaya migrasi, dan bagaimana LP dibagi saat kelulusan.
Kumpulkan biaya kreator
Sumber:src/launchpad/claimCreatorFee.ts (mint tunggal) dan collectAllCreatorFees.ts (batch)
Metodenya adalah claimCreatorFee (dan claimMultipleCreatorFee untuk bentuk batch). Ini dikunci berdasarkan quote mint, bukan oleh peluncuran — satu panggilan menyapu biaya kreator yang terakumulasi penanda tangan di mint itu di seluruh peluncuran mereka:
claimPlatformFee / claimAllPlatformFee / claimVaultPlatformFee.
Lacak peluncuran melalui siklus hidupnya
Menyatukannya, skrip pemantauan mungkin terlihat seperti:getRpcPoolInfo pada timer 10 detik baik-baik saja untuk satu peluncuran. Untuk indexer, gunakan langganan gRPC di bawah sebagai gantinya — getRpcPoolsInfo({ poolIdList }) batch, tetapi polling ratusan pool masih membakar kredit RPC tanpa manfaat.
Pantau konfigurasi dan pool melalui gRPC
Sumber:src/grpc/launchpadPoolInfo.ts
Berlangganan program LaunchLab melalui gRPC Yellowstone dan mencatat setiap pembaruan GlobalConfig dan PoolState dengan program token setiap mint. Dua filter datasize pada satu langganan accounts memisahkan dua jenis akun, jadi satu aliran mencakup keduanya.
Demo adalah referensi paling singkat yang benar untuk mengklasifikasikan mint peluncuran, yang diperlukan oleh rilis quote-mint Token-2022:
- Pool diklasifikasikan langsung dari
PoolState.token_program_flag, mendekodekan bit0 untuk mint dasar dan bit1 untuk quote mint tanpa pengambilan mint sama sekali. Menguji seluruh byte terhadap0— yang cukup saat quote mint hanya warisan — salah membaca mint dasar warisan sebagai Token-2022 kapan pun quote mint adalah Token-2022. - Config tidak dapat diklasifikasikan dengan cara itu:
GlobalConfigmenyimpan alamat quote mint dan tidak ada flag program, jadi demo membaca pemilik akun mint sekali dan menyimpannya per mint.
create versus update disimpulkan dari cache demo sendiri, ditanam saat startup dari getProgramAccounts; dengan seeding itu dinonaktifkan, baca “create” sebagai “pertama kali terlihat di aliran ini”.
Akses gRPC bukan bagian dari permukaan RPC publik — lihat src/grpc/README.md repo demo.
Rust CPI
Memanggil LaunchLab dari program Anchor Anda sendiri jarang terjadi (sebagian besar integrasi peluncuran hanya sisi TS). Jika Anda melakukannya:- Crate adalah
raydium-launchpad(nama libraydium_launchpad), versi0.2.0, dan itu mengekspos fiturcpi. Tidak adaraydium_launchlab. - Ini tidak dipublikasikan di crates.io — bergantung padanya dengan revisi git, cara yang sama seperti crate program Raydium lainnya.
- Titik masuk CPI dinamai setelah instruksi on-chain, bukan setelah metode TypeScript SDK:
buy_exact_in,buy_exact_out,sell_exact_in,sell_exact_out,claim_creator_fee,create_vesting_account,claim_vested_token.migrate_to_amm/migrate_to_cpswapadalah gated penanda tangan ke dompet migrasiGlobalConfigdan tidak dapat dipanggil dari program integrator.
sdk-api/rust-cpi untuk aturan pengikat crate — khususnya pemisahan versi Anchor, yang menentukan apakah satu crate dapat CPI ke dalam LaunchLab dan CLMM.
Jebakan
- Membingungkan nama instruksi on-chain dengan nama metode SDK. Program memiliki
buy_exact_in/sell_exact_in; SDK memilikibuyToken/sellToken.buyExactIndansellExactInhanya ada sebagai metode statis padaCurve, dan mereka menghitung kutipan — mereka tidak membangun transaksi. - Lupa
extraSigners.createLaunchpadmembuat mint dasar dari keypair yang Anda buat, jadi keypair itu harus menandatangani. HilangkanextraSigners: [pair]dan transaksi gagal verifikasi tanda tangan. - Tidak memilih quote mint. Anda tidak meneruskan satu. Quote mint adalah properti
GlobalConfigyang Anda ikat melaluiconfigId—getPdaLaunchpadConfigId(programId, quoteMint, curveType, index). Untuk meluncurkan terhadap quote mint yang berbeda, ikat konfigurasi yang berbeda;raydium.api.fetchLaunchConfigs()mencantumkan yang tersedia dengan parameter default mereka. - Ukuran metadata. String
uripanjang mendorong CPI Metaplex melampaui anggaran. Jagauridi bawah ~200 karakter — sebagian besar metadata JSON yang dihosting CDN cocok dengan mudah.symboldibatasi keras pada 10 karakter. - Memperlakukan kelulusan sebagai perlombaan yang dapat Anda masuki. Bukan — lihat peringatan di atas. UI Anda masih harus memperlakukan transisi
statussebagai peristiwa cepat, karena crank Raydium mendarat migrasi dalam hitungan detik setelah ambang batas terlampaui.
Ke mana selanjutnya
products/launchlab/bonding-curve— matematika kurva.products/cpmm/code-demos— apa yang harus dilakukan dengan pool yang dihasilkan.user-flows/launch-token-launchlab— panduan end-to-end luncurkan-token, termasuk langkah off-chain.
- Raydium SDK v2
- Sumber program Raydium LaunchLab

