メインコンテンツへスキップ

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.

このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
バージョン情報。 このページは @raydium-io/raydium-sdk-v2@0.2.42-alpha を対象としています。このバージョンは本サイトのすべてのコード例で検証済みです(2026-04)。SDK は 1.0 未満であり、型サーフェスはリリース間で進化しています — バージョンをピンで固定してください。

インストール

npm install @raydium-io/raydium-sdk-v2 @solana/web3.js @solana/spl-token
# または
pnpm add @raydium-io/raydium-sdk-v2 @solana/web3.js @solana/spl-token
SDK は TypeScript で書かれており、JS アーティファクトと一緒に .d.ts を提供しています。最小ツールチェーン:Node 18+、TypeScript 5.0+、moduleResolution: "bundler" または "node16"

初期化

エントリーポイントは Raydium.load です:
import { Raydium } from "@raydium-io/raydium-sdk-v2";
import { Connection, Keypair, clusterApiUrl } from "@solana/web3.js";

const connection = new Connection(process.env.RPC_URL ?? clusterApiUrl("mainnet-beta"));
const owner      = Keypair.fromSecretKey(/* ... */);

const raydium = await Raydium.load({
  owner,
  connection,
  cluster: "mainnet",           // "mainnet" | "devnet"
  disableFeatureCheck: true,    // SDK のスタートアップ機能検出 API 呼び出しをスキップ
  blockhashCommitment: "confirmed",
});
Raydium.load は非同期です。スタートアップ時に api-v3.raydium.io から小さな /config ペイロードを取得します(現在の AmmConfig アカウント、フィーティアなどをリスト)。オフライン環境では disableFeatureCheck: true を設定してください。これらの値をいくつかのビルダーに手動で供給する必要があります。

4 つのモジュールファサード

ロード後、raydium オブジェクトは 4 つのモジュールファサードを公開します(製品サーフェスごとに 1 つ):
raydium.cpmm       // CPMM プール:createPool、addLiquidity、withdrawLiquidity、swap、...
raydium.clmm       // CLMM プール:createPool、openPositionFromBase、increasePositionFromBase、
                   //             decreaseLiquidity、harvestAllRewards、swap、...
raydium.liquidity  // AMM v4 プール:computeAmountOut、swap、addLiquidity、removeLiquidity、...
raydium.farm       // ファーム v3/v5/v6:deposit、withdraw、harvestAllRewards、create、setRewards
raydium.launchpad  // LaunchLab:createLaunchpad、buyExactIn、sellExactIn、graduate、...
raydium.trade      // マルチプール ルーティング:quotes、route-execution(0.2.41 ではベータ版)
raydium.token      // ヘルパー:トークンリスト取得、メタデータ、ATA 作成
(実は 5 つのファサードが合計で存在します — 「4 つ」は Raydium が公開でグループ化する方法で、tradetoken は補助ユーティリティとしています。)

トランザクション ビルダー

変更する関数はすべてビルダーを返し、即座には実行しません:
const { execute, builder, transaction, innerTransactions, extInfo } =
  await raydium.cpmm.addLiquidity({
    poolInfo,
    amountInA,
    amountInB,
    slippage: 0.005,
    txVersion: TxVersion.V0,
  });
返されたフィールド:
  • execute — 署名と送信を行う便利関数。builder.execute と同等です。
  • builder — 累積されたすべての命令と署名者を持つ TxBuilder インスタンス。.build() を呼び出して VersionedTransaction[] を取得します。独自の命令を挿入したり、外部署名者で署名する必要がある場合に便利です。
  • transaction / innerTransactions — 生の命令配列。複合マルチプログラム トランザクションを構築するときに使用します。
  • extInfo — 製品固有のエクストラ。たとえば、createPoolextInfo.poolId を返します。createLaunchpad は新しいローンチ状態 PDA を返します。
txVersion はレガシー vs V0 トランザクション フォーマットを制御します。V0(アドレス参照テーブル)がデフォルトの推奨です — より大きなスワップを 1 つのトランザクションに収めることができます。

なぜ非同期ビルダーなのか?

ほぼすべてのビルダーは内部的にオンチェーン状態を取得します:プール情報(見積もり用)、トークン プログラム所有権(Token-2022 vs SPL ルーティング)、アカウント ソル払い例外(ATA 作成用)など。SDK は積極的にキャッシュしていますが、新しいプール用の最初の呼び出しは RPC ラウンドトリップを伴います。再取得を避けるために、長寿命の raydium インスタンスを保持してください。

CLMM モジュール追加(最新リリース)

CLMM ファサードは、新しい動的フィー、単一方向フィー、リミットオーダー機能のサーフェスを獲得しました:
  • raydium.clmm.createCustomizablePoolcollectFeeOnenableDynamicFeedynamicFeeConfigId を受け入れる createPool のスーパーセット。新しいノブが必要な新しいプールにこれを使用してください。クラシック createPool は引き続きデフォルトフィーのプールで機能します。
  • raydium.clmm.openLimitOrder — リミットオーダーをサポートするプール上に単一ティック リミットオーダーを開きます。poolInfopoolKeyslimitOrderConfig/main/clmm-limit-order-config から)、inputMintinputAmount、およびターゲット tick をとります。
  • raydium.clmm.increaseLimitOrder / decreaseLimitOrder — 既存オーダーの未約定部分を調整します。完全に約定したオーダーで減少すると InvalidOrderPhase でリバートします。
  • raydium.clmm.settleLimitOrder / settleAllLimitOrder — 約定済み出力をオーナーの ATA に確定します。オーダーのオーナーまたはプールの limit_order_admin キーパーが呼び出すことができます。
  • raydium.clmm.closeLimitOrder / closeAllLimitOrder — 完全に決済されたオーダーを閉じてレントを回復します。
  • raydium.api.getClmmDynamicConfigs() / getClmmLimitOrderConfigs() — 新しい /main/clmm-dynamic-config/main/clmm-limit-order-config エンドポイントをヒットする REST ヘルパー。
小規模な再構成により、utils/libraries/ に移動しました。@raydium-io/raydium-sdk-v2/utils/... からインポートしたコードは @raydium-io/raydium-sdk-v2/libraries/... に切り替える必要があります。トップレベル パッケージ バレルは変更されていないため、ほとんどのユーザーは名前変更を認識しません。 エンドツーエンド TypeScript ウォークスルーは products/clmm/code-demos にあります。

よくある落とし穴

1. クラスター不一致

SDK のスタートアップ設定はクラスター固有です。cluster: "mainnet" を devnet Connection と混ぜると、サイレント ミスルーティングが発生します:SDK は mainnet AmmConfig に対して見積もりを取得しますが devnet に送信します。両方を常に渡してください。

2. ATA の事前作成を忘れる

ミントとの初回インタラクション時に、ユーザーの関連トークン アカウントが存在しない場合があります。SDK は、欠落 ATA を検出すると自動的に AssociatedTokenAccount::create 命令を先頭に追加します。これにより少量のレント費用が発生します。ウォレットが SOL 不足の場合、これはサイレント失敗します。再試行する前にチェックして資金を提供してください。

3. 古い poolInfo

poolInfo はキャッシュされたスナップショットです。取得後、プール状態が変わった場合(大きなトレードが価格を動かしたなど)、スワップの minAmountOut は古い状態に対して計算され、オンチェーンの amoount-out を下回り、リバートする可能性があります。高額トランザクション構築前に直ちに poolInfo を再取得するか、SDK の computeAmountOut を使用してください。これにより準備金が再クエリされます。

4. プライオリティ フィー

SDK はデフォルトでは計算ユニット価格を追加しません。高容量ウィンドウ(新規プール発表、ミーム コイン イベント)では、トランザクションは多くのものと競争し、着地しない可能性があります。明示的な computeBudgetConfig を提供してください:
const { execute } = await raydium.cpmm.swap({
  poolInfo,
  inputAmount: new BN(...),
  swapResult: ...,
  slippage: 0.005,
  txVersion: TxVersion.V0,
  computeBudgetConfig: {
    units: 250_000,          // CU リミット
    microLamports: 50_000,   // CU あたりのプライオリティ フィー
  },
});
サイジング ガイダンスについては integration-guides/priority-fee-tuning を参照してください。

5. スリッページ許容度はプール タイプと一致する必要があります

CPMM と AMM v4 は CPMM 数学です(通常のトレードの影響が低い)。CLMM は区分別です(ティック クロッシングで影響がジャンプ)。CPMM の例から 0.5% スリッページ許容度をコピーして、複数のティックをクロスする CLMM スワップに入れると、トランザクションはリバートする可能性が高いです。SDK の computeAmountOutpriceImpact を返します。許容度をそれより大きくサイズしてください。

6. BN vs number

SDK 内のすべての金額フィールドは bn.js BN インスタンスです — JavaScript number ではありません。.toNumber() 経由で金額値を変換すると 2^53 でサイレント切り詰めが発生します。約 9 クアドリリオン以上の値(9 進プール上では一般的)の場合、これは間違った結果を生成します。最終 UI レンダーまですべてを BN で保持してください。

バージョニング ポリシー

  • @raydium-io/raydium-sdk-v2 は Raydium が保守する唯一の SDK です。すべてのドキュメント、デモ、統合ガイダンスはこれを対象とします。
  • 古い v1 パッケージ(@raydium-io/raydium-sdk)は歴史的理由で npm に存在します。メンテナンスは CPMM と LaunchLab が出荷した後に終了しました(v1 はどちらもサポートされていません)。2024 年以降 v1 のリリースはありません。v1 をライフエンド扱いにしてください:新規コードに使用しないでください。残っている v1 統合を v2 に移行してください。
  • SDK v2 は 1.0 未満です。0.x マイナー リリース間でいくつかの破壊的変更が可能です。検証されたバージョンをピンで固定し、アップグレード時に GitHub リリース ノートを確認してください。

アップグレード

SDK マイナー バージョン間でアップグレードする場合:
  1. 変更する呼び出しのすべての戻り値の型を再確認してください — シェイプの変更(例:extInfo)は頻繁に発生します。
  2. poolInfo フェッチシグネチャを再生成してください — フィールドは名前変更されている可能性があります。
  3. スリッページ処理を再検証してください。SDK はリリース間で自動バウンドとオプトイン バウンド動作の間で切り替わっています。
  4. raydium.trade(ルーティング)を使用する場合、ルート シェイプを再検証してください — これはサーフェスの最も不安定な部分です。

ヘルプを得る

SDK と API に関する質問の場合:
  • GitHub issuesgithub.com/raydium-io/raydium-sdk-V2/issues でバグとフィーチャー リクエストをファイルしてください。Raydium チームは積極的に監視しています。
  • Discorddiscord.gg/raydium#dev-support チャネルで同期サポートを受けてください。
  • Telegramraydium.io からリンクされているデベロッパー チャット(未検証 Telegram グループは避けてください)。
セキュリティ問題の場合は、公開チャネルに投稿しないでください — security/disclosure を参照してください。

ポインタ

ソース: