本页内容由 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 bps。 - LP 迁移分配 — 三个存储的整数(
platform_scale、creator_scale、burn_scale),总和为1_000_000。在 2026-08-17 升级之前,创建者规模产生一个单独的创建者费用密钥。升级后执行的迁移将前两个合并为一个平台拥有的锁定 LP 份额;其余的被销毁。 - 曲线参数白名单 — 一个
Vec<PlatformCurveParam>,列出该平台允许的确切(supply, total_base_sell, total_quote_fund_raising, migrate_type, migrate_cpmm_fee_on, vesting_params...)组合。如果向量为空或所有条目都无效,任何组合都被允许;否则启动必须完全匹配其中一个条目。 - 全局配置允许列表 — 一个可选的限制,要求为选定的
GlobalConfig创建平台的PlatformAllowConfig。
create_platform_config 获取规范的种子列表。)
布局
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声称)。
creator_fee_rate 由 MAX_CREATOR_FEE_RATE = 5000(50 bps)限制。fee_rate(平台费用)由 GlobalConfig.max_share_fee_rate 限制在 10000(100 bps)。
NFT 迁移分配(仅 CPMM)
当启动毕业到 CPMM 时,迁移指令将CPMM::InitializeWithPermission 铸造的 LP 代币分为两种方式:
lp_to_platform 非零,LP-Lock 程序将其包装成一个由 platform_nft_wallet 拥有的费用密钥 NFT。这替代了升级前创建单独平台和创建者费用密钥的行为。升级前完成的迁移创建的费用密钥保持不变。此 LP 费用权利与由 platform_cp_creator 控制的 CPMM 创建者费用分开。
销毁份额被直接销毁,因此没有账户可以提取它或声称该份额代表的 LP 费用。
具有存储 migrate_type = 0 的现有启动仍可使用旧版 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 限制白名单大小。
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 代码。
常见陷阱
- 白名单哨兵设置错误。 具有
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 创建者费用的受益人以及谁可以签署原始CPMM::CollectCreatorFee路径。无权限收集路径仍向此记录密钥的规范 ATA 支付。在平台配置创建时决定你想要哪个模型。- 没有允许账户的限制。 在创建所需的
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、PlatformCurveParam、BondingCurveParam、is_valid_curve_param。raydium-launch/programs/launchpad/src/states/platform_allow_config.rs—PlatformAllowConfig。raydium-launch/programs/launchpad/src/lib.rs— 平台配置和允许配置入口点。

