Skip to main content
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Versionsbanner.
  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Cluster: Solana mainnet-beta
  • Program ID: siehe reference/program-addresses
  • Zuletzt überprüft: 2026-04
Fixieren Sie die SDK-Version in Ihrer package.json. Die Bonding-Curve-Schnittstelle hat sich zwischen Minor-Releases weiterentwickelt.

Setup

Die Demos hier spiegeln Dateien in raydium-sdk-V2-demo/src/launchpad wider. Das Bootstrap folgt der config.ts.template des Demo-Repos:

Einen Launch erstellen

Quelle: src/launchpad/createMint.ts (und createBonkMintApi.ts für die API-gesteuerte Bonk-Variante)
Hinweise:
  • initialK ist der Skalierungsfaktor für die quadratische Kurve. Passen Sie ihn an, um einen bestimmten CPMM-Eröffnungspreis bei der Graduation anzusteuern. Siehe products/launchlab/bonding-curve für die Herleitung.
  • Das SDK erstellt den Base-Mint, die Metadaten-PDA und beide Vaults in einer einzigen Transaktion. Es kann 1232 Bytes überschreiten, wenn der Metadaten-URI lang ist; in diesem Fall teilt das SDK in zwei Transaktionen auf.
  • Nach Initialize ist der Launch nicht handelbar, bis openTime erreicht ist. Setzen Sie openTime eine oder zwei Minuten in die Zukunft, um Front-Runnern weniger Chancen zu geben, den ersten Kauf zu schnappen.

Launch-Status abrufen

getLaunchById gibt den dekodierten LaunchState plus den berechneten „Fortschritt zur Graduation”-Bruch als Decimal zurück.

Kauf — exakte Quote rein

Quelle: src/launchpad/buy.ts
computeBuyBase spiegelt den On-Chain-Newton-Solver (quadratische Kurve) oder die geschlossene CPMM-Inverse (curve_type 1) wider. Verwenden Sie es, um das UI-Feld „Sie erhalten” zu füllen.

Kauf — exakte Base raus

Nützlich für „Kaufe genau X Token”-UIs. Lehnt mit ExceededSlippage ab, wenn sich die Kurve so weit bewegt hat, dass die Quote-Anforderung jetzt maximumQuoteIn überschreitet.

Verkauf

Quelle: src/launchpad/sell.ts
Der Verkaufspfad der Kurve ist symmetrisch zum Kaufpfad: Das Reduzieren von base_sold um baseIn gibt quote_out gleich der integrierten Fläche unter der Kurve zwischen base_sold − baseIn und base_sold, minus der Verkaufsgebühr.

Automatische Graduation beim Schwellenwert-Kauf

Das SDK verkettete eine Graduate-Anweisung in der buy*-Transaktion, wenn es erkennt, dass der Post-Buy-Status den Schwellenwert überschreitet:
Da Graduate erlaubnisfrei ist, kann jeder (einschließlich eines MEV-Bots) versuchen, die erste Graduate nach dem Schwellenwertüberschreitung zu landen — typischerweise Sekunden später, nicht Minuten. Der Erste zahlt nur die Miete für die CPMM-Pool-Konten; sie erhalten keinen anderen Vorteil.

Manuelle Graduate

Wenn autoGraduate ausgeschaltet war oder die Schwellenwert-Überschreitungs-Transaktion fehlgeschlagen ist, können Sie die Graduation separat auslösen:
Wird mit NotAtThreshold zurückgewiesen, wenn quote_reserve_real < quote_reserve_target zum Zeitpunkt der Einreichung. Wiederholung sicher — ein zweiter Graduate-Versuch nach Erfolg wird mit NotActive zurückgewiesen.

Creator-Gebühren einziehen

Quelle: src/launchpad/claimCreatorFee.ts (einzelner Mint) und collectAllCreatorFees.ts (Batch)
Überträgt den aufgelaufenen Creator-Gebühren-Zähler-Quote-Betrag auf das ATA des Creators auf dem Quote-Mint. Kann vor oder nach der Graduation aufgerufen werden; verwenden Sie es regelmäßig, anstatt auf einen riesigen Saldo zu warten.

Einen Launch durch seinen Lebenszyklus verfolgen

Alles zusammen könnte ein Überwachungsskript so aussehen:

Konfigurationen und Pools über gRPC überwachen

Quelle: src/grpc/launchpadPoolInfo.ts Abonniert das LaunchLab-Programm über Yellowstone gRPC und protokolliert jedes GlobalConfig- und PoolState-Update mit dem Token-Programm jedes Mints. Zwei datasize-Filter auf einem accounts-Abonnement trennen die beiden Kontotypen, sodass ein einzelner Stream beide abdeckt. Die Demo ist die kürzeste korrekte Referenz zum Klassifizieren der Mints eines Launches, was die Token-2022-Quote-Mint-Veröffentlichung notwendig macht:
  • Pools werden direkt aus PoolState.token_program_flag klassifiziert, wobei Bit0 für den Base-Mint und Bit1 für den Quote-Mint dekodiert werden, ohne dass ein Mint-Abruf erforderlich ist. Das Testen des gesamten Bytes gegen 0 — was ausreichend war, während Quote-Mints nur Legacy waren — missinterpretiert einen Legacy-Base-Mint als Token-2022, wenn der Quote-Mint Token-2022 ist.
  • Configs können auf diese Weise nicht klassifiziert werden: Ein GlobalConfig speichert die Adresse seines Quote-Mints und kein Programm-Flag, daher liest die Demo das Owner-Feld des Mint-Kontos einmal und speichert es pro Mint.
Es führt auch eine Gegenprüfung zwischen den beiden durch, was eine nützliche Assertion ist, um in Ihrem eigenen Indexer zu behalten. Beachten Sie, dass „create” versus „update” aus den eigenen Caches der Demo abgeleitet wird, die beim Start aus getProgramAccounts gespeichert werden; wenn diese Seeding deaktiviert ist, lesen Sie „create” als „zuerst auf diesem Stream gesehen”. gRPC-Zugriff ist nicht Teil der öffentlichen RPC-Oberfläche — siehe die src/grpc/README.md des Demo-Repos.

Rust CPI

Das Aufrufen von LaunchLab aus Ihrem eigenen Anchor-Programm ist selten (die meisten Launch-Integrationen sind nur TS-seitig). Falls Sie dies tun, wird das Programm mit einer Anchor-Crate raydium_launchlab mit cpi::accounts::Buy, cpi::accounts::Sell usw. ausgeliefert — das Muster spiegelt die CPMM-/CLMM-CPI-Beispiele wider. Siehe sdk-api/rust-cpi für eine verallgemeinerte Vorlage, sobald diese Website gefüllt ist.

Fallstricke

  • Fee-Split-Arithmetik Off-by-One. Wenn total_share nicht genau lp_share + creator_share + protocol_share ist, wird Initialize mit InvalidFeeShares zurückgewiesen. Setzen Sie totalShare gleich der Summe.
  • Verwendung eines nicht zulässigen Quote-Mints. launch_config.allowed_quote_mints ist eine feste Liste; die Übergabe eines anderen Mints wird zurückgewiesen. Überprüfen Sie zuerst mit raydium.launchpad.getConfig().
  • Metadatengröße. Lange uri-Strings drücken die Metaplex-CPI über das Budget. Halten Sie uri unter ~200 Zeichen — die meisten CDN-gehosteten JSON-Metadaten passen leicht.
  • Graduations-Rennen. Automatisierte Bots überwachen quote_reserve_real und front-run Graduate innerhalb eines oder zwei Slots nach dem Schwellenwertüberschreitung. Dies ist harmlos — es kostet sie nur Miete — aber es bedeutet, dass Ihre UI status-Übergänge als schnelle Ereignisse behandeln sollte.

Wo es weitergeht

Quellen: