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 自动翻译,所有内容以英文版本为准。查看英文版 →
GlobalConfig 是协议级配置账户。可以有多个——以 (curve_type, index) 作为密钥——每次启动在 Initialize 时选择一个。所选 GlobalConfig 中的参数值成为该启动各项参数的硬性上限。如需平台级自定义(按平台费率、允许的曲线形状、毕业时的 NFT 分成),请参阅 products/launchlab/platform-config。定义
GlobalConfig 是每个 (curve_type, index) 对应的单个 PDA,用于确定所有启动都必须遵守的协议侧规则:
- 允许的曲线类型(
curve_type)。 - 曲线在每次购买和出售时收取的交易费率。
- 毕业时收取的迁移费。
- 供应量、锁定率、出售率和迁移率的下限。
- 报价币种(通常是包装的 SOL 或 USDC)——用户购买时使用的资产。
- 三个协议侧钱包:协议费拥有者、迁移费拥有者,以及两个迁移控制钱包(授权毕业到 AMM v4/CPMM)。
- 可选的标志(
requires_platform_auth)用于控制哪些平台可使用此配置。
GlobalConfig 账户由 LaunchLab 程序管理员创建和更新(硬编码的管理员公钥,在所有基于 Anchor 的 Raydium 程序间共享——见 reference/program-addresses)。
布局
create_config 指令是权威来源。)
字段语义
curve_type 和 index
这两个字段共同唯一标识一个 GlobalConfig。每个 (curve_type, index) 对有一个 GlobalConfig:
curve_type = 0— 常数乘积虚拟储备曲线。默认且最常用。curve_type = 1— 固定价格曲线。curve_type = 2— 线性价格曲线。
index 是 u16 类型,允许管理员为每种曲线类型发布多个配置(例如一个费率更紧凑,一个最低报价募集额更高)。在 Initialize 时,启动提供一个 (curve_type, index) 对,程序加载匹配的 GlobalConfig。
费用
trade_fee_rate— 以交易量的1/1_000_000计价。应用于曲线上的每次购买和出售。protocol_fee_owner通过CollectFee声称其份额。migrate_fee— 在毕业时收取的固定费用(以 lamport 或报价单位计,取决于配置)。由migrate_fee_owner通过CollectMigrateFee声称。max_share_fee_rate— 初始化为10_000(100 个基点)。限制绑定的PlatformConfig中平台的分成费率(见platform-config)。程序强制trade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE。
供应量和费率下限
这些下限约束启动在Initialize 时可选择的曲线参数。若创建者的 CurveParams 违反任何下限,Initialize 将回滚并显示 InvalidInput 错误。
min_base_supply— 曲线可声明的最小supply(无小数)。默认为10_000_000。max_lock_rate— 以1/1_000_000计价;默认300_000(30%)。通过total_locked_amount <= supply * max_lock_rate / 1_000_000限制权益锁定。min_base_sell_rate— 以1/1_000_000计价;默认200_000(20%)。从下方限制base_supply_graduation / supply。min_base_migrate_rate— 以1/1_000_000计价;默认200_000(20%)。限制保留用于初始化毕业后流动性池的令牌数量。min_quote_fund_raising— 启动可声明的最小quote_reserve_target(含小数)。默认为报价币种的30_000_000_000单位。
报价币种和协议钱包
quote_mint— 用户购买时使用的资产。大多数启动使用包装的 SOL(So111…112)或 USDC(EPjF…Dt1v)。一个GlobalConfig绑定一个报价币种;需要不同报价的启动使用不同的(curve_type, index)。protocol_fee_owner— 签署CollectFee的公钥,声称绑定到此配置的每次启动上累积的协议费。链上存储;管理员可通过UpdateConfig轮换。migrate_fee_owner— 签署CollectMigrateFee的公钥。
迁移钱包
两条毕业路径需要不同的签名者:migrate_to_amm_wallet— 必须签署MigrateToAmm。用于migrate_type = 0的启动(毕业到 AMM v4 + OpenBook)。migrate_to_cpswap_wallet— 必须签署MigrateToCpswap。用于migrate_type = 1(毕业到 CPMM)。Token-2022 启动总是采用此路径。
requires_platform_auth
一个 u8 标志(0 = 任何人都可使用此配置;非零 = 仅具有有效 PlatformGlobalAccess PDA 的平台可针对此配置启动)。设置后,每个针对此 GlobalConfig 的 Initialize 必须包含匹配的 PlatformGlobalAccess 账户,证明该平台已通过 CreatePlatformGlobalAccess(仅限管理员的指令)预先授权。平台侧机制详见 platform-config。
初始化时的默认值
调用CreateConfig 时,程序使用硬编码的默认值初始化许多字段:
curve_type、index、migrate_fee、trade_fee_rate、quote_mint 和四个钱包公钥;后续值可通过 UpdateConfig 调整。
启动如何选择 GlobalConfig
在 Initialize 时,创建者传递:
(curve_type, index)以选择要加载的GlobalConfigPDA。CurveParams描述曲线形状(supply、total_base_sell、total_quote_fund_raising、migrate_type)。VestingParams描述锁定供应。MintParams针对基础币种。
curve_type匹配global_config.curve_type。supply >= global_config.min_base_supply。total_locked_amount <= supply * max_lock_rate / 1_000_000。total_base_sell >= supply * min_base_sell_rate / 1_000_000。(supply − total_base_sell − total_locked_amount) >= supply * min_base_migrate_rate / 1_000_000— 即保留足够令牌初始化毕业后的流动性池。total_quote_fund_raising >= min_quote_fund_raising。- 若
requires_platform_auth != 0,必须包含有效的PlatformGlobalAccessPDA。
Initialize 后,启动的 PoolState 直接存储 global_config 公钥,因此绑定是永久的。
更新路径
UpdateConfig 仅限管理员操作,接收一个 (param: u8, value: u64) 对。每个 param 值选择要修改的字段:
param | 修改的字段 |
|---|---|
| 0 | migrate_fee |
| 1 | trade_fee_rate |
| 2 | max_share_fee_rate |
| 3 | min_base_supply |
| 4 | max_lock_rate |
| 5 | min_base_sell_rate |
| 6 | min_base_migrate_rate |
| 7 | min_quote_fund_raising |
protocol_fee_owner、migrate_fee_owner、migrate_to_amm_wallet、migrate_to_cpswap_wallet)采用单独的 Pubkey 参数形状;在编写管理员交易前,检查 update_config 源代码获取确切的调度表。
requires_platform_auth 通过 set_requires_platform_auth(bool) 切换。
从客户端读取 GlobalConfig
getAllGlobalConfigs 辅助函数或查询镜像它们的 LaunchLab API 端点;链上账户数很少(实际上为个位数)。
相关链接
products/launchlab/platform-config— 按平台的叠加层,进一步限制曲线形状。products/launchlab/accounts— 启动的完整账户图。products/launchlab/instructions—Initialize和更新指令。reference/program-addresses— 管理员公钥、程序 ID、共享权限。
raydium-launch/programs/launchpad/src/states/config.rs—GlobalConfig结构和initialize。raydium-launch/programs/launchpad/src/lib.rs—create_config、update_config。


