このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
バージョン情報。 すべての TypeScript デモは
@raydium-io/raydium-sdk-v2@0.2.64-alpha を対象としており、0.2.42-alpha(2026-04)に対して最後に実行され、2026-09-09 に Solana mainnet-beta に対して 0.2.64-alpha ソースに対して呼び出しシグネチャが再確認されています。Rust CPI スケルトンは master 上の raydium-cp-swap、Anchor 1.0.2 を対象としています。プログラム ID は reference/program-addresses の定数から取得されます。前提条件
raydium-sdk-V2-demo/src/cpmm のファイルをミラーしており、GitHub リンクは各セクションの横に配置されています。ブートストラップはデモリポジトリの config.ts.template(ソース)に従います:
Raydium インスタンスは SDK のファサードです。以下のすべてのデモはこれを使用します。Raydium.load は非同期です。デフォルトではトークンリストを読み込むためです。トークン読み込みをスキップするには disableLoadToken: true を渡してください。利用可能性機能チェックは、disableFeatureCheck: false を渡さない限り既にスキップされています。フィー設定は raydium.api.getCpmmConfigs() を通じて最初の使用時に遅延フェッチされます。
CPMM プールの作成
ソース:src/cpmm/createCpmmPool.ts
- ミントを token0/token1 の順序にソートしてから PDA を導出します。
- 1 回限りの
create_pool_feeをpoolFeeAccountに支払います。 - 呼び出し元の関連トークンアカウントが不足している場合は作成します。
- 各側で正しいトークンプログラム(SPL Token vs Token-2022)を選択します。
スワップ(ベース入力)
ソース:src/cpmm/swap.ts
getPoolInfoFromRpc 内から RPC のプール状態を再フェッチします。署名しようとしているトランザクションの api-v3.raydium.io から見積もらないでください。1 ブロック古い見積もりは、ランド時に ExceededSlippage にスリップする可能性があります。
スワップ(ベース出力)
ソース:src/cpmm/swapBaseOut.ts
リクイディティのデポジット
ソース:src/cpmm/deposit.ts
maximum_* 引数にし、必要に応じて ATA 作成を構築します。raydium.cpmm.computePairAmount({ ... }) は UI プレビュー用に同じ数値を返します。
リクイディティのウィズドロー
ソース:src/cpmm/withdraw.ts
プロトコル/ファンド/クリエイターフィーの回収
ソース:src/cpmm/collectCreatorFee.ts、src/cpmm/collectAllCreatorFee.ts
プロトコルおよびファンドの回収は権限ゲートで保護されています。クリエイターフィーには 2 つのパスがあります:クリエイター署名の CollectCreatorFee と、任意のペイヤーが呼び出せるが、クリエイターの正規 ATA にのみ転送できる CollectCreatorFeePermissionless です。0.2.64-alpha では、両方のクリエイターパスに対するモジュールレベルのビルダーが提供されます:
2 つのクリエイター命令は 異なるディスクリミネータとアカウントレイアウト を持ちます — パーミッションレス版はクリエイター署名者を別の
payer と署名しない creator に置き換えます。一方のアカウントを手動で入れ替えるのではなく、マッチングビルダーを使用してください。SDK にはプロトコルフィーまたはファンドフィーのビルダーがありません(makeCollectProtocolFeeInstruction と makeCollectFundFeeInstruction はどの名前でも存在しません)— これらは管理者パスであり、CreateCreatorFeeShare / CloseCreatorFeeShare も同様にビルダーがありません。存在する低レベル命令ビルダーは collectCpFeeInstruction、makeCollectCreatorFeeInstruction、collectCreatorFeePermissionlessInInstruction です。PoolState から直接蓄積されたフィーを読み取ることができます:
Rust CPI スケルトン
独自の Anchor プログラムから CPMM を呼び出したい場合(例えば、デポジターの代わりにスワップを実行するボールト)、CPI コンテキストは次のようになります。アカウント順序はproducts/cpmm/instructions に従います。
CpiContext::new を CpiContext::new_with_signer に置き換えてシードを渡してください。
よくある落とし穴
サポートチケットを開く前の簡単なチェックリスト:- ソート済みミント。 導出した
poolStatePDA がオンチェーンプールと一致しない場合、ミントのソートを忘れた可能性があります。 - 古い API クォート。
api-v3.raydium.ioからのリザーブ値をCurveCalculator.swapに渡さないでください。RPC から取得してください。 - 間違ったトークンプログラム。 Token-2022 ミントのボールトは SPL Token ではなく Token-2022 プログラムが所有しています。常にプールの
token_0_program/token_1_programフィールドを使用してください。 - 転送フィーミントに対して過小評価されたスリッページ。 プールのどちらかが Token-2022 転送フィーミントの場合、
minimum_amount_outはボールトが送信する額ではなく、ユーザーが実際に受け取る額で評価される必要があります。 - スワップで
NotApproved。PoolState.statusを確認してください — 管理者がそのプールのスワップを一時停止している可能性があります。ステータスビットマスクについてはproducts/cpmm/instructionsを参照してください。
次のステップ
sdk-api/typescript-sdk— 完全な SDK リファレンス。sdk-api/rest-api— クォートおよびプールメタデータエンドポイント。user-flows/create-cpmm-pool— 同じフローの非コードウォークスルー。integration-guides/aggregator— マルチホップパスの一部として CPMM をルーティングしている場合。

