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.
LaunchLab stellt eine kompakte Anweisungsmenge bereit: sechs Aufrufe für Benutzer plus einige Admin-Primitive. Das SDK umhüllt alle davon; diese Seite dokumentiert die rohe Oberfläche für Aggregatoren, Überwachungstools und Programme, die CPI benötigen.
Anweisungsübersicht
| Gruppe | Anweisung | Aufrufbar durch |
|---|
| Globale Konfiguration | CreateConfig / UpdateConfig | Admin |
| Startlebenszyklus | Initialize / InitializeV2 | Beliebig (Ersteller) — SPL Token-Starts; V2 erfasst amm_creator_fee_on für die eventuelle CPMM-Graduierung |
| Startlebenszyklus | InitializeWithToken2022 | Beliebig (Ersteller) — Token-2022-Start, optionales TransferFeeConfig |
| Handel | BuyExactIn / BuyExactOut | Beliebig — exakte-Input / exakte-Output-Kauf auf der Bonding Curve |
| Handel | SellExactIn / SellExactOut | Beliebig — exakte-Input / exakte-Output-Verkauf auf der Bonding Curve |
| Graduierung | MigrateToAmm | Migrations-Wallet (in GlobalConfig gesetzt) — Graduierung zu AMM v4. Wird verwendet, wenn amm_creator_fee_on = BothToken, damit die Creator-Gebühr auf beiden Seiten erhoben werden kann. |
| Graduierung | MigrateToCpswap | Migrations-Wallet — Graduierung zu CPMM. Wird verwendet, wenn amm_creator_fee_on = QuoteToken und erforderlich für Token-2022-Starts. Hüllt InitializeWithPermission auf CPMM ein. |
| Gebühren | CollectFee | Admin — Abruf von Protokollgebühren von einem Start |
| Gebühren | CollectMigrateFee | Admin — Abruf angesammelter Migrationsgebühren |
| Gebühren | ClaimCreatorFee | Ersteller — Abruf angesammelter Creator-Gebühren während der Curve-Phase |
| Vesting | CreateVestingAccount | Ersteller — Zuordnung gesperrter Token an einen Begünstigten, freigegeben nach Graduierung |
| Vesting | CreatePlatformVestingAccount | Platform-Admin — Zuordnung gesperrter Token an Plattform-seitige Begünstigte |
| Vesting | ClaimVestedToken | Begünstigter — Abruf freigegebener Token nach der Cliff-Periode |
| Plattformkonfiguration | CreatePlatformConfig / UpdatePlatformConfig | Platform-Admin |
| Plattformkonfiguration | UpdatePlatformCurveParam / RemovePlatformCurveParam | Platform-Admin — Verwaltung der pro-Plattform-Liste zulässiger Curve-Formen |
| Plattformgebühren | ClaimPlatformFee / ClaimPlatformFeeFromVault | Platform-Admin |
| Plattformzugriff | CreatePlatformGlobalAccess / ClosePlatformGlobalAccess | Admin — Kontrolle, welche Plattformen eine gegebene GlobalConfig verwenden dürfen |
Die „ExactIn/ExactOut”-Aufteilung spiegelt CPMMs SwapBaseInput / SwapBaseOutput wider — on-chain sind es separate Anweisungs-Diskriminatoren mit leicht unterschiedlicher Rundung.
Graduierungspfadauswahl. migrate_type wird auf PoolState bei Initialize{V2,WithToken2022} erfasst und bestimmt, welche der beiden Graduierungsanweisungen ausgeführt werden kann. Token-2022-Starts migrieren immer zu CPMM. SPL Token-Starts migrieren zu entweder AMM v4 oder CPMM, abhängig von der amm_creator_fee_on-Einstellung:
BothToken → MigrateToAmm → AMM v4 Pool (Creator-Gebühr kann von beiden Seiten erhoben werden; AMM v4 hat kein natives Creator-Gebühren-Feld, daher werden Creator-Gebühren stattdessen über den LP-Lock NFT-Mechanismus erfasst).
QuoteToken → MigrateToCpswap → CPMM Pool mit creator_fee_on = OnlyQuoteToken (Creator verdient weiterhin Gebühren aus dem CPMM Pool durch den LaunchLab Fee Key NFT — siehe products/launchlab/creator-fees).
Hinweis zum AmmCreatorFeeOn-Enum-Namen. Der Rust-Quellcode nennt dieses Enum AmmCreatorFeeOn mit Varianten QuoteToken und BothToken. Der Name ist irreführend: in der aktuellen Betriebspraxis steuert die Variante nicht nur, von welcher Seite die Creator-Gebühr im Post-Graduierungs-CPMM-Pool erhoben wird — sie wählt auch das Graduierungs-Ziel-Programm (AMM v4 vs CPMM) und paart sich mit migrate_type auf der PoolState des Starts. Behandeln Sie das Feld als „Migrationsziel + Post-Graduierungs-Creator-Gebühren-Seite” zusammengefasst. Der On-Chain-Enum-Name wurde nicht umgestaltet, aber das Denken daran als MigrationTarget entspricht der Realität genauer.
Initialize
Erstellen Sie einen neuen Start.
Argumente
launch_params: {
curve_type: u8,
base_supply_max: u64,
base_supply_graduation: u64,
k: u128, // oder initial_virtual_quote_reserve für curve_type=1
open_time: u64,
quote_mint: Pubkey,
base_token_metadata: { // inline name/symbol/uri; Programm CPIs zu Metaplex
name: String,
symbol: String,
uri: String,
},
fees: {
buy_numerator: u64,
buy_denominator: u64,
sell_numerator: u64,
sell_denominator: u64,
lp_share: u64,
creator_share: u64,
protocol_share: u64,
total_share: u64,
},
post_graduation_lp_policy: u8, // 0 = Burn, 1 = Lock, 2 = ToCreator
}
Konten (gekürzt)
| # | Name | W | S | Hinweise |
|---|
| 1 | creator | W | S | Zahlt Rent + Base Mint-Erstellung. |
| 2 | launch_config | | | Protokoll-Konfigurationsbindung. |
| 3 | launch_state | W | | Neues Konto. |
| 4 | launch_authority | | | PDA. |
| 5 | base_mint | W | S | Frisches Keypair (oder PDA) — diese Anweisung initialisiert es. |
| 6 | base_vault | W | | ATA von launch_authority auf base_mint. |
| 7 | quote_mint | | | |
| 8 | quote_vault | W | | ATA von launch_authority auf quote_mint. |
| 9 | metadata | W | | Metaplex Metadaten-PDA. |
| 10 | metaplex_program | | | |
| 11 | token_program | | | Nur SPL Token. |
| 12 | system_program | | | |
| 13 | rent | | | |
Vorbedingungen
quote_mint ∈ launch_config.allowed_quote_mints.
base_supply_graduation ≤ base_supply_max.
- Gebührenparameter erfüllen
launch_config.max_*_fee_rate Checks.
open_time ≥ now − slop (SDK erzwingt ≥ now; Programm toleriert leichte Rückdatierung).
curve_type ist erkannt.
Nachbedingungen
base_mint hat supply = base_supply_max, alles in base_vault.
base_mint.mint_authority = launch_authority, freeze_authority = None.
LaunchState initialisiert mit status = Active, base_sold = 0, quote_reserve_real = 0.
quote_reserve_target berechnet aus Curve-Parametern + base_supply_graduation + buy_numerator (ungefähr).
Häufige Fehler — InvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.
Buy (kanonische Variante: BuyExactIn)
Benutzer stellt einen festen quote_in bereit; die Curve berechnet base_out.
Argumente
quote_in: u64
minimum_base_out: u64
Konten
| # | Name | W | S |
|---|
| 1 | user | W | S |
| 2 | launch_state | W | |
| 3 | launch_authority | | |
| 4 | base_vault | W | |
| 5 | quote_vault | W | |
| 6 | user_base_ata | W | |
| 7 | user_quote_ata | W | |
| 8 | base_mint | | |
| 9 | quote_mint | | |
| 10 | token_program | | |
| 11 | associated_token_program | | |
| 12 | system_program | | |
Vorbedingungen
launch_state.status == Active.
now ≥ open_time.
user_quote_ata.balance ≥ quote_in.
quote_in > 0.
Effekt
- Teilen Sie
quote_in in quote_in_after_fee und die Gebührenteile auf.
- Newton-Solve der Curve für
base_out angesichts des post-Gebühren-Quote.
require(base_out ≥ minimum_base_out) sonst Revert mit ExceededSlippage.
- Verschieben Sie
quote_in Benutzer → Vault. Verschieben Sie base_out Vault → Benutzer.
- Aktualisieren Sie
base_sold += base_out, quote_reserve_real += quote_in_after_fee × (lp_share / total_share).
- Aktualisieren Sie Gebührenzähler (
protocol_fees_quote, creator_fees_quote).
state_data.num_buys += 1.
- Wenn
quote_reserve_real ≥ quote_reserve_target nach der Aktualisierung, hängt das SDK normalerweise eine Graduate ix in derselben Transaktion an. Das Programm graduiert nicht automatisch innerhalb von Buy — eine nachfolgende Graduate ist erforderlich.
BuyExactOut
Benutzer gibt den exakten base_out an; Programm berechnet quote_in.
Argumente
base_out: u64
maximum_quote_in: u64
Gleiche Konten wie BuyExactIn. Verwendet das geschlossene quadratische Integral (oder CPMM-Inverse für curve_type 1) anstelle von Newton-Iteration.
Sell / SellExactIn / SellExactOut
Spiegel von Buy. Benutzer gibt base_in an die Curve zurück und erhält quote_out. Die Gebühr wird von quote_out abgezogen, daher erhält der Benutzer weniger als die rohen integrierten Erträge.
Vorbedingungen —
user_base_ata.balance ≥ base_in.
- Der Verkauf kann
base_sold nicht unter 0 drücken (redundant mit dem obigen, da die Buchhaltung konsistent ist).
- Start ist
Active.
Effekt — symmetrisch zu Buy. base_sold sinkt, quote_reserve_real sinkt. Gebühren fallen weiterhin an.
MigrateToAmm / MigrateToCpswap
Graduieren Sie einen Start in einen handelbaren AMM-Pool, sobald die Curve total_quote_fund_raising erreicht hat. Die beiden Anweisungen entsprechen den zwei Graduierungszielen — AMM v4 und CPMM — und nur eine von ihnen ist für jeden gegebenen Start gültig, bestimmt durch pool_state.migrate_type (bei Initialize-Zeit gesetzt).
Wer unterzeichnet
MigrateToAmm — das migrate_to_amm_wallet auf der Bindungs-GlobalConfig erfasst.
MigrateToCpswap — das migrate_to_cpswap_wallet auf der Bindungs-GlobalConfig erfasst.
Diese Wallets werden normalerweise von der von Raydium betriebenen Graduierungs-Crank gehalten; in der Praxis erfolgt die Graduierung Sekunden nachdem der Schwellwert überschritten wird, unabhängig davon, wer den finalen Kauf ausgelöst hat.
Argumente
MigrateToAmm benötigt drei (hauptsächlich OpenBook-Marktparameter, die das Programm an AMM v4 weiterleitet):
base_lot_size: u64
quote_lot_size: u64
market_vault_signer_nonce: u8
MigrateToCpswap benötigt keine.
Effekt (gemeinsam für beide)
- Stellen Sie sicher, dass
pool_state.status == Migrate (d.h. quote_reserve_target wurde erreicht). Ansonsten Revert mit PoolMigrated (Status war bereits Migrated) oder PoolFunding (noch in Finanzierung).
- Stellen Sie sicher, dass
pool_state.migrate_type der Anweisung entspricht (0 für AMM, 1 für CPMM). Ansonsten Revert mit MigrateTypeNotMatch.
- Berechnen Sie die Post-Graduierungs-Reserven:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amount
quote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- CPI in das Ziel-Programm (
AMM v4 Initialize2 oder CPMM InitializeWithPermission) mit diesen Reserven, um den Post-Graduierungs-Pool zu erstellen.
- Teilen Sie das resultierende LP pro Bindungs-
PlatformConfig.{platform_scale, creator_scale, burn_scale} (nur CPMM) — ein Teil wird an platform_nft_wallet geprägt, einer an einen Creator-NFT, der vom LP-Lock-Programm umhüllt wird, einer wird über Burn & Earn verbrannt. Für AMM v4-Graduierung wird die LP-Disposition durch AMM v4s eigene Initialisierungsparameter gesteuert.
- Widerrufen Sie
base_mint.mint_authority (auf None setzen).
- Kippen Sie
pool_state.status = Migrated, setzen Sie vesting_schedule.start_time = block_time + cliff_period.
Nachbedingungen — BuyExactIn, BuyExactOut, SellExactIn, SellExactOut werden von diesem Punkt an mit PoolMigrated ablehnen. Der resultierende AMM-Pool ist kanonisch und handelt wie alle anderen AMM v4 / CPMM Pools.
Häufige Fehler — PoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.
CollectFee
Admin-Abruf der angesammelten Handelsgebühren des Protokolls bei einem einzelnen Start.
Argumente — keine.
Konten
| # | Name | W | S | Hinweise |
|---|
| 1 | protocol_fee_owner | | S | Muss gleich global_config.protocol_fee_owner sein. |
| 2 | authority | | | PDA [b"vault_auth_seed"]; unterzeichnet die Vault-Übertragung. |
| 3 | pool_state | W | | Mutiert zu null quote_protocol_fee. |
| 4 | global_config | | | Quelle der Wahrheit für den Unterzeichner. |
| 5 | quote_vault | W | | Abgelassen von quote_protocol_fee. |
| 6 | recipient_token_account | W | | ATA von protocol_fee_owner auf quote_mint. |
| 7 | quote_mint | | | |
| 8 | token_program | | | SPL Token (das Quote Mint ist immer SPL Token). |
Effekt — Übertragen Sie pool_state.quote_protocol_fee von quote_vault zu recipient_token_account, dann nullen Sie den Zähler. Aufrufbar jederzeit nach dem ersten Kauf.
CollectMigrateFee
Admin-Abruf der Migrationsgebühr, die bei der Graduierung angesammelt wurde. Gleiche Kontenform wie CollectFee mit migrate_fee_owner als Unterzeichner (anstelle von protocol_fee_owner) und pool_state.migrate_fee als abgelasster Zähler.
ClaimCreatorFee
Pro-Creator-Abruf angesammelter Creator-Gebühren über jeden Start, den der Creator besitzt, der das gleiche Quote Mint verwendet. Leert die Pro-Creator-Gebühren-Vault, nicht die Pro-Pool.
Argumente — keine.
Konten
| # | Name | W | S | Hinweise |
|---|
| 1 | creator | W | S | Der Pool-Ersteller. |
| 2 | fee_vault_authority | | | PDA [b"creator_fee_vault_auth_seed"]. |
| 3 | creator_fee_vault | W | | PDA an Samen [creator, quote_mint]; die aggregierte Creator-Vault. |
| 4 | recipient_token_account | W | | init_if_needed; ATA von creator auf quote_mint. |
| 5 | quote_mint | | | |
| 6 | token_program | | | |
| 7 | system_program | | | Für ATA-Erstellung wenn nötig. |
| 8 | associated_token_program | | | |
Effekt — Übertragen Sie den gesamten Saldo von creator_fee_vault zu recipient_token_account. Revert mit einem größer-als-Null-Check, wenn die Vault leer ist.
Pro-Plattform-Abruf, der eine Start-Quoten-Vault direkt ablässt. Verwenden Sie dies, wenn eine Plattform ihren Anteil für einen bestimmten Start beanspruchen möchte, ohne durch die aggregierte Plattform-Vault zu gehen.
Argumente — keine.
Konten
| # | Name | W | S | Hinweise |
|---|
| 1 | platform_fee_wallet | W | S | Muss gleich platform_config.platform_fee_wallet sein. |
| 2 | authority | | | PDA [b"vault_auth_seed"]. |
| 3 | pool_state | W | | Abgelassen von pool_state.platform_fee. |
| 4 | platform_config | | | Quelle der Wahrheit für den Unterzeichner. |
| 5 | quote_vault | W | | Abgelassen. |
| 6 | recipient_token_account | W | | init_if_needed; ATA von platform_fee_wallet. |
| 7 | quote_mint | | | |
| 8 | token_program | | | |
| 9 | system_program | | | |
| 10 | associated_token_program | | | |
Effekt — Übertragen Sie pool_state.platform_fee von quote_vault zu recipient_token_account, nullen Sie den Zähler.
Pro-Plattform aggregierter Abruf. Leert die Pro-Quote-Mint-Gebühren-Vault der Plattform, die Gebühren von jedem Start sammelt, der durch die Plattform geleitet wird.
Argumente — keine.
Konten
| # | Name | W | S | Hinweise |
|---|
| 1 | platform_fee_wallet | W | S | Muss gleich platform_config.platform_fee_wallet sein. |
| 2 | fee_vault_authority | | | PDA [b"platform_fee_vault_auth_seed"]. |
| 3 | platform_config | | | |
| 4 | platform_fee_vault | W | | PDA an Samen [platform_config, quote_mint]. |
| 5 | recipient_token_account | W | | init_if_needed; ATA von platform_fee_wallet. |
| 6 | quote_mint | | | |
| 7 | token_program | | | |
| 8 | system_program | | | |
| 9 | associated_token_program | | | |
Effekt — Übertragen Sie den vollen Saldo von platform_fee_vault zu recipient_token_account. Revert, wenn die Vault leer ist.
Diese sind auf dedizierten Seiten dokumentiert, da jede ihr eigenes State-Modell hat:
State-Change-Matrix
| Anweisung | status | real_base | real_quote | Gebührenzähler | Post-State Pool |
|---|
Initialize{V2,WithToken2022} | Funding | 0 | 0 | 0 | — |
BuyExactIn(q_in) | Funding | +∆ | +∆q_after_fee | quote_protocol_fee += ∆, platform_fee += ∆ | — |
SellExactIn(b_in) | Funding | −∆ | −∆q_before_fee | (gleich) | — |
| Schwellwert erreicht | → Migrate | — | — | — | — |
MigrateToAmm / MigrateToCpswap | → Migrated | (gefroren) | (gefroren) | migrate_fee gesetzt | erstellt, LP geteilt per PlatformConfig |
CollectFee / CollectMigrateFee | beliebig | — | — | Zähler genullt | — |
ClaimCreatorFee / ClaimPlatformFee* | beliebig | — | — | leert Vault | — |
CreateVestingAccount | Funding | — | — | — | erhöht allocated_share_amount |
ClaimVestedToken | Migrated | — | — | — | leert base_vault |
Weiterführend
Quellen: