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 →
Versionsbanner. Diese Seite dokumentiert
@raydium-io/raydium-sdk-v2@0.2.42-alpha, die Version, die für alle Code-Beispiele dieser Website überprüft wurde (2026-04). Das SDK ist noch nicht 1.0, und die Typ-Oberfläche hat sich zwischen Versionen verändert – fixieren Sie Ihre Version.Installation
.d.ts neben dem JS-Artefakt ausgeliefert. Minimale Toolchain: Node 18+, TypeScript 5.0+, moduleResolution: "bundler" oder "node16".
Initialisierung
Der Einstiegspunkt istRaydium.load:
Raydium.load ist async, weil beim Start eine kleine /config-Payload von api-v3.raydium.io abgerufen wird (mit aktuellen AmmConfig-Konten, Gebührensätzen usw.). Setzen Sie disableFeatureCheck: true in Offline-Umgebungen; Sie müssen diese Werte dann manuell an einige Builder übergeben.
Die vier Modulfassaden
Nach dem Laden zeigt dasraydium-Objekt vier Modulfassaden, eine pro Produktoberfläche:
trade und token als unterstützende Dienstprogramme fungieren.)
Transaktions-Builder
Jede mutierende Funktion gibt einen Builder zurück, anstatt sofort auszuführen:execute— eine Komfortfunktion, die signiert und sendet. Äquivalent zubuilder.execute.builder— dieTxBuilder-Instanz mit allen angesammelten Anweisungen und Unterzeichnern. Rufen Sie.build()auf, um einVersionedTransaction[]zu erhalten; nützlich, wenn Sie Ihre eigenen Anweisungen einfügen oder mit externen Unterzeichnern signieren müssen.transaction/innerTransactions— die rohen Anweisungs-Arrays. Verwenden Sie diese beim Erstellen zusammengesetzter Multi-Program-Transaktionen.extInfo— produktspezifische Extras. Zum Beispiel gibtcreatePoolextInfo.poolIdzurück;createLaunchpadgibt die neue Launch-Status-PDA zurück.
txVersion steuert Legacy- vs. V0-Transaktionsformat. V0 (Address Lookup Tables) ist die Standard-Empfehlung – es ermöglicht größere Swaps in einer einzelnen Transaktion.
Warum asynchrone Builder?
Fast jeder Builder ruft intern On-Chain-Status ab: Pool-Infos (für Quotes), Token-Programm-Besitz (für Token-2022 vs. SPL-Routing), Konto-Mietbefreiung (für ATA-Erstellung) usw. Das SDK zwischenspeichert aggressiv, aber der erste Aufruf für einen neuen Pool beinhaltet RPC-Roundtrips. Halten Sie eine lang lebenderaydium-Instanz, um erneutes Abrufen zu vermeiden.
CLMM-Moduls-Erweiterungen (neueste Version)
Die CLMM-Fassade erhielt Oberflächen für die neuen dynamischen Gebühren-, einseitigen Gebühren- und Limit-Order-Funktionen:raydium.clmm.createCustomizablePool— Obermenge voncreatePool, diecollectFeeOn,enableDynamicFeeunddynamicFeeConfigIdakzeptiert. Verwenden Sie dies für alle neuen Pools, die die neuen Schalter benötigen; das klassischecreatePoolfunktioniert weiterhin für Pools mit Standardgebühren.raydium.clmm.openLimitOrder— öffnet eine Limit-Order mit einzelnem Tick auf einem Pool, der diese unterstützt. NimmtpoolInfo,poolKeys,limitOrderConfig(von/main/clmm-limit-order-config),inputMint,inputAmountund den Ziel-tick.raydium.clmm.increaseLimitOrder/decreaseLimitOrder— passt den unfüllten Teil einer bestehenden Order an. Das Verringern bricht bei einer vollständig gefüllten Order mitInvalidOrderPhaseab.raydium.clmm.settleLimitOrder/settleAllLimitOrder— wischt gefüllte Ausgabe zur ATA des Eigentümers. Entweder der Besitzer der Order oder derlimit_order_admin-Keeper des Pools können diese aufrufen.raydium.clmm.closeLimitOrder/closeAllLimitOrder— schließt vollständig eingezogene Orders, um Miete zurückzubekommen.raydium.api.getClmmDynamicConfigs()/getClmmLimitOrderConfigs()— REST-Helfer, die die neuen Endpunkte/main/clmm-dynamic-configund/main/clmm-limit-order-configaufrufen.
utils/ nach libraries/. Code, der von @raydium-io/raydium-sdk-v2/utils/... importiert, sollte zu @raydium-io/raydium-sdk-v2/libraries/... wechseln. Das Top-Level-Paket-Barrel ist unverändert, daher sehen die meisten Benutzer die Umbenennung nie.
Umfassende TypeScript-Walkthroughs sind unter products/clmm/code-demos verfügbar.
Häufige Anfängerfehler
1. Cluster-Mismatch
Die Startup-Konfiguration des SDK ist clusterspezifisch. Das Mischen voncluster: "mainnet" mit einer Devnet-Connection führt zu stillschweigendem Fehlrouting: Das SDK quoted gegen Mainnet-AmmConfig, sendet aber zu Devnet. Übergeben Sie immer beides.
2. Vergessen, ATAs vorher zu erstellen
Bei der ersten Interaktion mit einem Mint existiert das Associated Token Account des Benutzers möglicherweise nicht. Das SDK fügt automatisch eineAssociatedTokenAccount::create-Anweisung vorne ein, wenn es ein fehlendes ATA erkennt, was eine kleine Mietgebühr kostet. Wenn Ihre Brieftasche wenig SOL hat, schlägt dies lautlos fehl. Überprüfen und finanzieren Sie, bevor Sie es erneut versuchen.
3. Veraltetes poolInfo
poolInfo ist ein zwischengespeichertes Snapshot. Wenn sich der Pool-Status seit dem Abrufen geändert hat (ein großer Trade hat den Preis verschoben, beispielsweise), kann minAmountOut des Swaps gegen den alten Status berechnet werden und unter dem On-Chain-Amount-Out landen, was zu einer Reversion führt. Rufen Sie poolInfo unmittelbar vor der Erstellung hochwertiger Transaktionen erneut ab, oder verwenden Sie das computeAmountOut des SDK, das Reserven erneut abfragt.
4. Prioritätsgebühren
Das SDK fügt Compute-Unit-Preise standardmäßig nicht hinzu. In Hochlast-Fenster (neue Pool-Starts, Meme-Coin-Events) bedeutet dies, dass Ihre Transaktion mit vielen anderen konkurriert und möglicherweise nicht landet. Stellen Sie eine explizitecomputeBudgetConfig bereit:
integration-guides/priority-fee-tuning für Sizing-Anleitung.
5. Slippage-Toleranz muss dem Pool-Typ entsprechen
CPMM und AMM v4 verwenden CPMM-Mathematik (niedrige Auswirkung bei normalen Trades). CLMM ist stückweise (Auswirkung springt bei Tick-Übergängen). Wenn Sie eine 0,5%-Slippage-Toleranz aus einem CPMM-Beispiel in einen CLMM-Swap kopieren, der mehrere Ticks kreuzt, wird die Transaktion wahrscheinlich revertiert. DascomputeAmountOut des SDK gibt priceImpact zurück; dimensionieren Sie Ihre Toleranz darüber hinaus.
6. BN vs number
Alle Betragfelder im SDK sind bn.js-BN-Instanzen – nie JavaScript number. Das Konvertieren von Beträgen über .toNumber() schneidet stillschweigend bei 2^53 ab; für Werte über ~9 Billiarden (nicht ungewöhnlich bei 9-Dezimal-Mints) ergibt dies das falsche Ergebnis. Halten Sie alles in BN, bis das finale UI-Rendering.
Versionierungspolitik
@raydium-io/raydium-sdk-v2ist das einzige SDK, das Raydium verwaltet. Alle Dokumentationen, Demos und Integrationsleitfäden zielen darauf ab.- Ein älteres v1-Paket (
@raydium-io/raydium-sdk) existiert aus historischen Gründen auf npm. Die Wartung endete, nachdem CPMM und LaunchLab ausgeliefert wurden (v1 erhielt niemals Unterstützung für eines davon), und es gibt seit 2024 keine v1-Veröffentlichungen mehr. Behandeln Sie v1 als End-of-Life: Verwenden Sie es nicht für neuen Code und migrieren Sie alle verbleibenden v1-Integrationen zu v2. - SDK v2 ist vor 1.0. Breaking Changes zwischen 0.x Minor-Versionen sind möglich; fixieren Sie die Version, die Sie überprüft haben, und überprüfen Sie die GitHub-Release-Noten beim Upgrade.
Upgrade
Beim Upgrade zwischen SDK-Minor-Versionen:- Überprüfen Sie erneut den Rückgabetyp jedes Mutationsaufrufs – Formänderungen (z. B.
extInfo) finden häufig statt. - Regenerieren Sie Abruf-Signaturen für
poolInfo– ein Feld könnte umbenannt worden sein. - Überprüfen Sie Ihre Slippage-Handhabung erneut; das SDK hat zwischen Auto-Bound- und Opt-in-Bound-Verhalten zwischen Versionen gewechselt.
- Wenn Sie
raydium.trade(Routing) verwenden, überprüfen Sie die Route-Form erneut – es ist der instabilste Teil der Oberfläche.
Hilfe erhalten
Für SDK- und API-Fragen:- GitHub Issues — reichen Sie ein unter github.com/raydium-io/raydium-sdk-V2/issues für Bugs und Feature-Anfragen ein. Das Raydium-Team überwacht aktiv.
- Discord —
#dev-support-Kanal unter discord.gg/raydium für synchrone Hilfe. - Telegram — Entwickler-Chat verlinkt von raydium.io (vermeiden Sie unverifizierte Telegram-Gruppen).
security/disclosure.
Verweise
sdk-api/rest-api— das HTTP-Pendant zum SDK.sdk-api/trade-api— vom Server erstellte Swap-Transaktionen.sdk-api/anchor-idl— Regenerieren von Clients direkt aus Program-IDLs.sdk-api/python-integration— Python-Äquivalent viasolana-py.integration-guides/priority-fee-tuning— Dimensionieren voncomputeBudgetConfig.
- Raydium SDK v2 Quellcode
- Raydium SDK Release Notes.


