Zum Hauptinhalt springen

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.

Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Diese Seite dokumentiert das Launch-spezifische Kontengraph: PoolState (das Root-State-Konto für einen Launch), seine zwei Vaults, das Authority-PDA und die Referenzen nach der Graduation, die es erhält, wenn der Launch abgeschlossen ist.Für die Protocol-level-Konfiguration, die jeden Launch begrenzt, siehe products/launchlab/global-config. Für das Platform-level-Overlay siehe products/launchlab/platform-config. Für Vesting-Konten (VestingSchedule auf PoolState, VestingRecord pro Begünstigter) siehe products/launchlab/vesting.

Konto-Übersicht

KontoInhaberZweck
GlobalConfigLaunchLab-ProgrammProtocol-level-Regeln: Gebühren, Supply-Mindestwerte, Migrationswallets. Eines pro (curve_type, index).
PlatformConfigLaunchLab-ProgrammPlatform-level-Overlay: Branding, Platform-Gebühr, NFT-Aufteilung bei Graduation, Curve-Shape-Whitelist.
PoolStateLaunchLab-ProgrammLaunch-spezifischer Root-State: Mints, Vaults, Curve-Parameter, Verkaufszähler, Gebührenzähler, Vesting-Schedule, Graduation-Status.
authorityLaunchLab-ProgrammSingle PDA mit Seed [b"vault_auth_seed"] der die Vaults über alle Launches hinweg besitzt und den Post-Graduation-CPI signiert.
base_vaultSPL Token / Token-2022Launch-spezifischer Vault, der die unverkauften Base-Token hält.
quote_vaultSPL TokenLaunch-spezifischer Vault, der akkumulierte Quote-Token hält.
VestingRecordLaunchLab-ProgrammPro-Begünstigter Cliff + Linear-Unlock-Record. Optional.
creator_fee_vaultSPL TokenPro-Creator + Pro-Quote-Mint-Vault für aufgelaufene Creator-Gebühren, geleert durch ClaimCreatorFee.
platform_fee_vaultSPL TokenPro-Platform + Pro-Quote-Mint-Vault für aufgelaufene Platform-Gebühren, geleert durch ClaimPlatformFeeFromVault.
(Post-Graduation) cpmm_pool_state oder amm_pool_stateCPMM / AMM v4-ProgrammDer Pool, erstellt durch MigrateToCpswap / MigrateToAmm.
(Post-Graduation) Fee Key NFTLP-Lock-ProgrammWraps den Creator-Anteil der LP bei CPMM Graduation; berechtigt den Inhaber zu ClaimCreatorFee auf dem CPMM-Pool.
Das SDK raydium.launchpad.getLaunchById gibt PoolState plus ein Flag zurück, das anzeigt, ob der Launch graduiert ist; wenn ja, ist die Post-Migration Pool-ID enthalten.

PoolState

Der Launch-spezifische Root-State. Feldnamen unten entsprechen der On-Chain Rust-Struktur (states/pool.rs); einige Werte sind aus Gründen der Lesbarkeit vereinfacht — konsultieren Sie die Quelle für das genaue Memory-Layout.
// 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-Werte (aus dem Anchor IDL):
0 = Funding         — akzeptiert Käufe / Verkäufe; unterhalb quote_reserve_target
1 = Migrate         — quote_reserve_target erreicht; wartet auf MigrateTo*
2 = Migrated        — MigrateTo* bereits ausgeführt; Vesting-Uhr läuft
Integrator-relevante Felder:
  • status — drei Werte, monoton (Funding → Migrate → Migrated). Lesezugriffe immer sicher; Schreibzugriffe gated.
  • real_base, real_quote — aktueller Curve-State. In Kombination mit virtual_base / virtual_quote sind sie ausreichend, um den Spotpreis zu berechnen, ohne die Vaults zu berühren. Siehe bonding-curve.
  • total_base_sell vs real_base — „Progress zur Graduation”-Verhältnis für UIs.
  • migrate_type — wählt aus, ob MigrateToAmm oder MigrateToCpswap der gültige Graduation-Pfad ist. Token-2022-Launches müssen CPMM verwenden.
  • amm_creator_fee_on — nur sinnvoll bei Graduation zu CPMM. Wählt creator_fee_on = OnlyQuoteToken (0) oder BothToken (1) auf dem Post-Graduation-CPMM-Pool. Trotz des Namens steuert dieses Enum effektiv auch das Migrationsziel — BothToken ist in der aktuellen operativen Praxis mit MigrateToAmm gepaart; QuoteToken mit MigrateToCpswap. Siehe creator-fees.
  • quote_protocol_fee / platform_fee / migrate_fee — drei unabhängige Gebührenzähler. Jeder hat eine eigene Claim-Instruction; siehe instructions.
  • vesting_schedule — vorhanden auf jedem PoolState aber inaktiv, wenn total_locked_amount == 0. Siehe vesting für den vollständigen Lebenszyklus.

Das Authority-PDA

LaunchLab verwendet ein einzelnes Authority-PDA über alle Launches hinweg, abgeleitet ohne Launch-spezifischen Seed:
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,
);
Das einzelne PDA ist:
  • Die Authority auf jedem Launch’s base_vault und quote_vault.
  • Die mint_authority auf jedem Launch’s base_mint (Pre-Graduation).
  • Der Signer auf dem Post-Graduation-CPI zu AMM v4 / CPMM (MigrateTo*).
  • Der Signer auf ClaimVestedToken-Transfers aus dem Base-Vault.
Die mint_authority wird unmittelbar nach MigrateToAmm / MigrateToCpswap widerrufen, sodass der Supply permanent festgelegt ist. Zwei zusätzliche PDAs sperren die Fee-Vaults:
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,
);
Diese signieren den Transfer aus den entsprechenden Fee-Vaults während ClaimCreatorFee und ClaimPlatformFeeFromVault.

Base-Mint

Erstellt inline durch Initialize mit:
  • mint_authority = authority (widerrufen bei Graduation).
  • freeze_authority = None.
  • supply = supply, vollständig in base_vault geprägt.
  • decimals vom Creator bei Initialize gewählt (häufig 6).
Da der vollständige Supply vorher geprägt wird, ist base_mint.supply für die gesamte Lebensdauer des Launches konstant. Curve-Käufe verschieben Token von base_vault zum Käufer, rufen aber mint_to nicht auf. Initialize / InitializeV2 erstellen SPL Token-Launches. Die dedizierte InitializeWithToken2022-Instruction ermöglicht es, dass der Base-Mint ein Token-2022-Mint ist (mit optionaler TransferFeeConfig); der Quote-Mint ist immer noch SPL Token. Token-2022-Launches müssen zu einem CPMM-Pool graduieren, da AMM v4 nur SPL Token-Vaults unterstützt.

Vaults

Sowohl base_vault als auch quote_vault sind Standard-SPL-Token-Konten, die vom LaunchLab authority-PDA besessen werden. Adressen sind auf PoolState gespeichert und können auch abgeleitet werden:
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,
);
(Überprüfen Sie die genauen Seed-Präfixe aus der Initialize-Accounts-Struktur der Quelle, bevor Sie sich in der Produktion auf eine Ableitung verlassen.)

Fee-Vaults

Zwei PDAs aggregieren Gebühren über Launches hinweg:
  • Creator Fee Vault — PDA bei Seeds [creator, quote_mint]. Jeder Launch, der die gleichen Creator-Gebühren auf dem gleichen Quote-Mint verdient, fließt in den gleichen Vault. Der Creator leert ihn via ClaimCreatorFee.
  • Platform Fee Vault — PDA bei Seeds [platform_config, quote_mint]. Jeder Launch, der durch die gleiche Platform geleitet wird und den gleichen Quote-Mint nutzt, fließt in den gleichen Vault. Die platform_fee_wallet der Platform leert ihn via ClaimPlatformFeeFromVault. Es gibt auch eine Pro-Launch-Leerungs-Variante (ClaimPlatformFee), die direkt aus dem Launch’s quote_vault zieht, ohne den aggregierten Vault zu durchlaufen.
Das aggregierte-Vault-Muster ermöglicht es einem Creator oder einer Platform mit hohem Volumen, die Mietkosten der Gebührenakkumulation über viele Launches zu amortisieren.

Quote Vault ↔ real_quote

quote_vault.balance und PoolState.real_quote sollten synchron bleiben. Sie können um höchstens die Summe der drei ausstehenden Gebührenzähler (quote_protocol_fee, platform_fee, migrate_fee) abweichen, die im Vault sitzen aber zu den Gebührenzählern und nicht zur Curve-Reserve gehören. Die Curve-Mathematik verwendet immer real_quote, niemals den rohen Vault-Saldo. Pre-Graduation-Invariante:
quote_vault.balance ==
   real_quote
 + quote_protocol_fee
 + platform_fee
 + migrate_fee

Lebenszyklus-Konto-Übergänge

EventStatusreal_basereal_quotePost-Graduation-Pool
InitializeFunding00
BuyExactIn / BuyExactOutFunding+base_out+quote_in_after_fee
SellExactIn / SellExactOutFunding−base_in−quote_out_before_fee
MigrateToAmm / MigrateToCpswapFunding → Migrate → Migrated(frozen)(frozen)erstellt, LP-Aufteilung pro PlatformConfig
ClaimCreatorFee / ClaimPlatformFee*anyleert einen Fee-Vault
CreateVestingAccountFundingerhöht vesting_schedule.allocated_share_amount
ClaimVestedTokenMigrated onlyleert base_vault

Nächste Schritte

Quellen:
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolState, PoolStatus, VestingSchedule, AmmCreatorFeeOn.
  • raydium-launch/programs/launchpad/src/lib.rs — PDA-Seed-Konstanten (AUTH_SEED, CREATOR_FEE_VAULT_AUTH_SEED, PLATFORM_FEE_VAULT_AUTH_SEED).
  • Raydium SDK v2 launchpad module.