Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
PlatformConfig adalah overlay tingkat platform yang berada di atas GlobalConfig. Jika GlobalConfig mendefinisikan aturan protokol-lebar (“biaya perdagangan adalah 1%, pasokan 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 LP pasca-kelulusan, membatasi parameter peluncuran yang dapat dipilih peluncuran mereka, dan menampilkan branding mereka (nama, situs web, gambar) di rantai.Apa itu
AkunPlatformConfig mengelola lima kepentingan lintas-platform:
- Branding — nama, situs web, tautan gambar, semuanya disimpan inline sehingga penjelajah atau agregator apa pun dapat menampilkan platform yang meluncurkan token.
- Biaya platform — biaya perdagangan tambahan (
fee_rate) di atastrade_fee_rateprotokol. Terkumpul diplatform_fee_walletplatform. Dibatasi pada 500 bps (50000) pada jalur pembuatan dan pembaruan, dinaikkan dari 100 bps (10000) pada 2026-08-26 — lihat Batas tarif. - Pembagian migrasi LP — tiga bilangan bulat tersimpan (
platform_scale,creator_scale,burn_scale) yang berjumlah1_000_000. Sebelum upgrade 2026-08-17, skala kreator menghasilkan Fee Key kreator terpisah. Migrasi yang dijalankan setelah upgrade menggabungkan dua yang pertama menjadi satu bagian LP terkunci milik platform; sisanya dibakar. - Aturan parameter peluncuran — pembatasan opt-in (
restrict_curve_param) yang memerlukan peluncuran untuk memenuhi akunPlatformCurveRuledariGlobalConfigyang dipilih. Aturan mendukung pita nilai, tingkat alternatif, dan gating tipe token; mereka tinggal di akun mereka sendiri, bukan diPlatformConfig. - Daftar izin konfigurasi global — pembatasan opt-in yang memerlukan
PlatformAllowConfigyang dibuat platform untukGlobalConfigyang dipilih.
create_platform_config dalam sumber untuk daftar seed kanonik.)
Tata letak
Vec<PlatformCurveParam> trailing hingga rilis 2026-08-31 memindahkan parameter peluncuran ke akun PlatformCurveRule; restrict_curve_param, curve_rule_manager, dan 4 byte yang ditempati awalan panjang vec semuanya keluar dari padding, jadi jumlah byte dan setiap offset field sebelumnya tidak berubah. Lihat entri changelog untuk apa yang harus diubah decoder.
platform_scale + creator_scale + burn_scale harus sama dengan 1_000_000. Sebelum upgrade 2026-08-17, creator_scale dikunci secara terpisah dan Fee Key-nya pergi ke kreator token. Untuk migrasi yang dijalankan setelah upgrade, ditambahkan ke platform_scale dan hak LP terkunci-nya pergi ke platform. Contoh hasil di bawah logika yang diperbarui:
(0, 100_000, 900_000)— 90% LP dibakar, 10% terkunci ke platform.(50_000, 100_000, 850_000)— 85% dibakar, 15% terkunci ke platform.(0, 0, 1_000_000)— pembakaran penuh, tidak ada mint NFT. Peluncuran “tanpa insider” yang ketat.
Bidang branding
name, web, dan img adalah larik byte inline 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 cukup metadata untuk penjelajah dan agregator tanpa menyentuh penyimpanan off-chain. Apa pun yang melebihi ukuran ini akan dikembalikan di CreatePlatformConfig dengan InvalidInput.
Mekanika biaya
Swap pada kurva yang terikat kePlatformConfig mengenakan tiga biaya berlapis:
trade_feeterkumpul keprotocol_fee_ownerprotokol (diklaim melaluiCollectFee).platform_feeterkumpul ke vault per-platform (diklaim melaluiClaimPlatformFeeatauClaimPlatformFeeFromVault; lihatinstructions).creator_feeterkumpul ke vault per-kreator yang dikunci oleh pubkey kreator + quote mint (diklaim melaluiClaimCreatorFee).
Batas tarif
Kedua tarif dinyatakan dalam1/1_000_000, jadi 5000 adalah 50 bps dan 50000 adalah 500 bps.
Dua titik penegakan untuk
fee_rate adalah panggilan require! terpisah di file berbeda, jadi mereka membawa kode kesalahan berbeda, tetapi menerapkan batas yang sama. Platform yang dibuat pada tarif apa pun yang diizinkan dapat diedit nanti, termasuk melalui varian AllInfo massal yang menulis ulang setiap field sekaligus.
Kedua batas fee_rate awalnya 100 bps (10000). Batas pembaruan bergerak ke 25000 (250 bps) pada 2026-01-27; pada 2026-08-26 keduanya bergerak ke 50000 (500 bps) — lihat entri changelog.
GlobalConfig.max_share_fee_rate tidak membatasi salah satu tarif. Ini membatasi argumen share_fee_rate per-transaksi yang diambil empat instruksi swap — biaya rujukan — dan tidak ada yang lain. Lihat global-config.
Otoritas transfer-fee Token-2022
transfer_fee_extension_auth menamai kunci platform yang akhirnya memegang otoritas TransferFeeConfig mint dasar ketika peluncuran dibuat melalui InitializeWithToken2022 dengan biaya transfer yang terlampir. Ekstensi membawa dua otoritas, dan mereka diserahkan pada titik berbeda dalam siklus hidup peluncuran:
Sebelum 2026-08-27 mint dibuat dengan PDA
authority pada kedua otoritas, dan keduanya bergerak ke platform saat kelulusan. Program tidak mengekspos instruksi withdraw-withheld atau harvest, jadi biaya yang ditahan selama fase kurva ikatan tidak dapat diakses hingga peluncuran lulus. Menulis sisi withdraw saat pembuatan mint membuatnya dapat diklaim dari perdagangan pertama — lihat entri changelog.
Dua konsekuensi yang patut direncanakan:
- Atur field sebelum Anda meluncurkan, bukan sesudahnya. Peluncuran yang dibuat saat
transfer_fee_extension_authadalahPubkey::default()menempatkan PDAauthoritydi sisi withdraw. Mengatur field nanti masih berfungsi — kelulusan menemukan PDA di tempat dan menyerahkan otoritas — tetapi tidak ada yang dapat menarik saldo yang ditahan sementara itu. - Memutar field mid-launch membagi dua otoritas. Ubah
transfer_fee_extension_authantara pembuatan peluncuran dan kelulusannya dan otoritas withdraw-withheld mint tetap dengan kunci yang dikonfigurasi saat pembuatan (PDA tidak lagi memegangnya, jadi migrasi melewati penyerahan itu) sementara otoritas fee-config pergi ke kunci baru. Putar antar peluncuran, atau rencanakan untuk merekonsiliasi dua kunci sendiri melalui Token-2022 secara langsung.
Pubkey::default() untuk seluruh kehidupan peluncuran menyimpan kedua otoritas pada PDA authority secara permanen: tarif biaya tidak pernah dapat diubah dan saldo yang ditahan tidak pernah dapat ditarik. Hanya lampirkan biaya transfer ke peluncuran jika platform bermaksud memegang kunci ini.
Pembagian migrasi NFT (CPMM-only)
Ketika peluncuran lulus ke CPMM, instruksi migrasi membagi token LP yang dicetak olehCPMM::InitializeWithPermission dua cara:
lp_to_platform bukan nol, program LP-Lock membungkusnya menjadi satu NFT Fee Key yang dimiliki oleh platform_nft_wallet. Ini menggantikan perilaku pra-upgrade yang membuat Fee Key platform dan kreator terpisah. Fee Key yang dibuat oleh migrasi yang diselesaikan sebelum upgrade tetap tidak berubah. Hak fee LP ini terpisah dari biaya kreator CPMM yang dikendalikan oleh platform_cp_creator.
Bagian burn dibakar langsung, jadi tidak ada akun yang dapat menariknya atau mengklaim biaya LP yang diwakili oleh bagian itu.
Peluncuran yang ada dengan migrate_type = 0 yang tersimpan masih dapat menggunakan jalur AMM v4 warisan. Inisialisasi baru menolak tipe migrasi itu.
Aturan parameter peluncuran
restrict_curve_param adalah saklar. Pada 0 program tidak membaca aturan sama sekali. Pada 1, setiap peluncuran yang dirutekan melalui platform ini harus memenuhi akun PlatformCurveRule dari GlobalConfig yang dipilih, dan pembangun peluncuran harus menambahkan akun itu ke remaining_accounts.
(field, op, value) yang mendukung Eq, Gte, Lte, dan Neq. Itu mencakup pita nilai, tingkat alternatif, batas valuasi kelulusan, lantai migrasi, gating tipe token, dan grup terikat waktu — model lengkap, tabel field, dan sembilan playbook yang dikerjakan ada di products/launchlab/curve-rules.
Dua hal milik di sini daripada di halaman itu:
curve_rule_manageradalah delegasi, bukan transfer. Atur melaluiUpdatePlatformConfig::CurveRuleManagerdan dompet itu dapat membuat, memperbarui, menghapus, dan menutup akun aturan platform ini tanpa kunci admin. Admin platform mempertahankan kekuatan yang sama secara paralel, jadi memutar atau menghapus field memulihkan kontrol.Pubkey::default()berarti hanya admin yang dapat mengelola aturan. Tidak dapat membalikrestrict_curve_param, yang tetap panggilan admin-only.- Aturan diterapkan di atas
GlobalConfig, tidak pernah sebagai gantinya. Pemeriksaan aturan berjalan sebelum batas config sendiri dan hanya dapat mempersempit mereka.
curve_params: Vec<PlatformCurveParam> sebelumnya, yang hanya dapat menguji kesetaraan eksak, menahan paling banyak 10 entri di semua config, dan menumbuhkan akun PlatformConfig itu sendiri. Platform yang menggunakannya dimigrasikan oleh protokol dalam satu pass sekali; field warisan, dua instruksinya, dan MAX_CURVE_PARAMS hilang.
PlatformAllowConfig — membatasi platform
Setiap platform memutuskan apakah akan membatasi akun GlobalConfig mana yang dapat digunakan peluncurannya. Atur restrict_global_config dengan UpdatePlatformConfig::RestrictGlobalConfig(0 | 1).
[b"platform_allow_config", platform_config, global_config].
Admin platform membuat atau menutup satu akun per pasangan yang diizinkan melalui CreatePlatformAllowConfig dan ClosePlatformAllowConfig. Ketika pembatasan adalah 1, inisialisasi mencari remaining_accounts untuk PDA yang diharapkan dan menolak akun yang hilang dengan NotEnoughRemainingAccounts. Ketika pembatasan adalah 0, tidak ada akun izin yang diperlukan.
Akun PlatformGlobalAccess yang dikelola admin protokol sebelumnya dan instruksi buat/tutup-nya pensiun. Ukuran PlatformConfig dan GlobalConfig yang ada tidak berubah, tetapi decoder harus mengganti flag global lama dengan flag platform baru. PDA akses lama tidak dikonsumsi oleh pemeriksaan baru.
Jalur baca
PoolState.platform_config menunjuk langsung ke PlatformConfig asal — ambil sekali dan cache branding.
Jalur pembaruan
Rotasi dompet (
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
restrict_curve_paramdiaktifkan sebelum pembangun diperbarui. Saat itu1PDA aturan harus berada diremaining_accountspada setiap peluncuran, bahkan untuk config tanpa akun aturan — akun yang hilang adalahNotEnoughRemainingAccounts, bukan lulus. Kirim perubahan pembangun terlebih dahulu, kemudian balik flag.restrict_curve_paramdiaktifkan dengan aturan kosong. Aturan yang menyimpan nol grup, atau grup yang menyimpan nol batasan, memungkinkan semuanya. Mengaktifkan flag bukan dengan sendirinya pembatasan; tulis grup terlebih dahulu, verifikasi dengan pemeriksaan SDK, dan latih seluruh urutan di devnet.- Pembulatan pembagian NFT. Tiga skala harus berjumlah tepat
1_000_000. Kesalahan off-by-one diCreatePlatformConfigdikembalikan; off-by-one saat runtime akan mencetak atau membakar satu unit LP ekstra, yang merupakan apa yang 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 dorman 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 menentukan penerima biaya kreator CPMM pasca-kelulusan dan siapa yang dapat menandatangani jalurCPMM::CollectCreatorFeeasli. Jalur pengumpulan tanpa izin masih membayar ATA kanonik kunci yang dicatat ini. Putuskan pada waktu pembuatan konfigurasi platform model mana yang Anda inginkan. transfer_fee_extension_authdiatur terlambat atau diputar. Field dibaca dua kali per peluncuran Token-2022 — sekali saat pembuatan mint untukwithdraw_withheld_authority, sekali saat kelulusan untuktransfer_fee_config_authority— jadi nilai yang berubah antara dua momen itu meninggalkan dua otoritas pada kunci berbeda. Lihat Otoritas transfer-fee Token-2022.- Pembatasan tanpa akun izin. Mengaktifkan
restrict_global_configsebelum membuatPlatformAllowConfigyang diperlukan memblokir peluncuran baru yang memilih config itu.
Penunjuk
products/launchlab/global-config— aturan sisi protokol yang harus dipenuhi peluncuran.products/launchlab/vesting— mekanikaplatform_vesting_scale.products/launchlab/creator-fees— biaya kreator versus hak Fee Key platform.products/launchlab/platforms— panduan cara integrator platform.
raydium-launch/programs/launchpad/src/states/platform_config.rs—PlatformConfig,PlatformParams,MigrateNftInfo,is_curve_rule_manager,is_platform_admin.raydium-launch/programs/launchpad/src/states/platform_curve_rule.rs—PlatformCurveRule,CurveRuleGroup,ParamConstraint.raydium-launch/programs/launchpad/src/states/platform_allow_config.rs—PlatformAllowConfig.raydium-launch/programs/launchpad/src/instructions/platform/update_platform_config.rs— pengirimanPlatformConfigParamdan setter per-field yang menegakkan batas tarif waktu pembaruan.raydium-launch/programs/launchpad/src/lib.rs— entrypoint konfigurasi platform dan allow-config.raydium-launch/programs/launchpad/src/instructions/initialize_with_token_2022.rs— di manatransfer_fee_extension_authditulis keTransferFeeConfigmint baru.raydium-launch/programs/launchpad/src/instructions/admin/migrate_to_cpswap.rs— penyerahan otoritas waktu kelulusan dan penjagaget_withdraw_withheld_authority-nya.

