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 →
PlatformConfig ist die Plattform-Ebenen-Überlagerung auf [GlobalConfig](/de/products/launchlab/global-config). Während GlobalConfig die protokollweiten Regeln definiert („Handelsgebühr beträgt 1 %, das Angebot muss mindestens 10 M betragen, nur diese Wallet kann graduiert werden”), ist PlatformConfig das, was jede Launch-Plattform — pump.fun, Raydiums eigene UI, Drittanbieter-Launchpads — verwendet, um ihre Gebühr hinzuzufügen, ihren Anteil am LP nach der Graduierung zu beanspruchen, einzuschränken, welche Kurvenstapel ihre Launches wählen können, und ihr Branding (Name, Website, Bild) on-chain anzuzeigen.Was es ist
EinPlatformConfig-Konto verwaltet vier übergreifende Anliegen einer Plattform:
- Branding — Name, Website, Bildlink, alles inline gespeichert, damit jeder Explorer oder Aggregator die Plattform anzeigen kann, die einen Token gestartet hat.
- Plattformgebühr — eine zusätzliche Handelsgebühr (
fee_rate) auf der Protokoll-trade_fee_rate. Wird auf dieplatform_fee_walletder Plattform angerechnet. Gedeckelt bei 100 bps durchGlobalConfig.max_share_fee_rate. - NFT-Migrationsaufteilung — drei Ganzzahlen (
platform_scale,creator_scale,burn_scale), die sich zuRATE_DENOMINATOR_VALUE = 1_000_000summieren und das LP nach der Graduierung in einen an die Platform-NFT-Wallet geprägten Anteil, einen an die Creator-NFT-Wallet und einen verbrannten Anteil (Burn & Earn) aufteilen. Nur sinnvoll, wenn die Graduierung CPMM als Ziel hat (migrate_type = 1). - Kurvenparameter-Whitelist — ein
Vec<PlatformCurveParam>, das genau auflistet, welche(supply, total_base_sell, total_quote_fund_raising, migrate_type, migrate_cpmm_fee_on, vesting_params...)-Kombinationen auf dieser Plattform zulässig sind. Wenn der Vektor leer ist oder alle Einträge ungültig sind, ist jede Kombination zulässig; andernfalls müssen Launches genau mit einem der Einträge übereinstimmen.
create_platform_config in der Quelle für die kanonische Seed-Liste.)
Layout
platform_scale + creator_scale + burn_scale muss 1_000_000 entsprechen (validiert durch MigrateNftInfo::check). Häufige Aufteilungen in der Produktion:
(0, 100_000, 900_000)— 90 % LP verbrannt, 10 % an Creator. Standard-Pump-Style-Fair-Launch.(50_000, 100_000, 850_000)— kleiner Platform-Anteil (5 %), 10 % Creator, 85 % verbrannt.(0, 0, 1_000_000)— vollständig verbrannt, keine NFT-Prägung. Strikt „Keine-Insider”-Launches.
Branding-Felder
name, web und img sind Inline-Byte-Arrays, die mit Nullen bis zu ihren Größenkonstanten aufgefüllt sind. Um sie als Strings zu lesen, schneiden Sie bis zum ersten \0:
name: 64, web: 256, img: 256), damit Plattformen genug Metadaten für Explorer und Aggregatoren enthalten können, ohne Off-Chain-Speicher zu nutzen. Alles, was diese Größen überschreitet, führt zu einem Revert bei CreatePlatformConfig mit InvalidInput.
Gebühren-Mechanik
Ein Swap auf einer Kurve, die an einePlatformConfig gebunden ist, berechnet drei gestaffelte Gebühren:
trade_feewird auf denprotocol_fee_ownerdes Protokolls angerechnet (eingefordert überCollectFee).platform_feewird auf einen Platform-spezifischen Tresor angerechnet (eingefordert überClaimPlatformFeeoderClaimPlatformFeeFromVault; sieheinstructions).creator_feewird auf einen Creator-spezifischen Tresor angerechnet, der mit der Pubkey des Creators + Quote-Mint verschlüsselt ist (eingefordert überClaimCreatorFee).
creator_fee_rate ist auf MAX_CREATOR_FEE_RATE = 5000 (50 bps) gedeckelt. fee_rate (die Platform-Gebühr) ist auf 10000 (100 bps) durch GlobalConfig.max_share_fee_rate gedeckelt.
NFT-Migrationsaufteilung (nur CPMM)
Wenn ein Launch zu CPMM graduiert (migrate_type = 1, unterzeichnet von migrate_to_cpswap_wallet), teilt die Migrations-Instruktion die vom CPMM::InitializeWithPermission geprägten LP-Token drei Wege:
LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE) umhüllt — der Inhaber des NFT ist berechtigt, anfallende CPMM-Gebühren unbegrenzt einzufordern, ohne die zugrunde liegende Liquidität abheben zu können. Siehe products/launchlab/creator-fees für den Fee-Key-Fluss nach der Graduierung.
Der Burn-Anteil wird mit is_burn = true an das Lock-Programm gesendet, sodass die LP-Token dauerhaft unzugänglich sind — sie sichern den Preisboden des Pools, ohne jemals Gebühren an jemanden zurückzuzahlen.
Wenn migrate_type = 0 (graduiert zu AMM v4), werden die NFT-Split-Felder ignoriert und das gesamte LP wird gemäß einem separaten AMM-v4-seitigen Fluss gesperrt/verbrannt.
Kurvenparameter-Whitelist
curve_params: Vec<PlatformCurveParam> ist der Mechanismus der Plattform, um einzuschränken, welche Kurvenstapel ihre Launches wählen können. Wenn der Vektor nicht leer ist und mindestens ein Eintrag gültig ist, erzwingt das Programm bei Initialize, dass die Parameter des Launch mit mindestens einem Eintrag genau übereinstimmen.
u64::MAX für die u64-Felder, u8::MAX für die u8-Felder, 0 für die Supply-/Sell-/Fundraising-Felder. Ein BondingCurveParam mit allen Sentinels ist „Alles erlauben” — equivalent zum Verhalten der leeren Whitelist.
Der Matching-Algorithmus bei Initialize:
- Filtern Sie
curve_paramszu Einträgen, derenglobal_configdemGlobalConfigdes Launch entspricht. - Wenn die gefilterte Liste leer ist, erlauben Sie beliebige Parameter (die Plattform hat für diese
GlobalConfignichts auf die Whitelist gesetzt). - Wenn jeder Eintrag in der gefilterten Liste
all_is_invalid()hat (jedes Feld ist das Wildcard), erlauben Sie beliebige Parameter. - Iterieren Sie andernfalls Einträge; für jeden Eintrag überprüfen Sie die Parameter des Launch gegen jedes Nicht-Wildcard-Feld. Wenn alle Nicht-Wildcard-Felder übereinstimmen, akzeptieren und zurückgeben.
- Wenn kein Eintrag übereinstimmte, Revert mit
InvalidInput.
MAX_CURVE_PARAMS = 10 deckelt die Whitelist-Größe.
PlatformGlobalAccess — Eine Plattform autorisieren
Wenn ein GlobalConfig requires_platform_auth = 1 hat, muss jedes Initialize dagegen einen PlatformGlobalAccess-PDA enthalten, der beweist, dass die Plattform vorautorisiert wurde:
[b"platform_global_access", global_config, platform_config].
Der Protokoll-Admin erstellt einen pro (GlobalConfig, PlatformConfig)-Paar über CreatePlatformGlobalAccess und widerruft ihn über ClosePlatformGlobalAccess. Ohne dieses Konto kann ein Launch nicht von dieser gated Platform aus an diesen GlobalConfig gebunden werden.
Read-Pfad
PoolState.platform_config direkt auf den ursprünglichen PlatformConfig — rufen Sie ihn einmal auf und cachen Sie das Branding.
Update-Pfad
| Instruktion | Wer unterzeichnet | Was ändert sich |
|---|---|---|
CreatePlatformConfig | Plattform-Admin (einmalig) | Initialisiert das Konto mit PlatformParams. |
UpdatePlatformConfig | Plattform-Admin | Generischer Dispatch gekeymed nach param: u8; mutiert ein Feld pro Aufruf. Branding-Felder, Gebührensätze, Vesting-Wallet und die verschiedenen Wallets sind alle durch diese setzbar. |
UpdatePlatformCurveParam | Plattform-Admin | Einen PlatformCurveParam-Eintrag nach (global_config, index) hinzufügen oder ersetzen. |
RemovePlatformCurveParam | Plattform-Admin | Einen Eintrag löschen (setzt ihn auf all-sentinel = wildcard). |
ClaimPlatformFee | platform_fee_wallet | Sweep die Platform-Gebühr pro Pool aus PoolState.quote_vault. |
ClaimPlatformFeeFromVault | platform_fee_wallet | Sweep den Platform-spezifischen Gebühren-Tresor (PDA bei [platform_config, quote_mint]). |
platform_fee_wallet, platform_nft_wallet, platform_vesting_wallet, platform_cp_creator, transfer_fee_extension_auth, cpswap_config) erfolgen alle über UpdatePlatformConfig. Lesen Sie die update_platform_config-Dispatch-Tabelle der Quelle für die genauen param-Codes.
Häufige Fallstricke
- Whitelist-Sentinels falsch gesetzt. Ein
BondingCurveParammittotal_locked_amount = 0ist nicht ein Wildcard — es passt auf Launches, die sich explizit gegen Vesting entscheiden. Das Wildcard für dieses Feld istu64::MAX. Der gleiche Fallstrick existiert fürcliff_periodundunlock_period. Nutzen Sieclear()(das das Programm offenlegt), um Sentinels korrekt zu setzen. - NFT-Split-Rundung. Die drei Scales müssen sich zu genau
1_000_000summieren. Off-by-One-Fehler beiCreatePlatformConfigführen zu Revert; Off-by-One zur Laufzeit würde eine extra LP-Einheit prägen oder verbrennen, was die strikte Gleichheitsprüfung verhindern soll. - Platform-Vesting-Doppelzuweisung. Wenn
platform_vesting_scale > 0, muss die PlattformCreatePlatformVestingAccounteinmal aufrufen, nachdem das Fundraising des Launch endet; wenn sie das vergisst, bleibt dieser Anteil unzugewiesen und inaktiv auf Dauer (dastotal_locked_amount-Budget des Launch wird verbraucht, aber die Plattform fordert ihn nie ein). platform_cp_creator-Mehrdeutigkeit. Wenn aufPubkey::default()gesetzt, wird der Launch-Creator alspool_creatordes Post-Graduierungs-CPMM-Pools aufgezeichnet; wenn auf einen echten Schlüssel gesetzt, wird dieser Schlüssel stattdessen aufgezeichnet. Dies beeinflusst, wer späterCPMM::CollectCreatorFeeaufrufen kann. Entscheiden Sie sich bei der Erstellung der Platform-Config, welches Modell Sie mögen.
Zeiger
products/launchlab/global-config— Protokoll-seitige Regeln, die ein Launch erfüllen muss.products/launchlab/vesting—platform_vesting_scale-Mechanik.products/launchlab/creator-fees— Fee-Key NFT, Burn & Earn.products/launchlab/platforms— Plattform-Integrator-How-To.
raydium-launch/programs/launchpad/src/states/platform_config.rs—PlatformConfig,PlatformParams,MigrateNftInfo,PlatformCurveParam,BondingCurveParam,is_valid_curve_param.raydium-launch/programs/launchpad/src/states/platform_global_access.rs—PlatformGlobalAccess.raydium-launch/programs/launchpad/src/lib.rs—create_platform_config,update_platform_config,update_platform_curve_param,remove_platform_curve_param,create_platform_global_access,close_platform_global_access,claim_platform_fee,claim_platform_fee_from_vault.


