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.64-alpha ab; sie wurden zuletzt gegen 0.2.42-alpha (2026-04) ausgeführt und ihre Aufrufsignaturen wurden am 09.09.2026 gegen die 0.2.64-alpha-Quelle überprüft, gegen Solana mainnet-beta. Das Rust-CPI-Skelett zielt auf raydium-cp-swap auf master, Anchor 1.0.2. Programm-IDs werden über Konstanten aus reference/program-addresses abgerufen.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. Raydium.load ist asynchron, da es standardmäßig die Token-Liste lädt; übergeben Sie disableLoadToken: true, um diesen Abruf zu überspringen. Die Verfügbarkeitsprüfung ist bereits übersprungen, es sei denn, Sie übergeben disableFeatureCheck: false. Fee-Konfigurationen werden beim ersten Gebrauch über raydium.api.getCpmmConfigs() lazy geladen.
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 (Basis-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 beim Landen in ExceededSlippage rutschen.
Swap (Basis-Output)
Quelle:src/cpmm/swapBaseOut.ts
Liquidität einzahlen
Quelle:src/cpmm/deposit.ts
maximum_*-Argumente der Anweisung und erstellt die ATA-Erstellungen bei Bedarf. raydium.cpmm.computePairAmount({ ... }) gibt die gleichen Zahlen zurück, wenn Sie diese für eine UI-Vorschau möchten.
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 Fondseinzug bleiben an Autorisierung gebunden. Creator-Gebühren haben zwei Pfade: das von der Creator signierte CollectCreatorFee und das additive CollectCreatorFeePermissionless, das jeder Zahler aufrufen kann, aber nur an die kanonischen ATAs des Creators überweisen kann. 0.2.64-alpha liefert Builder auf Modulebene für beide Creator-Pfade:
Die beiden Creator-Instruktionen haben unterschiedliche Diskriminatoren und Kontolayouts — die permissionless-Variante ersetzt den Creator-Signer durch einen separaten
payer und einen nicht signierenden creator. Verwenden Sie den passenden Builder, statt Konten der anderen Instruktion manuell auszutauschen.Es gibt keinen Protokoll- oder Fonds-Gebühren-Builder im SDK (makeCollectProtocolFeeInstruction und makeCollectFundFeeInstruction existieren unter keinem Namen) — das sind Admin-Pfade, ebenso wie CreateCreatorFeeShare / CloseCreatorFeeShare, die auch keinen Builder haben. Die Low-Level-Instruktions-Builder, die es gibt, sind collectCpFeeInstruction, makeCollectCreatorFeeInstruction und collectCreatorFeePermissionlessInInstruction.PoolState auslesen:
Rust-CPI-Skelett
Wenn Sie CPMM aus Ihrem eigenen Anchor-Programm aufrufen möchten — beispielsweise ein Vault, das im Namen seiner Einzahler swapped — sieht der CPI-Kontext so aus. Die Kontoordnung folgtproducts/cpmm/instructions.
CpiContext::new durch CpiContext::new_with_signer und übergeben Sie Ihre Seeds.
Häufige Fallstricke
Eine kurze Checkliste, bevor Sie ein Support-Ticket öffnen:- Sortierte Mints. Wenn Ihre abgeleitete
poolStatePDA nicht mit dem On-Chain-Pool übereinstimmt, haben Sie wahrscheinlich vergessen, die Mints zu sortieren. - Veraltetes API-Angebot. Übergeben Sie niemals einen Reserve-Wert von
api-v3.raydium.ioanCurveCalculator.swap. Rufen Sie von einem RPC ab. - Falsches Token-Programm. Der Vault eines Token-2022-Mints wird vom Token-2022-Programm verwaltet, nicht vom 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 Vault 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— Quote- 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 routen.

