Zum Hauptinhalt springen
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Versionsangaben.
  • 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 entsprechen Dateien in raydium-sdk-V2-demo/src/launchpad. Das Bootstrap folgt der Datei config.ts.template des Demo-Repos:

Einen Launch erstellen

Quelle: src/launchpad/createMint.ts (und createBonkMintApi.ts für die API-gesteuerte Bonk-Variante)
Anmerkungen:
  • initialK ist der Skalierungsfaktor für die quadratische Kurve. Stellen Sie ihn ein, um einen bestimmten Eröffnungs-CPMM-Preis bei der Graduation anzusteuern. Siehe products/launchlab/bonding-curve für die Herleitung.
  • Das SDK kümmert sich um die Erstellung des Base Mint, der Metadata-PDA und beider Vaults in einer einzigen Transaktion. Sie kann 1232 Bytes übersteigen, wenn die Metadata-URI lang ist. In diesem Fall teilt das SDK die Transaktion in zwei auf.
  • Nach Initialize ist der Launch nicht handelbar, bis openTime erreicht ist. Setzen Sie openTime ein oder zwei Minuten in die Zukunft, um Front-Runnern weniger Chancen zu geben.

Launch-Status abrufen

getLaunchById gibt den dekodierten LaunchState sowie die berechnete „Fortschrittsfraktion zur Graduation” 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-Form (curve_type 1) wider. Verwenden Sie sie, um das Feld „Sie erhalten” in der UI zu füllen.

Kauf — exakte Base raus

Nützlich für „Kauf genau X Token”-UIs. Lehnt mit ExceededSlippage ab, wenn sich die Kurve so sehr verschoben hat, dass die Quote-Anforderung nun maximumQuoteIn übersteigt.

Verkauf

Quelle: src/launchpad/sell.ts
Der Verkaufspfad der Kurve ist symmetrisch zum Kaufpfad: Die Reduzierung 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 zurück.

Automatische Graduation beim Kauf mit Schwellwertüberschreitung

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

Manuelle Graduate

Wenn autoGraduate ausgeschaltet war oder die Schwellwertüberschreitungs-Transaktion fehlgeschlagen ist, können Sie die Graduation separat ausführen:
Lehnt mit NotAtThreshold ab, wenn quote_reserve_real < quote_reserve_target zum Zeitpunkt der Einreichung. Retry-sicher — ein zweiter Graduate-Versuch nach Erfolg lehnt mit NotActive ab.

Creator Fees einziehen

Quelle: src/launchpad/claimCreatorFee.ts (einzelner Mint) und collectAllCreatorFees.ts (gesammelt)
Überträgt den aufgelaufenen Creator-Fee-Zähler-Quote-Betrag zum ATA des Creators auf dem Quote Mint. Kann vor oder nach der Graduation aufgerufen werden; verwenden Sie es regelmäßig, statt auf einen großen Kontostand zu warten.

Einen Launch durch seinen Lebenszyklus verfolgen

Zusammengefasst könnte ein Überwachungsskript so aussehen:

Rust CPI

Das Aufrufen von LaunchLab aus Ihrem eigenen Anchor-Programm ist selten (die meisten Launch-Integrationen sind nur TypeScript-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 generalisierte Vorlage, sobald diese Website gefüllt ist.

Fallstricke

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

Nächste Schritte

Quellen: