Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
PlatformConfig ist die plattformspezifische Ebene, die auf GlobalConfig aufbaut. Während GlobalConfig die protokollweiten Regeln definiert („Handelsgebühr ist 1 %, Angebot muss mindestens 10M sein, nur dieses Wallet kann graduieren”), nutzt jede Launch-Plattform — pump.fun, Raydiums eigene UI, Drittanbieter-Launchpads — PlatformConfig, um ihre Gebühr hinzuzufügen, ihren Anteil am LP nach der Graduation zu beanspruchen, einzuschränken, welche Kurvenformen ihre Launches wählen können, und ihr Branding (Name, Website, Bild) On-Chain zu präsentieren.Was es ist
EinPlatformConfig-Account verwaltet fünf übergreifende Aspekte für eine Plattform:
- Branding — Name, Website, Bildlink, alle 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 top dertrade_fee_ratedes Protokolls. Sammelt sich implatform_fee_walletder Plattform an. Begrenzt auf 100 bps durchGlobalConfig.max_share_fee_rate. - LP-Migrationsaufteilung — drei gespeicherte Ganzzahlen (
platform_scale,creator_scale,burn_scale), die sich zu1_000_000addieren. Vor dem Upgrade vom 14.08.2026 erzeugte die Creator-Scale einen separaten Creator Fee Key. Migrationen nach dem Upgrade kombinieren die ersten beiden zu einem plattformeigenen gesperrten LP-Anteil; der Rest wird verbrannt. - 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 erlaubt; andernfalls müssen Launches genau einem Eintrag entsprechen. - Global-Config-Allowlist — eine optionale Einschränkung, die ein von der Plattform erstelltes
PlatformAllowConfigfür die ausgewählteGlobalConfigerfordert.
create_platform_config im Quellcode für die kanonische Seed-Liste.)
Layout
platform_scale + creator_scale + burn_scale muss gleich 1_000_000 sein. Vor dem Upgrade vom 14.08.2026 wurde creator_scale separat gespeichert und sein Fee Key ging an den Token-Creator. Bei Migrationen nach dem Upgrade wird es zu platform_scale addiert und seine gesperrten LP-Rechte gehen stattdessen an die Plattform. Beispielhafte Ergebnisse unter der aktualisierten Logik:
(0, 100_000, 900_000)— 90 % LP verbrannt, 10 % gesperrt für die Plattform.(50_000, 100_000, 850_000)— 85 % verbrannt, 15 % gesperrt für die Plattform.(0, 0, 1_000_000)— vollständig verbrannt, keine NFT-Prägungen. Strikte „keine Insider”-Launches.
Branding-Felder
name, web und img sind Byte-Arrays, die mit Nullen bis zu ihren Größenkonstanten aufgefüllt sind. Um sie als Strings zu lesen, schneiden Sie bis zur ersten \0:
name: 64, web: 256, img: 256), damit Plattformen genug Metadaten für Explorer und Aggregatoren einbinden können, ohne Off-Chain-Speicher zu nutzen. Alles, das diese Größen überschreitet, wird bei CreatePlatformConfig mit InvalidInput zurückgewiesen.
Gebührenmechanik
Ein Swap auf einer Kurve, die an einePlatformConfig gebunden ist, erhebt drei gestaffelte Gebühren:
trade_feesammelt sich beimprotocol_fee_ownerdes Protokolls an (beansprucht viaCollectFee).platform_feesammelt sich in einem plattformspezifischen Vault an (beansprucht viaClaimPlatformFeeoderClaimPlatformFeeFromVault; sieheinstructions).creator_feesammelt sich in einem Creator-spezifischen Vault an, der durch den Public Key des Creators + Quote Mint gekennzeichnet ist (beansprucht viaClaimCreatorFee).
creator_fee_rate ist begrenzt durch MAX_CREATOR_FEE_RATE = 5000 (50 bps). fee_rate (die Plattformgebühr) ist begrenzt auf 10000 (100 bps) durch GlobalConfig.max_share_fee_rate.
NFT-Migrationsaufteilung (nur CPMM)
Wenn ein Launch zu CPMM graduiert, teilt die Migrationsanweisung die vomCPMM::InitializeWithPermission geprägten LP-Token auf zwei Arten auf:
lp_to_platform ungleich Null ist, wickelt das LP-Lock-Programm es in einen Fee Key NFT ein, der von platform_nft_wallet besessen wird. Dies ersetzt das Verhalten vor dem Upgrade, das separate Platform- und Creator Fee Keys erstellte. Fee Keys, die von Migrationen vor dem Upgrade erstellt wurden, bleiben unverändert. Dieses LP-Gebührenrecht ist separat von CPMM-Creator-Gebühren, die durch platform_cp_creator kontrolliert werden.
Der Burn-Anteil wird direkt verbrannt, sodass kein Account ihn abheben oder die LP-Gebühren, die dieser Anteil darstellt, beanspruchen kann.
Bestehende Launches mit gespeichertem migrate_type = 0 können weiterhin den Legacy-AMM-v4-Pfad nutzen. Neue Initialisierungen lehnen diesen Migrationstyp ab.
Kurvenparameter-Whitelist
curve_params: Vec<PlatformCurveParam> ist der Mechanismus der Plattform, um einzuschränken, welche Kurvenformen 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 Launches genau einem Eintrag entsprechen.
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” — gleichbedeutend mit dem Verhalten einer leeren Whitelist.
Der Matching-Algorithmus bei Initialize:
- Filtern Sie
curve_paramszu Einträgen, derenglobal_configder vom Launch gewähltenGlobalConfigentspricht. - Wenn die gefilterte Liste leer ist, erlauben Sie beliebige Parameter (die Plattform hat nichts für diese
GlobalConfigauf die Whitelist gesetzt). - Wenn jeder Eintrag in der gefilterten Liste
all_is_invalid()hat (jedes Feld ist der Wildcard), erlauben Sie beliebige Parameter. - Andernfalls iterieren Sie Einträge; für jeden Eintrag überprüfen Sie die Parameter des Launches gegen jedes Nicht-Wildcard-Feld. Wenn alle Nicht-Wildcard-Felder übereinstimmen, akzeptieren und zurückgeben.
- Wenn kein Eintrag passte, revert mit
InvalidInput.
MAX_CURVE_PARAMS = 10 begrenzt die Whitelist-Größe.
PlatformAllowConfig — Einschränkung einer Plattform
Jede Plattform entscheidet, ob sie einschränken möchte, welche GlobalConfig-Accounts ihre Launches verwenden dürfen. Setzen Sie restrict_global_config mit UpdatePlatformConfig::RestrictGlobalConfig(0 | 1).
[b"platform_allow_config", platform_config, global_config].
Der Plattform-Admin erstellt oder schließt einen Account pro erlaubtem Paar via CreatePlatformAllowConfig und ClosePlatformAllowConfig. Wenn die Einschränkung 1 ist, sucht die Initialisierung in remaining_accounts nach der erwarteten PDA und lehnt einen fehlenden Account mit NotEnoughRemainingAccounts ab. Wenn die Einschränkung 0 ist, ist kein Allow-Account erforderlich.
Der frühere, vom Protokoll-Admin verwaltete PlatformGlobalAccess-Account und seine Create/Close-Anweisungen sind veraltet. Bestehende PlatformConfig- und GlobalConfig-Größen ändern sich nicht, aber Decoder müssen das alte globale Flag durch das neue Plattform-Flag ersetzen. Alte Access-PDAs werden durch die neue Überprüfung nicht verbraucht.
Read-Pfad
PoolState.platform_config direkt auf die ursprüngliche PlatformConfig — rufen Sie sie einmal ab und cachen Sie das Branding.
Update-Pfad
Wallet-Rotationen (
platform_fee_wallet, platform_nft_wallet, platform_vesting_wallet, platform_cp_creator, transfer_fee_extension_auth, cpswap_config) gehen alle durch UpdatePlatformConfig. Lesen Sie die Dispatch-Tabelle update_platform_config im Quellcode für die genauen param-Codes.
Häufige Fallstricke
- Whitelist-Sentinels falsch gesetzt. Ein
BondingCurveParammittotal_locked_amount = 0ist nicht ein Wildcard — es passt zu Launches, die sich explizit gegen Vesting entscheiden. Der Wildcard für dieses Feld istu64::MAX. Die gleiche Falle existiert fürcliff_periodundunlock_period. Verwenden Sieclear()(das das Programm bereitstellt), um Sentinels korrekt zu setzen. - NFT-Aufteilungs-Rundung. Die drei Scales müssen sich genau zu
1_000_000addieren. Off-by-One-Fehler beiCreatePlatformConfigrevert; Off-by-One zur Laufzeit würde eine zusätzliche LP-Einheit prägen oder verbrennen, was die strikte Gleichheitsprüfung verhindern soll. - Plattform-Vesting-Doppelzuweisung. Wenn
platform_vesting_scale > 0, muss die PlattformCreatePlatformVestingAccounteinmal aufrufen, nachdem die Fundraising des Launches endet; wenn sie es vergisst, bleibt dieser Anteil unzugewiesen und inaktiv für immer (dastotal_locked_amount-Budget des Launches wird verbraucht, aber die Plattform beansprucht es nie). platform_cp_creator-Mehrdeutigkeit. Wenn aufPubkey::default()gesetzt, wird der Launch-Creator alspool_creatordes Post-Graduation-CPMM-Pools aufgezeichnet; wenn auf einen echten Key gesetzt, wird stattdessen dieser Key aufgezeichnet. Dies bestimmt den Empfänger von Post-Graduation-CPMM-Creator-Gebühren und wer den ursprünglichenCPMM::CollectCreatorFee-Pfad signieren kann. Der erlaubnislose Sammlungspfad zahlt immer noch die kanonischen ATAs dieses aufgezeichneten Keys. Entscheiden Sie bei der Erstellung der Plattformkonfiguration, welches Modell Sie möchten.- Einschränkung ohne Allow-Account. Das Aktivieren von
restrict_global_config, bevor Sie das erforderlichePlatformAllowConfigerstellen, blockiert neue Launches, die diese Config wählen.
Verweise
products/launchlab/global-config— protokollseitige Regeln, die ein Launch erfüllen muss.products/launchlab/vesting—platform_vesting_scale-Mechanik.products/launchlab/creator-fees— Creator-Gebühren versus Plattform Fee Key-Rechte.products/launchlab/platforms— Plattform-Integrator-Anleitung.
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_allow_config.rs—PlatformAllowConfig.raydium-launch/programs/launchpad/src/lib.rs— Plattformkonfiguration und Allow-Config-Einstiegspunkte.

