Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
LaunchLab mengekspos set instruksi yang ketat: enam panggilan yang menghadap pengguna ditambah beberapa primitif admin. SDK membungkus semuanya; halaman ini mendokumentasikan permukaan mentah untuk agregator, alat pemantauan, dan program yang memerlukan CPI.
Inventori instruksi
| Grup | Instruksi | Dapat dipanggil oleh |
|---|
| Konfigurasi global | CreateConfig / UpdateConfig | Admin |
| Daur hidup peluncuran | Initialize / InitializeV2 | Siapa saja (kreator) — peluncuran SPL Token; V2 merekam amm_creator_fee_on untuk kelulusan CPMM yang akan datang |
| Daur hidup peluncuran | InitializeWithToken2022 | Siapa saja (kreator) — peluncuran Token-2022, TransferFeeConfig opsional |
| Perdagangan | BuyExactIn / BuyExactOut | Siapa saja — pembelian input-pasti / output-pasti pada kurva ikatan |
| Perdagangan | SellExactIn / SellExactOut | Siapa saja — penjualan input-pasti / output-pasti pada kurva ikatan |
| Kelulusan | MigrateToAmm | Dompet migrasi (diatur pada GlobalConfig) — kelulusan ke AMM v4. Digunakan ketika amm_creator_fee_on = BothToken sehingga biaya kreator dapat dikumpulkan dari kedua sisi. |
| Kelulusan | MigrateToCpswap | Dompet migrasi — kelulusan ke CPMM. Digunakan ketika amm_creator_fee_on = QuoteToken dan diperlukan untuk peluncuran Token-2022. Membungkus InitializeWithPermission pada CPMM. |
| Biaya | CollectFee | Admin — kumpulkan biaya protokol dari peluncuran |
| Biaya | CollectMigrateFee | Admin — kumpulkan biaya migrasi yang terakumulasi |
| Biaya | ClaimCreatorFee | Kreator — klaim biaya kreator yang terakumulasi selama fase kurva |
| Vesting | CreateVestingAccount | Kreator — alokasikan token terkunci kepada penerima, dibuka setelah kelulusan |
| Vesting | CreatePlatformVestingAccount | Admin platform — alokasikan token terkunci kepada penerima sisi platform |
| Vesting | ClaimVestedToken | Penerima — klaim token yang tidak terkunci setelah tebing |
| Konfigurasi platform | CreatePlatformConfig / UpdatePlatformConfig | Admin platform |
| Konfigurasi platform | UpdatePlatformCurveParam / RemovePlatformCurveParam | Admin platform — kelola daftar per-platform bentuk kurva yang diizinkan |
| Biaya platform | ClaimPlatformFee / ClaimPlatformFeeFromVault | Admin platform |
| Akses platform | CreatePlatformGlobalAccess / ClosePlatformGlobalAccess | Admin — batasi platform mana yang dapat menggunakan GlobalConfig tertentu |
Pembagian “ExactIn/ExactOut” mencerminkan SwapBaseInput / SwapBaseOutput CPMM — di chain mereka adalah diskriminator instruksi terpisah dengan pembulatan yang sedikit berbeda.
Pemilihan jalur kelulusan. migrate_type dicatat pada PoolState saat Initialize{V2,WithToken2022} dan menentukan instruksi kelulusan mana yang dapat berjalan. Peluncuran Token-2022 selalu bermigrasi ke CPMM. Peluncuran SPL Token bermigrasi ke AMM v4 atau CPMM tergantung pada pengaturan amm_creator_fee_on:
BothToken → MigrateToAmm → pool AMM v4 (biaya kreator dapat dikumpulkan dari kedua sisi; AMM v4 tidak memiliki bidang biaya kreator asli, jadi biaya kreator diambil melalui mekanisme kunci LP NFT sebagai gantinya).
QuoteToken → MigrateToCpswap → pool CPMM dengan creator_fee_on = OnlyQuoteToken (kreator terus mendapatkan biaya dari pool CPMM melalui NFT LaunchLab Fee Key — lihat products/launchlab/creator-fees).
Catatan tentang nama enum AmmCreatorFeeOn. Sumber Rust menyebut enum ini AmmCreatorFeeOn dengan varian QuoteToken dan BothToken. Namanya menyesatkan: dalam praktik operasional saat ini varian tidak hanya mengontrol sisi mana biaya kreator dikumpulkan dari pool CPMM pasca-kelulusan — varian juga memilih program target kelulusan target program (AMM v4 vs CPMM) dan berpasangan dengan migrate_type pada PoolState peluncuran. Perlakukan bidang ini sebagai “target migrasi + sisi biaya kreator pasca-kelulusan” digabungkan menjadi satu. Nama enum on-chain belum difaktorisasi ulang, tetapi penalaran tentangnya sebagai MigrationTarget cocok dengan kenyataan lebih dekat.
Initialize
Buat peluncuran baru.
Argumen
launch_params: {
curve_type: u8,
base_supply_max: u64,
base_supply_graduation: u64,
k: u128, // atau initial_virtual_quote_reserve untuk curve_type=1
open_time: u64,
quote_mint: Pubkey,
base_token_metadata: { // nama/simbol/uri inline; program CPI ke Metaplex
name: String,
symbol: String,
uri: String,
},
fees: {
buy_numerator: u64,
buy_denominator: u64,
sell_numerator: u64,
sell_denominator: u64,
lp_share: u64,
creator_share: u64,
protocol_share: u64,
total_share: u64,
},
post_graduation_lp_policy: u8, // 0 = Burn, 1 = Lock, 2 = ToCreator
}
Akun (ringkas)
| # | Nama | W | S | Catatan |
|---|
| 1 | creator | W | S | Membayar sewa + pembuatan base mint. |
| 2 | launch_config | | | Pengikatan konfigurasi protokol. |
| 3 | launch_state | W | | Akun baru. |
| 4 | launch_authority | | | PDA. |
| 5 | base_mint | W | S | Keypair segar (atau PDA) — instruksi ini menginisialisasinya. |
| 6 | base_vault | W | | ATA dari launch_authority pada base_mint. |
| 7 | quote_mint | | | |
| 8 | quote_vault | W | | ATA dari launch_authority pada quote_mint. |
| 9 | metadata | W | | PDA metdata Metaplex. |
| 10 | metaplex_program | | | |
| 11 | token_program | | | SPL Token saja. |
| 12 | system_program | | | |
| 13 | rent | | | |
Kondisi sebelumnya
quote_mint ∈ launch_config.allowed_quote_mints.
base_supply_graduation ≤ base_supply_max.
- Parameter biaya lulus pemeriksaan
launch_config.max_*_fee_rate.
open_time ≥ now − slop (SDK memberlakukan ≥ now; program mentoleransi backdating kecil).
curve_type dikenali.
Kondisi sesudahnya
base_mint memiliki supply = base_supply_max, semuanya di base_vault.
base_mint.mint_authority = launch_authority, freeze_authority = None.
LaunchState diinisialisasi dengan status = Active, base_sold = 0, quote_reserve_real = 0.
quote_reserve_target dihitung dari parameter kurva + base_supply_graduation + buy_numerator (kira-kira).
Kesalahan umum — InvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.
Buy (varian kanonik: BuyExactIn)
Pengguna menyediakan quote_in tetap; kurva menghitung base_out.
Argumen
quote_in: u64
minimum_base_out: u64
Akun
| # | Nama | W | S |
|---|
| 1 | user | W | S |
| 2 | launch_state | W | |
| 3 | launch_authority | | |
| 4 | base_vault | W | |
| 5 | quote_vault | W | |
| 6 | user_base_ata | W | |
| 7 | user_quote_ata | W | |
| 8 | base_mint | | |
| 9 | quote_mint | | |
| 10 | token_program | | |
| 11 | associated_token_program | | |
| 12 | system_program | | |
Kondisi sebelumnya
launch_state.status == Active.
now ≥ open_time.
user_quote_ata.balance ≥ quote_in.
quote_in > 0.
Efek
- Pisahkan
quote_in menjadi quote_in_after_fee dan bagian biaya.
- Newton-solve kurva untuk
base_out yang diberikan quote pasca-biaya.
require(base_out ≥ minimum_base_out) jika tidak balik ExceededSlippage.
- Pindahkan
quote_in pengguna → vault. Pindahkan base_out vault → pengguna.
- Perbarui
base_sold += base_out, quote_reserve_real += quote_in_after_fee × (lp_share / total_share).
- Perbarui penghitung biaya (
protocol_fees_quote, creator_fees_quote).
state_data.num_buys += 1.
- Jika
quote_reserve_real ≥ quote_reserve_target setelah pembaruan, SDK biasanya menggabungkan Graduate ix dalam transaksi yang sama. Program tidak secara otomatis kelulusan di dalam Buy — Graduate berikutnya diperlukan.
BuyExactOut
Pengguna menentukan base_out yang tepat; program menghitung quote_in.
Argumen
base_out: u64
maximum_quote_in: u64
Akun yang sama seperti BuyExactIn. Menggunakan integral kuadrat bentuk tertutup (atau invers CPMM, untuk curve_type 1) daripada iterasi Newton.
Sell / SellExactIn / SellExactOut
Cerminan Buy. Pengguna mengembalikan base_in ke kurva dan menerima quote_out. Biaya dikurangkan dari quote_out, sehingga pengguna menerima lebih sedikit daripada hasil integral mentah.
Kondisi sebelumnya —
user_base_ata.balance ≥ base_in.
- Menjual tidak dapat mendorong
base_sold di bawah 0 (redundan dengan di atas mengingat akuntansi konsisten).
- Peluncuran adalah
Active.
Efek — simetris ke Buy. base_sold berkurang, quote_reserve_real berkurang. Biaya masih terakumulasi.
MigrateToAmm / MigrateToCpswap
Keluluskan peluncuran menjadi pool AMM yang dapat diperdagangkan setelah kurva mencapai total_quote_fund_raising. Kedua instruksi sesuai dengan dua target kelulusan — AMM v4 dan CPMM — dan hanya salah satu yang valid untuk peluncuran tertentu, ditentukan oleh pool_state.migrate_type (diatur saat waktu Initialize).
Yang menandatangani
MigrateToAmm — migrate_to_amm_wallet yang dicatat pada GlobalConfig pengikatan.
MigrateToCpswap — migrate_to_cpswap_wallet yang dicatat pada GlobalConfig pengikatan.
Dompet ini biasanya dipegang oleh crank kelulusan yang dioperasikan Raydium; dalam praktik kelulusan mendarat detik setelah ambang batas terlampaui, terlepas dari siapa yang memicu pembelian akhir.
Argumen
MigrateToAmm mengambil tiga (terutama parameter pasar OpenBook yang program teruskan ke AMM v4):
base_lot_size: u64
quote_lot_size: u64
market_vault_signer_nonce: u8
MigrateToCpswap tidak mengambil yang mana pun.
Efek (umum untuk keduanya)
- Verifikasi
pool_state.status == Migrate (yaitu, quote_reserve_target telah tercapai). Jika tidak balik dengan PoolMigrated (status sudah Migrated) atau PoolFunding (masih dalam pendanaan).
- Verifikasi
pool_state.migrate_type cocok dengan instruksi (0 untuk AMM, 1 untuk CPMM). Jika tidak balik dengan MigrateTypeNotMatch.
- Hitung cadangan pasca-kelulusan:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amount
quote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- CPI ke program target (
AMM v4 Initialize2 atau CPMM InitializeWithPermission) dengan cadangan tersebut untuk membuat pool pasca-kelulusan.
- Bagikan LP hasil per pengikatan
PlatformConfig.{platform_scale, creator_scale, burn_scale} (CPMM saja) — satu bagian dicetak ke platform_nft_wallet, satu ke NFT kreator dibungkus oleh program LP-Lock, satu dibakar melalui Burn & Earn. Untuk kelulusan AMM v4, disposisi LP diatur oleh parameter inisialisasi AMM v4 sendiri.
- Cabut
base_mint.mint_authority (atur ke None).
- Balik
pool_state.status = Migrated, atur vesting_schedule.start_time = block_time + cliff_period.
Kondisi sesudahnya — BuyExactIn, BuyExactOut, SellExactIn, SellExactOut akan menolak sejak saat ini dengan PoolMigrated. Pool AMM yang dihasilkan adalah kanonik dan berdagang seperti pool AMM v4 / CPMM lainnya.
Kesalahan umum — PoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.
CollectFee
Penyapu admin dari biaya perdagangan terakumulasi protokol pada peluncuran tunggal.
Argumen — tidak ada.
Akun
| # | Nama | W | S | Catatan |
|---|
| 1 | protocol_fee_owner | | S | Harus sama dengan global_config.protocol_fee_owner. |
| 2 | authority | | | PDA [b"vault_auth_seed"]; menandatangani transfer vault. |
| 3 | pool_state | W | | Dimutasi untuk mengosongkan quote_protocol_fee. |
| 4 | global_config | | | Sumber kebenaran untuk penandatangan. |
| 5 | quote_vault | W | | Dikosongkan oleh quote_protocol_fee. |
| 6 | recipient_token_account | W | | ATA dari protocol_fee_owner pada quote_mint. |
| 7 | quote_mint | | | |
| 8 | token_program | | | SPL Token (quote mint selalu SPL Token). |
Efek — transfer pool_state.quote_protocol_fee dari quote_vault ke recipient_token_account, kemudian kosongkan penghitung. Dapat dipanggil kapan saja setelah pembelian pertama.
CollectMigrateFee
Penyapu admin dari biaya migrasi yang terakumulasi saat kelulusan. Bentuk akun yang sama seperti CollectFee dengan migrate_fee_owner sebagai penandatangan (bukan protocol_fee_owner) dan pool_state.migrate_fee sebagai penghitung yang dikosongkan.
ClaimCreatorFee
Penyapu per-kreator dari biaya kreator terakumulasi di setiap peluncuran yang dimiliki kreator yang menggunakan mint quote yang sama. Mengosongkan vault biaya per-kreator, bukan vault per-pool.
Argumen — tidak ada.
Akun
| # | Nama | W | S | Catatan |
|---|
| 1 | creator | W | S | Kreator pool. |
| 2 | fee_vault_authority | | | PDA [b"creator_fee_vault_auth_seed"]. |
| 3 | creator_fee_vault | W | | PDA di seeds [creator, quote_mint]; vault kreator agregat. |
| 4 | recipient_token_account | W | | init_if_needed; ATA dari creator pada quote_mint. |
| 5 | quote_mint | | | |
| 6 | token_program | | | |
| 7 | system_program | | | Untuk pembuatan ATA jika diperlukan. |
| 8 | associated_token_program | | | |
Efek — transfer seluruh saldo creator_fee_vault ke recipient_token_account. Kembali dengan pemeriksaan require-greater-than-zero jika vault kosong.
Penyapu per-platform yang mengosongkan vault quote peluncuran secara langsung. Gunakan ini ketika platform ingin mengklaim bagiannya untuk satu peluncuran spesifik tanpa melalui vault platform agregat.
Argumen — tidak ada.
Akun
| # | Nama | W | S | Catatan |
|---|
| 1 | platform_fee_wallet | W | S | Harus sama dengan platform_config.platform_fee_wallet. |
| 2 | authority | | | PDA [b"vault_auth_seed"]. |
| 3 | pool_state | W | | Dikosongkan oleh pool_state.platform_fee. |
| 4 | platform_config | | | Sumber kebenaran untuk penandatangan. |
| 5 | quote_vault | W | | Dikosongkan. |
| 6 | recipient_token_account | W | | init_if_needed; ATA dari platform_fee_wallet. |
| 7 | quote_mint | | | |
| 8 | token_program | | | |
| 9 | system_program | | | |
| 10 | associated_token_program | | | |
Efek — transfer pool_state.platform_fee dari quote_vault ke recipient_token_account, kosongkan penghitung.
Penyapu agregat per-platform. Mengosongkan vault biaya per-quote-mint platform yang mengakumulasi biaya dari setiap peluncuran yang dirutekan melalui platform.
Argumen — tidak ada.
Akun
| # | Nama | W | S | Catatan |
|---|
| 1 | platform_fee_wallet | W | S | Harus sama dengan platform_config.platform_fee_wallet. |
| 2 | fee_vault_authority | | | PDA [b"platform_fee_vault_auth_seed"]. |
| 3 | platform_config | | | |
| 4 | platform_fee_vault | W | | PDA di seeds [platform_config, quote_mint]. |
| 5 | recipient_token_account | W | | init_if_needed; ATA dari platform_fee_wallet. |
| 6 | quote_mint | | | |
| 7 | token_program | | | |
| 8 | system_program | | | |
| 9 | associated_token_program | | | |
Efek — transfer saldo penuh platform_fee_vault ke recipient_token_account. Kembali jika vault kosong.
Instruksi ini didokumentasikan di halaman tersendiri karena masing-masing memiliki model state sendiri:
Matriks perubahan state
| Instruksi | status | real_base | real_quote | Penghitung biaya | Pool state-post |
|---|
Initialize{V2,WithToken2022} | Funding | 0 | 0 | 0 | — |
BuyExactIn(q_in) | Funding | +∆ | +∆q_after_fee | quote_protocol_fee += ∆, platform_fee += ∆ | — |
SellExactIn(b_in) | Funding | −∆ | −∆q_before_fee | (sama) | — |
| Ambang batas tercapai | → Migrate | — | — | — | — |
MigrateToAmm / MigrateToCpswap | → Migrated | (beku) | (beku) | migrate_fee diatur | dibuat, LP dibagi per PlatformConfig |
CollectFee / CollectMigrateFee | setiap | — | — | penghitung dikosongkan | — |
ClaimCreatorFee / ClaimPlatformFee* | setiap | — | — | mengosongkan vault | — |
CreateVestingAccount | Funding | — | — | — | bumps allocated_share_amount |
ClaimVestedToken | Migrated | — | — | — | mengosongkan base_vault |
Ke mana selanjutnya
Sumber: