本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
PlatformConfig 是位於 GlobalConfig 之上的平台層級覆蓋層。GlobalConfig 定義協議範圍的規則(「交易費為 1%、供應量至少 1000 萬、只有此錢包可以畢業」),而 PlatformConfig 是每個啟動平台(pump.fun、Raydium 自有 UI、第三方啟動板)用來新增其費用、聲稱畢業後 LP 的份額、限制其啟動可選擇的啟動參數,以及在鏈上展示其品牌(名稱、網站、圖片)的方式。概述
PlatformConfig 帳戶為平台擁有五個跨領域的關注點:
- 品牌 — 名稱、網站、圖片連結,全部內聯儲存,以便任何瀏覽器或聚合器都能顯示啟動代幣的平台。
- 平台費用 — 在協議
trade_fee_rate之上的額外交易費用(fee_rate)。累積到平台的platform_fee_wallet。在建立和更新路徑上均限制為 500 bps(50000),於 2026-08-26 從 100 bps(10000)提高 — 見費率上限。 - LP 遷移分配 — 三個儲存的整數(
platform_scale、creator_scale、burn_scale),總和為1_000_000。在 2026-08-17 升級之前,創作者規模產生單獨的創作者費用金鑰。升級後執行的遷移將前兩者合併為一個平台擁有的鎖定 LP 份額;其餘部分被銷毀。 - 啟動參數規則 — 可選的限制(
restrict_curve_param),要求啟動滿足所選GlobalConfig的PlatformCurveRule帳戶。規則支援數值範圍、替代層級和代幣類型閘門;它們位於自己的帳戶中,而不是在PlatformConfig上。 - 全域設定允許清單 — 可選的限制,要求為所選
GlobalConfig建立平台建立的PlatformAllowConfig。
create_platform_config 以取得規範種子清單。)
佈局
PlatformCurveRule 帳戶之前,它持有尾部 Vec<PlatformCurveParam>;restrict_curve_param、curve_rule_manager 和 vec 長度前綴佔用的 4 位元組都來自填充,因此位元組計數和每個較早的欄位偏移都保持不變。見變更日誌條目以瞭解解碼器必須變更的內容。
platform_scale + creator_scale + burn_scale 必須等於 1_000_000。在 2026-08-17 升級之前,creator_scale 被單獨鎖定,其費用金鑰轉到代幣創作者。對於升級後執行的遷移,它被新增到 platform_scale,其鎖定 LP 權利轉到平台。更新邏輯下的範例結果:
(0, 100_000, 900_000)— 90% LP 銷毀,10% 鎖定到平台。(50_000, 100_000, 850_000)— 85% 銷毀,15% 鎖定到平台。(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聲稱)。
費率上限
兩個費率都以1/1_000_000 計價,因此 5000 是 50 bps,50000 是 500 bps。
fee_rate 的兩個強制執行點是不同檔案中的單獨 require! 呼叫,因此它們帶有不同的錯誤代碼,但它們應用相同的上限。在任何允許的費率下建立的平台可以稍後編輯,包括透過重寫每個欄位的 AllInfo 批量變體。
fee_rate 上限最初都是 100 bps(10000)。更新上限於 2026-01-27 移至 25000(250 bps);於 2026-08-26 兩者都移至 50000(500 bps) — 見變更日誌條目。
GlobalConfig.max_share_fee_rate 不限制任一費率。它限制四個交換指令採用的每筆交易 share_fee_rate 引數 — 推薦費用 — 以及其他任何內容。見global-config。
Token-2022 轉帳費用授權
transfer_fee_extension_auth 命名平台金鑰,當啟動透過 InitializeWithToken2022 建立且附加轉帳費用時,該金鑰最終會持有基礎鑄造幣的 TransferFeeConfig 授權。該擴展攜帶兩個授權,它們在啟動生命週期的不同點移交:
在 2026-08-27 之前,鑄造幣是使用兩個授權上的
authority PDA 建立的,兩者都在畢業時移至平台。該程式不公開任何提取扣留或收穫指令,因此在粘合曲線階段扣留的費用在啟動畢業之前無法到達。在鑄造幣建立時寫入提取端使其可從第一筆交易開始聲稱 — 見變更日誌條目。
值得規劃的兩個後果:
- 在啟動前設定欄位,而不是之後。 在
transfer_fee_extension_auth為Pubkey::default()時建立的啟動會在提取端放置authorityPDA。稍後設定欄位仍然有效 — 畢業會找到 PDA 並移交授權 — 但在此期間沒有任何內容可以提取扣留的餘額。 - 在啟動中旋轉欄位會分割兩個授權。 在啟動建立和畢業之間變更
transfer_fee_extension_auth,鑄造幣的提取扣留授權會保留在建立時配置的金鑰(PDA 不再持有它,因此遷移會跳過該移交),而費用配置授權會轉到新金鑰。在啟動之間旋轉,或計劃透過 Token-2022 直接協調兩個金鑰。
Pubkey::default() 的平台會永久在 authority PDA 上保留兩個授權:費率永遠無法變更,扣留的餘額永遠無法提取。只有在平台打算持有這些金鑰時才將轉帳費用附加到啟動。
NFT 遷移分配(僅限 CPMM)
當啟動畢業到 CPMM 時,遷移指令將CPMM::InitializeWithPermission 鑄造的 LP 代幣分為兩種方式:
lp_to_platform 非零,LP 鎖定程式會將其包裝成一個由 platform_nft_wallet 擁有的費用金鑰 NFT。這取代了建立單獨平台和創作者費用金鑰的升級前行為。由升級前完成的遷移建立的費用金鑰保持不變。此 LP 費用權利與由 platform_cp_creator 控制的 CPMM 創作者費用分開。
銷毀片段被直接銷毀,因此沒有帳戶可以提取它或聲稱該份額代表的 LP 費用。
具有儲存 migrate_type = 0 的現有啟動仍可使用舊版 AMM v4 路徑。新初始化拒絕該遷移類型。
啟動參數規則
restrict_curve_param 是開關。在 0 時,程式根本不讀取規則。在 1 時,透過此平台路由的每個啟動必須滿足其選擇的 GlobalConfig 的 PlatformCurveRule 帳戶,啟動建構器必須將該帳戶附加到 remaining_accounts。
Eq、Gte、Lte 和 Neq 的 (field, op, value) 三元組。這涵蓋數值範圍、替代層級、畢業估值上限、遷移下限、代幣類型閘門和時間限制組 — 完整模型、欄位表和九個工作手冊在 products/launchlab/curve-rules。
有兩件事應該在這裡而不是在那一頁:
curve_rule_manager是委派,而不是轉移。 透過UpdatePlatformConfig::CurveRuleManager設定它,該錢包可以建立、更新、移除和關閉此平台的規則帳戶,而無需管理員金鑰。平台管理員並行保持相同的權力,因此旋轉或清除欄位會恢復控制。Pubkey::default()表示只有管理員可以管理規則。它無法翻轉restrict_curve_param,這仍然是僅限管理員的呼叫。- 規則在
GlobalConfig之上強制執行,永遠不是代替。 規則檢查在設定自己的限制之前執行,只能縮小它們。
curve_params: Vec<PlatformCurveParam> 白名單,它只能測試精確相等性,在所有設定中最多持有 10 個條目,並增加了 PlatformConfig 帳戶本身。使用它的平台由協議在一次性通過中遷移;舊版欄位、其兩個指令和 MAX_CURVE_PARAMS 已消失。
PlatformAllowConfig — 限制平台
每個平台決定是否限制其啟動可能使用的 GlobalConfig 帳戶。使用 UpdatePlatformConfig::RestrictGlobalConfig(0 | 1) 設定 restrict_global_config。
[b"platform_allow_config", platform_config, global_config]。
平台管理員透過 CreatePlatformAllowConfig 和 ClosePlatformAllowConfig 為每個允許的對建立或關閉一個帳戶。當限制為 1 時,初始化在 remaining_accounts 中搜尋預期的 PDA,並以 NotEnoughRemainingAccounts 拒絕缺失的帳戶。當限制為 0 時,不需要允許帳戶。
前面的協議管理員管理的 PlatformGlobalAccess 帳戶及其建立/關閉指令已停用。現有 PlatformConfig 和 GlobalConfig 大小不變,但解碼器必須用新平台標誌替換舊全域標誌。舊存取 PDA 不被新檢查消費。
讀取路徑
PoolState.platform_config 直接指向原始 PlatformConfig — 一次性提取並快取品牌。
更新路徑
錢包輪換(
platform_fee_wallet、platform_nft_wallet、platform_vesting_wallet、platform_cp_creator、transfer_fee_extension_auth、cpswap_config)都透過 UpdatePlatformConfig 進行。閱讀原始碼的 update_platform_config 分派表以取得確切的 param 代碼。
常見陷阱
- 在建構器更新之前啟用
restrict_curve_param。 當它為1時,規則 PDA 必須在每次啟動時位於remaining_accounts中,即使對於沒有規則帳戶的設定 — 缺失的帳戶是NotEnoughRemainingAccounts,而不是通過。首先發送建構器變更,然後翻轉標誌。 - 啟用
restrict_curve_param且規則為空。 持有零個組或組持有零個約束的規則允許一切。啟用標誌本身不是限制;首先寫入組,使用SDK 檢查驗證它們,並在 devnet 上排練整個序列。 - NFT 分配四捨五入。 三個規模必須精確總和為
1_000_000。在CreatePlatformConfig時的差一錯誤會還原;運行時的差一會鑄造或銷毀一個額外的 LP 單位,這正是嚴格相等檢查所在的位置。 - 平台質押雙重配置。 如果
platform_vesting_scale > 0,平台必須在啟動的籌款結束後呼叫CreatePlatformVestingAccount一次;如果忘記,該份額將保持未配置和休眠狀態(啟動的total_locked_amount預算被消費但平台永遠不聲稱)。 platform_cp_creator歧義。 當設定為Pubkey::default()時,啟動創作者被記錄為畢業後 CPMM 池的pool_creator;當設定為真實金鑰時,該金鑰被記錄。這決定了畢業後 CPMM 創作者費用的受益人以及誰可以簽署原始CPMM::CollectCreatorFee路徑。無許可收集路徑仍向此記錄金鑰的規範 ATA 支付。在平台設定建立時決定你想要哪個模型。transfer_fee_extension_auth設定晚或旋轉。 該欄位每個 Token-2022 啟動讀取兩次 — 一次在鑄造幣建立時用於withdraw_withheld_authority,一次在畢業時用於transfer_fee_config_authority— 因此在這兩個時刻之間變更的值會將兩個授權留在不同的金鑰上。見 Token-2022 轉帳費用授權。- 沒有允許帳戶的限制。 在建立所需的
PlatformAllowConfig之前啟用restrict_global_config會阻止選擇該設定的新啟動。
指標
products/launchlab/global-config— 啟動必須滿足的協議端規則。products/launchlab/vesting—platform_vesting_scale機制。products/launchlab/creator-fees— 創作者費用與平台費用金鑰權利。products/launchlab/platforms— 平台整合商的操作指南。
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—PlatformConfigParam分派和強制執行更新時費率上限的每個欄位設定器。raydium-launch/programs/launchpad/src/lib.rs— 平台設定和允許設定進入點。raydium-launch/programs/launchpad/src/instructions/initialize_with_token_2022.rs— 其中transfer_fee_extension_auth被寫入新鑄造幣的TransferFeeConfig。raydium-launch/programs/launchpad/src/instructions/admin/migrate_to_cpswap.rs— 畢業時授權移交及其get_withdraw_withheld_authority守衛。

