跳轉到主要內容

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 自動翻譯,所有內容以英文版本為準。查看英文版 →
本頁記錄每次發行的帳戶圖:PoolState(一次發行的根狀態帳戶)、其兩個金庫、授權 PDA,以及發行結算時獲得的畢業後參考。如需約束所有發行的協議級別設定,請參閱 products/launchlab/global-config。如需每平台疊加層,請參閱 products/launchlab/platform-config。如需歸屬帳戶(PoolState 上的 VestingSchedule、每位受益人的 VestingRecord),請參閱 products/launchlab/vesting

帳戶清單

帳戶擁有者用途
GlobalConfigLaunchLab 程序協議級別規則:費用、供應下限、遷移錢包。每個 (curve_type, index) 一個。
PlatformConfigLaunchLab 程序每平台疊加層:品牌推廣、平台費用、畢業時的 NFT 分配、曲線形狀白名單。
PoolStateLaunchLab 程序每次發行的根狀態:幣種、金庫、曲線參數、售出計數器、費用計數器、歸屬時間表、畢業狀態。
authorityLaunchLab 程序單個 PDA,種子為 [b"vault_auth_seed"],擁有所有發行的金庫並簽署畢業後的 CPI。
base_vaultSPL Token / Token-2022每次發行的金庫,持有未售出的基礎代幣。
quote_vaultSPL Token每次發行的金庫,持有累積的報價代幣。
VestingRecordLaunchLab 程序每位受益人的懸崖 + 線性解鎖記錄。可選。
creator_fee_vaultSPL Token每個創建者 + 每個報價幣種的金庫,持有應計創建者費用,由 ClaimCreatorFee 清空。
platform_fee_vaultSPL Token每個平台 + 每個報價幣種的金庫,持有應計平台費用,由 ClaimPlatformFeeFromVault 清空。
(畢業後)cpmm_pool_state amm_pool_stateCPMM / AMM v4 程序MigrateToCpswap / MigrateToAmm 創建的池。
(畢業後)費用關鍵 NFTLP-Lock 程序包裝創建者在 CPMM 畢業時的 LP 份額;持有人有權對 CPMM 池進行 ClaimCreatorFee
SDK 的 raydium.launchpad.getLaunchById 返回 PoolState 加上指示發行是否已畢業的標誌;如果已畢業,則包括畢業後遷移的池 ID。

PoolState

每次發行的根狀態。下面的欄位名稱與鏈上 Rust 結構相符(states/pool.rs);為便於閱讀,某些值已簡化——請查閱源代碼以獲得確切的內存布局。
// states/pool.rs (abridged)
pub struct PoolState {
    pub epoch:                     u64,        // recent_epoch tracker
    pub auth_bump:                 u8,
    pub status:                    u8,         // PoolStatus enum
    pub base_decimals:             u8,
    pub quote_decimals:            u8,
    pub migrate_type:              u8,         // 0 = AMM v4, 1 = CPMM
    pub supply:                    u64,        // total base tokens (no decimals)
    pub total_base_sell:           u64,        // base supply allocated to the curve
    pub virtual_base:              u64,        // virtual-reserve seed
    pub virtual_quote:             u64,        // virtual-reserve seed
    pub real_base:                 u64,        // base sold so far
    pub real_quote:                u64,        // quote raised so far (excl. fees)
    pub total_quote_fund_raising:  u64,        // graduation threshold in quote

    pub quote_protocol_fee:        u64,        // accrued, pending CollectFee
    pub platform_fee:              u64,        // accrued, pending ClaimPlatformFee
    pub migrate_fee:               u64,        // accrued, pending CollectMigrateFee
    pub vesting_schedule:          VestingSchedule,

    pub global_config:             Pubkey,
    pub platform_config:           Pubkey,
    pub creator:                   Pubkey,
    pub base_mint:                 Pubkey,
    pub quote_mint:                Pubkey,
    pub base_vault:                Pubkey,
    pub quote_vault:               Pubkey,

    pub amm_creator_fee_on:        u8,         // 0 = QuoteToken, 1 = BothToken (CPMM-only)
    pub token_program_flag:        u8,         // bit flags for SPL Token vs Token-2022
    pub padding:                   [u8; 54],
}

#[derive(Default, Debug, Clone)]
pub struct VestingSchedule {
    pub total_locked_amount:    u64,
    pub cliff_period:           u64,
    pub unlock_period:          u64,
    pub start_time:             u64,           // set at graduation
    pub allocated_share_amount: u64,           // running sum across VestingRecords
}
PoolStatus 值(來自 Anchor IDL):
0 = Funding         — accepting buys / sells; below quote_reserve_target
1 = Migrate         — quote_reserve_target reached; awaiting MigrateTo*
2 = Migrated        — MigrateTo* already executed; vesting clock running
整合商相關欄位:
  • status — 三個值,單調遞增(Funding → Migrate → Migrated)。讀取總是安全的;寫入受限。
  • real_basereal_quote — 當前曲線狀態。結合 virtual_base / virtual_quote,足以在不觸及金庫的情況下計算現貨價格。參閱 bonding-curve
  • total_base_sell vs real_base — 用於 UI 的「畢業進度」比率。
  • migrate_type — 選擇 MigrateToAmmMigrateToCpswap 是否為有效的畢業路徑。Token-2022 發行必須使用 CPMM。
  • amm_creator_fee_on — 僅在畢業到 CPMM 時有意義。在畢業後的 CPMM 池上選擇 creator_fee_on = OnlyQuoteToken0)或 BothToken1)。儘管名稱如此,此枚舉實際上也驅動遷移目標——在當前運營實踐中,BothTokenMigrateToAmm 配對;QuoteTokenMigrateToCpswap 配對。 參閱 creator-fees
  • quote_protocol_fee / platform_fee / migrate_fee — 三個獨立的費用計數器。每個都有自己的索賠指令;參閱 instructions
  • vesting_schedule — 出現在每個 PoolState 上,但當 total_locked_amount == 0 時無效。參閱 vesting 以了解完整的生命週期。

授權 PDA

LaunchLab 在所有發行中使用單個授權 PDA,無特定於發行的種子:
const LAUNCHLAB_PROGRAM_ID = new PublicKey("<LAUNCHLAB_ID>"); // see reference/program-addresses

const [authority, bump] = PublicKey.findProgramAddressSync(
  [Buffer.from("vault_auth_seed")],
  LAUNCHLAB_PROGRAM_ID,
);
該單個 PDA 是:
  • 每次發行的 base_vaultquote_vault 的授權。
  • 每次發行的 base_mintmint_authority(畢業前)。
  • 畢業後 CPI 到 AMM v4 / CPMM 的簽名者(MigrateTo*)。
  • ClaimVestedToken 從基礎金庫轉帳的簽名者。
mint_authority 在執行 MigrateToAmm / MigrateToCpswap 後立即被撤銷,使供應量永久固定。 兩個額外的 PDA 限制費用金庫:
const [creatorFeeVaultAuthority] = PublicKey.findProgramAddressSync(
  [Buffer.from("creator_fee_vault_auth_seed")],
  LAUNCHLAB_PROGRAM_ID,
);

const [platformFeeVaultAuthority] = PublicKey.findProgramAddressSync(
  [Buffer.from("platform_fee_vault_auth_seed")],
  LAUNCHLAB_PROGRAM_ID,
);
這些在 ClaimCreatorFeeClaimPlatformFeeFromVault 期間簽署相應費用金庫的轉帳。

基礎幣種

Initialize 內聯創建,具有:
  • mint_authority = authority(在畢業時撤銷)。
  • freeze_authority = None
  • supply = supply,完全鑄造到 base_vault 中。
  • decimals 由創建者在 Initialize 時選擇(通常為 6)。
因為完整供應量是預先鑄造的,base_mint.supply 在發行的整個生命週期內保持不變。曲線購買將代幣從 base_vault 移動到購買者,但不調用 mint_to Initialize / InitializeV2 創建 SPL Token 發行。專用的 InitializeWithToken2022 指令允許基礎幣種為 Token-2022 幣種(具有可選的 TransferFeeConfig);報價幣種仍然是 SPL Token。Token-2022 發行必須畢業到 CPMM 池,因為 AMM v4 僅支持 SPL Token 金庫。

金庫

base_vaultquote_vault 都是由 LaunchLab authority PDA 擁有的標準 SPL Token 帳戶。地址存儲在 PoolState 上,也可以派生:
const [baseVault] = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_vault"), poolState.toBuffer(), baseMint.toBuffer()],
  LAUNCHLAB_PROGRAM_ID,
);
const [quoteVault] = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_vault"), poolState.toBuffer(), quoteMint.toBuffer()],
  LAUNCHLAB_PROGRAM_ID,
);
(在生產中依賴派生之前,請驗證源代碼的 Initialize 帳戶結構中的確切種子前綴。)

費用金庫

兩個 PDA 跨發行聚合費用:
  • 創建者費用金庫 — PDA,種子為 [creator, quote_mint]。每個在同一報價幣種上賺取相同創建者費用的發行都注入到同一金庫中。創建者通過 ClaimCreatorFee 清空它。
  • 平台費用金庫 — PDA,種子為 [platform_config, quote_mint]。通過同一平台路由且使用相同報價幣種的每個發行都注入到同一金庫中。平台的 platform_fee_wallet 通過 ClaimPlatformFeeFromVault 清空它。還有一個每次發行的清空變體(ClaimPlatformFee),它直接從發行的 quote_vault 中提取,無需通過聚合金庫。
聚合金庫模式允許高容量的創建者或平台在許多發行中攤銷費用累積的租金成本。

報價金庫 ↔ real_quote

quote_vault.balancePoolState.real_quote 應保持同步。它們的偏差最多為三個待處理費用計數器的總和(quote_protocol_feeplatform_feemigrate_fee),這些計數器位於金庫中,但屬於費用計數器而不是曲線儲備。曲線數學始終使用 real_quote,從不使用原始金庫餘額。 畢業前不變式:
quote_vault.balance ==
   real_quote
 + quote_protocol_fee
 + platform_fee
 + migrate_fee

生命週期帳戶轉換

事件狀態real_basereal_quote畢業後池
InitializeFunding00
BuyExactIn / BuyExactOutFunding+base_out+quote_in_after_fee
SellExactIn / SellExactOutFunding−base_in−quote_out_before_fee
MigrateToAmm / MigrateToCpswapFunding → Migrate → Migrated(凍結)(凍結)已創建,LP 按 PlatformConfig 分配
ClaimCreatorFee / ClaimPlatformFee*任意清空費用金庫
CreateVestingAccountFunding增加 vesting_schedule.allocated_share_amount
ClaimVestedTokenMigrated only清空 base_vault

後續步驟

來源:
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolStatePoolStatusVestingScheduleAmmCreatorFeeOn
  • raydium-launch/programs/launchpad/src/lib.rs — PDA 種子常數(AUTH_SEEDCREATOR_FEE_VAULT_AUTH_SEEDPLATFORM_FEE_VAULT_AUTH_SEED)。
  • Raydium SDK v2 launchpad 模組