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.
本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
PlatformConfig 是位於 GlobalConfig 之上的平台級配置層。GlobalConfig 定義了協議級規則(「交易費率為 1%、最低供應量必須至少 1000 萬、只有這個錢包可以畢業」),而 PlatformConfig 是每個啟動平台(pump.fun、Raydium 的 UI、第三方啟動板)用來新增其費用、領取畢業後 LP 的一部分、限制其啟動可選擇的曲線形狀,以及在鏈上顯示其品牌(名稱、網站、圖片)的方式。它是什麼
一個PlatformConfig 帳戶為平台擁有四個跨領域的關注點:
- 品牌 — 名稱、網站、圖片連結,全部內聯儲存,讓任何探索器或聚合器都能顯示啟動代幣的平台。
- 平台費用 — 在協議
trade_fee_rate之上額外收取的交易費用 (fee_rate)。累積到平台的platform_fee_wallet。由GlobalConfig.max_share_fee_rate限制在 100 個基點。 - NFT 遷移拆分 — 三個整數 (
platform_scale、creator_scale、burn_scale),總和為RATE_DENOMINATOR_VALUE = 1_000_000,將畢業後的 LP 分為三部分:一部分鑄造到平台 NFT 錢包、一部分到創作者 NFT 錢包、一部分燒毀(Burn & Earn)。僅在畢業目標為 CPMM 時有意義(migrate_type = 1)。 - 曲線參數白名單 — 一個
Vec<PlatformCurveParam>,列出該平台允許的確切(supply, total_base_sell, total_quote_fund_raising, migrate_type, migrate_cpmm_fee_on, vesting_params...)組合。如果向量為空或所有條目都無效,則任何組合都允許;否則啟動必須完全匹配其中一個條目。
create_platform_config 以取得規範的種子列表。)
佈局
platform_scale + creator_scale + burn_scale 必須等於 1_000_000(由 MigrateNftInfo::check 驗證)。常見的生產環境拆分:
(0, 100_000, 900_000)— 90% LP 燒毀,10% 給創作者。標準 pump 風格公平啟動。(50_000, 100_000, 850_000)— 小平台份額(5%)、10% 創作者、85% 燒毀。(0, 0, 1_000_000)— 完全燒毀,無 NFT 鑄造。嚴格「無內部人」啟動。
品牌欄位
name、web 和 img 是內聯字節陣列,用零填充至其大小常數。要將它們作為字符串讀取,請切片至第一個 \0:
name: 64、web: 256、img: 256),讓平台能包含足夠的中繼資料供探索器和聚合器使用,無需涉及鏈下儲存。任何超過這些大小的內容會在 CreatePlatformConfig 時以 InvalidInput 回復。
費用機制
綁定到PlatformConfig 的曲線上的交換收取三層分級費用:
trade_fee累積到協議的protocol_fee_owner(通過CollectFee領取)。platform_fee累積到每個平台的保險庫(通過ClaimPlatformFee或ClaimPlatformFeeFromVault領取;請參閱instructions)。creator_fee累積到按創作者公鑰 + 報價代幣索引的每個創作者保險庫(通過ClaimCreatorFee領取)。
creator_fee_rate 由 MAX_CREATOR_FEE_RATE = 5000(50 個基點)限制。fee_rate(平台費用)由 GlobalConfig.max_share_fee_rate 限制在 10000(100 個基點)。
NFT 遷移拆分(僅限 CPMM)
當啟動畢業到 CPMM(migrate_type = 1,由 migrate_to_cpswap_wallet 簽署)時,遷移指令將 CPMM::InitializeWithPermission 鑄造的 LP 代幣三等分:
LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE)包裝成 NFT — NFT 持有者有權無限期地領取累積的 CPMM 費用,而無法提取底層流動性。有關畢業後的費用密鑰流程,請參閱 products/launchlab/creator-fees。
燒毀份額以 is_burn = true 形式發送到鎖定程式,讓 LP 代幣永久無法訪問 — 它們保護池的價格下限,而無需向任何人支付費用。
當 migrate_type = 0(畢業到 AMM v4)時,NFT 拆分欄位被忽略,整個 LP 根據單獨的 AMM v4 端流程鎖定/燒毀。
曲線參數白名單
curve_params: Vec<PlatformCurveParam> 是平台限制其啟動可選擇的曲線形狀的機制。如果向量非空且至少有一個條目有效,程式在 Initialize 時強制啟動的參數完全匹配至少一個條目。
u64 欄位為 u64::MAX、u8 欄位為 u8::MAX、供應/銷售/籌資欄位為 0。所有哨兵為 BondingCurveParam 是「允許任何項目」— 等同於空白名單行為。
Initialize 時的匹配演算法:
- 將
curve_params篩選為global_config與啟動選擇的GlobalConfig相符的條目。 - 如果篩選列表為空,允許任何參數(平台未為此
GlobalConfig列入白名單任何內容)。 - 如果篩選列表中的每個條目都有
all_is_invalid()(每個欄位都是萬用符),允許任何參數。 - 否則迭代條目;對於每個條目,針對每個非萬用符欄位檢查啟動的參數。如果所有非萬用符欄位匹配,接受並返回。
- 如果沒有條目匹配,以
InvalidInput回復。
MAX_CURVE_PARAMS = 10 限制白名單大小。
PlatformGlobalAccess — 授權平台
當 GlobalConfig 具有 requires_platform_auth = 1 時,針對它的每個 Initialize 都必須包含一個 PlatformGlobalAccess PDA,證明平台已獲得預授權:
[b"platform_global_access", global_config, platform_config]。
協議管理員為每個 (GlobalConfig, PlatformConfig) 對通過 CreatePlatformGlobalAccess 創建一個,並通過 ClosePlatformGlobalAccess 撤銷。沒有此帳戶,啟動無法從閘控平台綁定到該 GlobalConfig。
讀取路徑
PoolState.platform_config 直接指向原始 PlatformConfig — 拿取一次並緩存品牌。
更新路徑
| 指令 | 誰簽署 | 什麼變更 |
|---|---|---|
CreatePlatformConfig | 平台管理員(一次性) | 使用 PlatformParams 初始化帳戶。 |
UpdatePlatformConfig | 平台管理員 | 由 param: u8 索引的通用調度;每次調用修改一個欄位。品牌欄位、費率、質押錢包和各種錢包都可通過此設定。 |
UpdatePlatformCurveParam | 平台管理員 | 按 (global_config, index) 新增或替換一個 PlatformCurveParam 條目。 |
RemovePlatformCurveParam | 平台管理員 | 清除一個條目(將其設為全哨兵 = 萬用符)。 |
ClaimPlatformFee | platform_fee_wallet | 從 PoolState.quote_vault 掃除每個池的平台費用。 |
ClaimPlatformFeeFromVault | platform_fee_wallet | 掃除每個平台的費用保險庫(PDA 在 [platform_config, quote_mint])。 |
platform_fee_wallet、platform_nft_wallet、platform_vesting_wallet、platform_cp_creator、transfer_fee_extension_auth、cpswap_config)都通過 UpdatePlatformConfig 進行。請讀原始碼的 update_platform_config 調度表以取得確切的 param 代碼。
常見陷阱
- 白名單哨兵設置錯誤。 具有
total_locked_amount = 0的BondingCurveParam不是萬用符 — 它匹配明確選擇退出質押的啟動。該欄位的萬用符是u64::MAX。對cliff_period和unlock_period也存在相同陷阱。使用clear()(程式公開)正確設定哨兵。 - NFT 拆分舍入。 三個標度必須恰好加起來為
1_000_000。CreatePlatformConfig時的差一錯誤會回復;執行時的差一會鑄造或燒毀一個額外的 LP 單位,這正是嚴格相等檢查所防止的。 - 平台質押雙重分配。 如果
platform_vesting_scale > 0,平台必須在啟動籌資結束後調用CreatePlatformVestingAccount一次;如果遺漏,該份額將保持未分配和休眠狀態(啟動的total_locked_amount預算已消耗但平台永遠無法領取)。 platform_cp_creator歧義。 當設置為Pubkey::default()時,啟動創作者被記錄為畢業後 CPMM 池的pool_creator;當設置為真實密鑰時,該密鑰被記錄。這影響後來誰可以調用CPMM::CollectCreatorFee。在平台配置創建時決定你想要哪種模型。
指標
products/launchlab/global-config— 啟動必須滿足的協議端規則。products/launchlab/vesting—platform_vesting_scale機制。products/launchlab/creator-fees— 費用密鑰 NFT、Burn & Earn。products/launchlab/platforms— 平台整合者使用指南。
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。


