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.
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
PlatformConfig adalah lapisan overlay tingkat platform yang berada di atas GlobalConfig. Di mana GlobalConfig mendefinisikan aturan-aturan protokol yang berlaku luas (“biaya perdagangan adalah 1%, pasokan harus minimal 10M, hanya dompet ini yang dapat lulus”), PlatformConfig adalah yang digunakan setiap platform peluncuran — pump.fun, UI Raydium sendiri, launchpad pihak ketiga — untuk menambahkan biaya mereka, mengklaim bagian mereka dari LP pasca-kelulusan, membatasi bentuk kurva mana yang dapat dipilih peluncuran mereka, dan menampilkan branding mereka (nama, situs web, gambar) di rantai.Apa itu
AkunPlatformConfig menguasai empat kepentingan lintas-platform:
- Branding — nama, situs web, tautan gambar, semuanya disimpan dalam baris sehingga penjelajah atau agregator apa pun dapat menampilkan platform yang meluncurkan token.
- Biaya platform — biaya perdagangan tambahan (
fee_rate) di atastrade_fee_rateprotokol. Terakumulasi keplatform_fee_walletplatform. Dibatasi pada 100 bps olehGlobalConfig.max_share_fee_rate. - Pembagian migrasi NFT — tiga bilangan bulat (
platform_scale,creator_scale,burn_scale) yang berjumlahRATE_DENOMINATOR_VALUE = 1_000_000dan mempartisi LP pasca-kelulusan menjadi potongan yang dicetak ke dompet NFT platform, potongan ke dompet NFT kreator, dan potongan yang dibakar (Burn & Earn). Hanya bermakna ketika kelulusan menargetkan CPMM (migrate_type = 1). - Daftar putih parameter kurva —
Vec<PlatformCurveParam>yang mencantumkan kombinasi(supply, total_base_sell, total_quote_fund_raising, migrate_type, migrate_cpmm_fee_on, vesting_params...)mana yang diizinkan pada platform ini. Jika vektor kosong atau semua entri tidak valid, setiap kombinasi diizinkan; jika tidak, peluncuran harus cocok dengan satu entri tepat.
create_platform_config dalam sumber untuk daftar seed kanonik.)
Tata Letak
platform_scale + creator_scale + burn_scale harus sama dengan 1_000_000 (divalidasi oleh MigrateNftInfo::check). Pembagian umum yang terlihat dalam produksi:
(0, 100_000, 900_000)— 90% LP dibakar, 10% ke kreator. Peluncuran yang adil gaya pump standar.(50_000, 100_000, 850_000)— potongan platform kecil (5%), 10% kreator, 85% bakar.(0, 0, 1_000_000)— pembakaran penuh, tanpa pencetakan NFT. Peluncuran “tanpa insider” ketat.
Bidang Branding
name, web, dan img adalah larik byte dalam baris yang diisi dengan nol hingga konstanta ukuran mereka. Untuk membacanya sebagai string, iris hingga \0 pertama:
name: 64, web: 256, img: 256) sehingga platform dapat menyertakan metadata yang cukup untuk penjelajah dan agregator tanpa menyentuh penyimpanan di luar rantai. Apa pun yang melebihi ukuran ini kembali pada CreatePlatformConfig dengan InvalidInput.
Mekanika Biaya
Swap pada kurva yang terikat padaPlatformConfig mengenakan tiga biaya berlapis:
trade_feeterakumulasi keprotocol_fee_ownerprotokol (diklaim viaCollectFee).platform_feeterakumulasi ke vault per-platform (diklaim viaClaimPlatformFeeatauClaimPlatformFeeFromVault; lihatinstructions).creator_feeterakumulasi ke vault per-kreator yang dikunci oleh pubkey kreator + quote mint (diklaim viaClaimCreatorFee).
creator_fee_rate dibatasi oleh MAX_CREATOR_FEE_RATE = 5000 (50 bps). fee_rate (biaya platform) dibatasi pada 10000 (100 bps) oleh GlobalConfig.max_share_fee_rate.
Pembagian migrasi NFT (hanya CPMM)
Ketika peluncuran lulus ke CPMM (migrate_type = 1, ditandatangani oleh migrate_to_cpswap_wallet), instruksi migrasi membagi token LP yang dicetak oleh CPMM::InitializeWithPermission tiga cara:
LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE) — pemegang NFT berhak untuk mengklaim biaya CPMM yang terakumulasi tanpa batas tanpa dapat menarik likuiditas yang mendasarinya. Lihat products/launchlab/creator-fees untuk alur Fee Key pasca-kelulusan.
Potongan pembakaran dikirim ke program Lock dengan is_burn = true sehingga token LP selamanya tidak dapat diakses — mereka mengamankan lantai harga pool tanpa pernah membayar biaya kembali kepada siapa pun.
Ketika migrate_type = 0 (lulus ke AMM v4), bidang pembagian NFT diabaikan dan seluruh LP dikunci / dibakar sesuai dengan alur AMM v4-side terpisah.
Daftar putih parameter kurva
curve_params: Vec<PlatformCurveParam> adalah mekanisme platform untuk membatasi bentuk kurva apa yang dapat dipilih peluncurannya. Jika vektor tidak kosong dan setidaknya satu entri valid, program memberlakukan pada Initialize bahwa parameter peluncuran cocok dengan setidaknya satu entri tepat.
u64::MAX untuk bidang u64, u8::MAX untuk bidang u8, 0 untuk bidang pasokan / jual / penggalangan dana. BondingCurveParam dengan semua sentinal adalah “izinkan apa pun” — setara dengan perilaku daftar putih kosong.
Algoritma pencocokan pada Initialize:
- Filter
curve_paramske entri yangglobal_configcocok denganGlobalConfigpilihan peluncuran. - Jika daftar yang disaring kosong, izinkan parameter apa pun (platform tidak memasukkan apa pun ke dalam daftar putih untuk
GlobalConfigini). - Jika setiap entri dalam daftar yang disaring memiliki
all_is_invalid()(setiap bidang adalah wildcard), izinkan parameter apa pun. - Sebaliknya, ulangi entri; untuk setiap entri, periksa parameter peluncuran terhadap setiap bidang non-wildcard. Jika semua bidang non-wildcard cocok, terima dan kembali.
- Jika tidak ada entri yang cocok, kembali dengan
InvalidInput.
MAX_CURVE_PARAMS = 10 membatasi ukuran daftar putih.
PlatformGlobalAccess — mengotorisasi platform
Ketika GlobalConfig memiliki requires_platform_auth = 1, setiap Initialize terhadapnya harus menyertakan PlatformGlobalAccess PDA yang membuktikan platform telah diotorisasi sebelumnya:
[b"platform_global_access", global_config, platform_config].
Admin protokol membuat satu ini per pasang (GlobalConfig, PlatformConfig) melalui CreatePlatformGlobalAccess dan membatalkannya melalui ClosePlatformGlobalAccess. Tanpa akun ini, peluncuran tidak dapat mengikat ke GlobalConfig itu dari platform yang gated.
Jalur baca
PoolState.platform_config menunjuk langsung ke PlatformConfig asal — ambil sekali dan cache branding-nya.
Jalur pembaruan
| Instruksi | Siapa menandatangani | Apa yang berubah |
|---|---|---|
CreatePlatformConfig | admin platform (sekali waktu) | Menginisialisasi akun dengan PlatformParams. |
UpdatePlatformConfig | admin platform | Pengiriman generik yang dikunci dengan param: u8; mengubah satu bidang per panggilan. Bidang branding, tingkat biaya, dompet vesting, dan berbagai dompet semuanya dapat diatur melalui ini. |
UpdatePlatformCurveParam | admin platform | Tambah atau ganti satu entri PlatformCurveParam dengan (global_config, index). |
RemovePlatformCurveParam | admin platform | Hapus satu entri (atur ke all-sentinel = wildcard). |
ClaimPlatformFee | platform_fee_wallet | Sapu biaya platform per-pool dari PoolState.quote_vault. |
ClaimPlatformFeeFromVault | platform_fee_wallet | Sapu vault biaya per-platform (PDA di [platform_config, quote_mint]). |
platform_fee_wallet, platform_nft_wallet, platform_vesting_wallet, platform_cp_creator, transfer_fee_extension_auth, cpswap_config) semuanya melalui UpdatePlatformConfig. Baca tabel pengiriman update_platform_config sumber untuk kode param yang tepat.
Jebakan umum
- Sentinal daftar putih salah atur.
BondingCurveParamdengantotal_locked_amount = 0bukan wildcard — cocok dengan peluncuran yang secara eksplisit menolak vesting. Wildcard untuk bidang itu adalahu64::MAX. Perangkap yang sama ada untukcliff_perioddanunlock_period. Gunakanclear()(yang program keluarkan) untuk mengatur sentinal dengan benar. - Pembulatan pembagian NFT. Tiga skala harus berjumlah persis
1_000_000. Kesalahan off-by-one diCreatePlatformConfigkembali; off-by-one saat runtime akan mencetak atau membakar satu unit LP ekstra, yang itulah pemeriksaan kesetaraan ketat di sana untuk mencegah. - Alokasi ganda vesting platform. Jika
platform_vesting_scale > 0, platform harus memanggilCreatePlatformVestingAccountsekali setelah penggalangan dana peluncuran berakhir; jika lupa, bagian itu tetap tidak dialokasikan dan tidak aktif selamanya (anggarantotal_locked_amountpeluncuran dikonsumsi tetapi platform tidak pernah mengklaim). - Ambiguitas
platform_cp_creator. Ketika diatur kePubkey::default(), kreator peluncuran dicatat sebagaipool_creatorpool CPMM pasca-kelulusan; ketika diatur ke kunci nyata, kunci itu dicatat sebagai gantinya. Ini memengaruhi siapa yang dapat memanggilCPMM::CollectCreatorFeenanti. Putuskan saat pembuatan konfigurasi platform model mana yang Anda inginkan.
Penunjuk
products/launchlab/global-config— aturan sisi protokol yang harus dipenuhi peluncuran.products/launchlab/vesting— mekanikaplatform_vesting_scale.products/launchlab/creator-fees— NFT Fee Key, Burn & Earn.products/launchlab/platforms— panduan integrasi platform.
raydium-launch/programs/launchpad/src/states/platform_config.rs—PlatformConfig,PlatformParams,MigrateNftInfo,PlatformCurveParam,BondingCurveParam,is_valid_curve_param.raydium-launch/programs/launchpad/src/states/platform_global_access.rs—PlatformGlobalAccess.raydium-launch/programs/launchpad/src/lib.rs—create_platform_config,update_platform_config,update_platform_curve_param,remove_platform_curve_param,create_platform_global_access,close_platform_global_access,claim_platform_fee,claim_platform_fee_from_vault.


