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 2026-09-09 gegen die 0.2.64-alpha-Quelle auf Solana mainnet-beta überprüft. Das Rust-CPI-Gerüst zielt auf raydium-cp-swap im Branch chore/upgrade-anchor, Anchor 1.0.2 ab — master pinnt immer noch 0.32.1. 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. Gebührenkonfigurationen werden bei der ersten Verwendung ü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 (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
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 behördengesteuert. Creator-Gebühren haben zwei Pfade: das von Creator signierte CollectCreatorFee und das additive CollectCreatorFeePermissionless, das jeder Zahler aufrufen kann, aber nur an die kanonischen ATAs des Creators übertragen kann. 0.2.64-alpha liefert Module-Level-Builder für beide Creator-Pfade:
Die beiden Creator-Anweisungen haben unterschiedliche Diskriminatoren und Kontolayouts — die
erlaubnisfreie ersetzt den Creator-Unterzeichner durch einen separaten
payer und einen nicht
signierenden creator. Verwenden Sie den passenden Builder, anstatt Konten auf dem anderen
manuell auszutauschen.Es gibt keinen Protokoll- oder Fonds-Gebühren-Builder im SDK (makeCollectProtocolFeeInstruction
und makeCollectFundFeeInstruction existieren unter keinem Namen) — das sind Admin-Pfade, und
ebenso CreateCreatorFeeShare / CloseCreatorFeeShare, die auch keinen Builder haben. Die
Low-Level-Instruction-Builder, die existieren, sind collectCpFeeInstruction,
makeCollectCreatorFeeInstruction und collectCreatorFeePermissionlessInInstruction.PoolState lesen:
Rust-CPI-Gerüst
Wenn Sie CPMM von Ihrem eigenen Anchor-Programm aufrufen möchten — zum Beispiel ein Vault, das im Namen seiner Einzahler swapped — sieht der CPI-Kontext so aus. Die Kontoordnung 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. Ein Token-2022-Mint-Vault wird vom Token-2022-Programm besessen, nicht von SPL Token. Verwenden Sie immer die
token_0_program/token_1_program-Felder des 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— Zitat- und Pool-Metadaten-Endpunkte.user-flows/create-cpmm-pool— die Nicht-Code-Anleitung des gleichen Ablaufs.integration-guides/aggregator— wenn Sie CPMM als Teil eines Multi-Hop-Pfads routen.

