メインコンテンツへスキップ

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(ルート状態アカウント)、その 2 つのヴォルト、オーソリティ PDA、およびローンチが決済される際に獲得する卒業後の参照です。すべてのローンチを制限するプロトコルレベルの設定については、products/launchlab/global-config を参照してください。プラットフォームごとのオーバーレイについては、products/launchlab/platform-config を参照してください。ベスティングアカウント(PoolStateVestingSchedule、受益者ごとの VestingRecord)については、products/launchlab/vesting を参照してください。

アカウント一覧

アカウントオーナー用途
GlobalConfigLaunchLab プログラムプロトコルレベルのルール:フィー、供給量のフロア、マイグレーションウォレット。(curve_type, index) ごとに 1 つ。
PlatformConfigLaunchLab プログラムプラットフォームごとのオーバーレイ:ブランディング、プラットフォームフィー、卒業時の NFT 分割、曲線形状のホワイトリスト。
PoolStateLaunchLab プログラムローンチごとのルート状態:ミント、ヴォルト、曲線パラメータ、販売カウンター、フィーカウンター、ベスティングスケジュール、卒業ステータス。
authorityLaunchLab プログラムシード [b"vault_auth_seed"] で導出される単一の PDA で、すべてのローンチのヴォルトを所有し、卒業後の 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 で作成されるプール。
(卒業後) Fee Key NFTLP-Lock プログラムCPMM 卒業時のクリエーターの LP スライスをラップします。ホルダーに CPMM プール上の ClaimCreatorFee の権利を与えます。
SDK の raydium.launchpad.getLaunchByIdPoolState とローンチが卒業したかどうかを示すフラグを返します。卒業している場合、マイグレーション後のプール 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         — buys / sells を受け付け中。quote_reserve_target 未満
1 = Migrate         — quote_reserve_target に到達。MigrateTo* を待機中
2 = Migrated        — MigrateTo* 実行済み。ベスティング時間経過中
統合業者向けのフィールド:
  • status — 3 つの値、単調性あり(Funding → Migrate → Migrated)。読み取りは常に安全です。書き込みはゲート制御されています。
  • real_basereal_quote — 現在の曲線状態。virtual_base / virtual_quote と組み合わせて、ヴォルトに触れることなくスポット価格を計算するのに十分です。bonding-curve を参照してください。
  • total_base_sell vs real_base — UI の「卒業への進捗」比率。
  • migrate_typeMigrateToAmm または MigrateToCpswap のどちらが有効な卒業パスであるかを選択します。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 — 3 つの独立したフィーカウンター。それぞれ独自のクレーム指示があります。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_vault および quote_vault のオーソリティ。
  • 各ローンチの base_mintmint_authority(卒業前)。
  • AMM v4 / CPMM への卒業後 CPI(MigrateTo*)の署名者。
  • ClaimVestedToken でベースヴォルトから転送する際の署名者。
mint_authorityMigrateToAmm / MigrateToCpswap の直後に取り消され、供給量は永久に固定されます。 2 つの追加 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,
);
これらは ClaimCreatorFee および ClaimPlatformFeeFromVault の実行中に、対応するフィーヴォルトから転送する際に署名します。

ベースミント

Initialize で以下のインラインで作成されます:
  • mint_authority = authority(卒業時に取り消し)。
  • freeze_authority = None
  • supply = supply、すべて base_vault にミント済み。
  • decimalsInitialize でクリエーターが選択(通常は 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 アカウント構造体から正確なシードプレフィックスを確認してください。)

フィーヴォルト

2 つの PDA はローンチ全体のフィーを集約します:
  • クリエーターフィーヴォルト — シード [creator, quote_mint] の PDA。同じクリエーターが同じクオートミントで稼いだすべてのローンチは、同じヴォルトに流れ込みます。クリエーターは ClaimCreatorFee 経由でこれをスイープします。
  • プラットフォームフィーヴォルト — シード [platform_config, quote_mint] の PDA。同じプラットフォーム経由でルーティングされ、同じクオートミントを使用するすべてのローンチは、同じヴォルトに流れ込みます。プラットフォームの platform_fee_walletClaimPlatformFeeFromVault 経由でこれをスイープします。また、ローンチごとのスイープバリアント(ClaimPlatformFee)があり、集約ヴォルトを経由せず、ローンチの quote_vault から直接プルします。
集約ヴォルトパターンにより、高取引量のクリエーターまたはプラットフォームは、多くのローンチにわたってフィー蓄積のレント コストを償却できます。

クオートヴォルト ↔ real_quote

quote_vault.balancePoolState.real_quote は同期を保つ必要があります。3 つの待機中のフィーカウンター(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(frozen)(frozen)作成、LP は PlatformConfig に従い分割
ClaimCreatorFee / ClaimPlatformFee*anyフィーヴォルトをドレイン
CreateVestingAccountFundingvesting_schedule.allocated_share_amount をバンプ
ClaimVestedTokenMigrated onlybase_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 モジュール