Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Versionsbanner. Alle TypeScript-Demos zielen auf
@raydium-io/raydium-sdk-v2@0.2.42-alpha gegen Solana mainnet-beta ab, verifiziert 2026-04. Das Rust-CPI-Skelett zielt auf raydium-cp-swap im master-Branch, Anchor 0.30.x. Program-IDs werden über Konstanten aus reference/program-addresses bezogen.Voraussetzungen
raydium-sdk-V2-demo/src/cpmm; der GitHub-Link befindet sich neben jedem Abschnitt. Das Bootstrap folgt der config.ts.template des Demo-Repos (Quelle):
Raydium-Instanz ist die Fassade des SDK — jedes Demo unten nutzt sie. Sie lädt Token-Listen und Fee-Konfigurationen träge von api-v3.raydium.io; Sie können sie in Offline-Umgebungen mit eigenen Daten vorbelegen.
CPMM-Pool erstellen
Quelle:src/cpmm/createCpmmPool.ts
- Sortieren der Mints in token0/token1-Reihenfolge vor der PDA-Ableitung.
- Zahlen der einmaligen
create_pool_feeanpoolFeeAccount. - Erstellen der zugehörigen Token-Konten des Aufrufers, falls fehlend.
- Auswahl des richtigen Token-Programms (SPL Token vs. Token-2022) pro Seite.
Swap (Base-Input)
Quelle:src/cpmm/swap.ts
getPoolInfoFromRpc ab. Zitieren Sie nicht von api-v3.raydium.io für eine Transaktion, die Sie gerade signieren werden — ein Zitat, das einen Block alt ist, kann bei der Landung in ExceededSlippage rutschen.
Swap (Base-Output)
Quelle:src/cpmm/swapBaseOut.ts
Liquidität einzahlen
Quelle:src/cpmm/deposit.ts
lpAmount in needed_token_0 und needed_token_1 unter Verwendung der aktuellen Reserven des Pools, erhöht jede um 1 + slippage für die maximum_*-Argumente der Anweisung und erstellt die ATA-Erstellungen bei Bedarf.
Liquidität abheben
Quelle:src/cpmm/withdraw.ts
Protokoll-/Fonds-/Creator-Gebühren einziehen
Quelle:src/cpmm/collectCreatorFee.ts, src/cpmm/collectAllCreatorFee.ts
Protokoll- und Fondserfassung bleiben behördengesteuert. Creator-Gebühren haben zwei Pfade: die bestehende, von Creator signierte CollectCreatorFee und die additive CollectCreatorFeePermissionless, die jeder Zahler aufrufen kann, aber nur an die kanonischen ATAs des Creators übertragen kann. Das angeheftete SDK stellt die bestehenden Raw-Builder bereit:
PoolState lesen:
Rust-CPI-Skelett
Wenn Sie CPMM von Ihrem eigenen Anchor-Programm aus aufrufen möchten — beispielsweise einen Tresor, der im Namen seiner Einzahler Swaps durchführt — sieht der CPI-Kontext so aus. Die Kontenreihenfolge folgtproducts/cpmm/instructions.
CpiContext::new gegen CpiContext::new_with_signer aus und übergeben Sie Ihre Seeds.
Häufige Fallstricke
Eine kurze Checkliste, bevor Sie ein Support-Ticket öffnen:- Sortierte Mints. Wenn Ihre abgeleitete
poolState-PDA nicht mit dem On-Chain-Pool übereinstimmt, haben Sie wahrscheinlich vergessen, die Mints zu sortieren. - Veraltetes API-Zitat. Übergeben Sie niemals einen Reservewert von
api-v3.raydium.ioanCurveCalculator.swap. Rufen Sie von einem RPC ab. - Falsches Token-Programm. Der Tresor eines Token-2022-Mints wird vom Token-2022-Programm besessen, nicht von SPL Token. Verwenden Sie immer die Felder
token_0_program/token_1_programdes Pools. - Slippage unter-denominiert für Transfer-Fee-Mints. Wenn eine Seite des Pools ein Token-2022-Transfer-Fee-Mint ist, muss Ihr
minimum_amount_outin dem denominiert sein, was der Benutzer tatsächlich erhält, nicht in dem, was der Tresor sendet. NotApprovedbei einem Swap. Überprüfen SiePoolState.status— der Admin hat möglicherweise Swaps auf diesem Pool pausiert. Sieheproducts/cpmm/instructionsfür die Status-Bitmaske.
Nächste Schritte
sdk-api/typescript-sdk— vollständige SDK-Referenz.sdk-api/rest-api— Zitat- und Pool-Metadaten-Endpunkte.user-flows/create-cpmm-pool— die Code-freie Anleitung zum gleichen Ablauf.integration-guides/aggregator— wenn Sie CPMM als Teil eines Multi-Hop-Pfads weiterleiten.

