このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
バージョン情報
- SDK:
@raydium-io/raydium-sdk-v2@0.2.42-alpha - クラスター:Solana
mainnet-beta - プログラム ID:
reference/program-addressesを参照 - 最終確認:2026-04
package.json で SDK バージョンをピン留めしてください。ボンディングカーブインターフェースはマイナーリリース間で進化しています。セットアップ
ここのデモはraydium-sdk-V2-demo/src/launchpad のファイルを反映しています。ブートストラップはデモリポジトリの config.ts.template に従います:
ローンチを作成する
ソース:src/launchpad/createMint.ts(および API 駆動の Bonk バリアント用の createBonkMintApi.ts)
initialKは二次カーブのスケール係数です。グラデュエーション時の特定のオープニング CPMM 価格をターゲットにするようにチューニングしてください。導出についてはproducts/launchlab/bonding-curveを参照してください。- SDK は単一トランザクションでベースミント、メタデータ PDA、および両方のボールトを作成します。メタデータ URI が長い場合は 1232 バイトを超える可能性があります。その場合、SDK は 2 つのトランザクションに分割します。
Initialize後、ローンチはopenTimeまでは取引できません。フロントランナーに最初の買いを掴む機会を減らすために、openTimeを 1~2 分先に設定してください。
ローンチ状態を取得する
getLaunchById はデコードされた LaunchState と、計算された「グラデュエーションへの進捗」分数を Decimal として返します。
買い — 正確なクォート入力
ソース:src/launchpad/buy.ts
computeBuyBase はオンチェーン Newton ソルバー(二次カーブ)またはクローズドフォーム CPMM 逆関数(curve_type 1)をミラーリングします。「受け取る」UI フィールドを入力するために使用してください。
買い — 正確なベース出力
maximumQuoteIn を超える場合は ExceededSlippage で拒否されます。
売り
ソース:src/launchpad/sell.ts
base_sold を baseIn だけ減らすと、base_sold − baseIn と base_sold の間のカーブの下の統合領域に等しい quote_out が返されます。売却フィーを差し引きます。
しきい値交差買いでの自動グラデュエーション
SDK は、買い後の状態がしきい値を超えることを検出したときに、buy* トランザクション内に Graduate 命令をチェーンします:
Graduate はパーミッションレスなので、誰でも(MEV ボットを含む)しきい値交差後の最初の Graduate をランディングするために競争できます。通常は数分ではなく数秒後です。最初のランダーは CPMM プールアカウントのレントを支払うだけです。他の利益はありません。
手動 Graduate
autoGraduate がオフだったか、しきい値交差トランザクションが失敗した場合、グラデュエーションを個別に実行できます:
quote_reserve_real < quote_reserve_target の場合、NotAtThreshold で戻ります。再試行安全です。成功後の 2 番目の Graduate 試行は NotActive で戻ります。
クリエイターフィーを回収する
ソース:src/launchpad/claimCreatorFee.ts(単一ミント)および collectAllCreatorFees.ts(バッチ)
ローンチをそのライフサイクル全体で追跡する
まとめると、監視スクリプトは次のようになります:gRPC 経由でコンフィグとプールを監視する
ソース:src/grpc/launchpadPoolInfo.ts
Yellowstone gRPC 経由で LaunchLab プログラムをサブスクライブし、各ミントのトークンプログラムで GlobalConfig と PoolState の更新をログします。1 つの accounts サブスクリプション上の 2 つの datasize フィルタが 2 つのアカウントタイプを分離するため、単一ストリームが両方をカバーします。
デモは、Token-2022 クォートミントリリースが必要にするローンチのミントを分類するための最短の正しいリファレンスです:
- プールは
PoolState.token_program_flagから直接分類され、ミント取得なしでベースミント用のビット 0 とクォートミント用のビット 1 をデコードします。バイト全体を0に対してテストすることは、クォートミントが Token-2022 の場合、レガシーベースミントを Token-2022 として誤読します。 - コンフィグはそのように分類できません:
GlobalConfigはそのクォートミントのアドレスを格納し、プログラムフラグはないため、デモはミントアカウントの所有者を 1 回読み取り、ミントごとにキャッシュします。
create と update は、デモ独自のキャッシュから推測されることに注意してください。スタートアップ時に getProgramAccounts からシードされます。そのシードが無効になった場合、「作成」を「このストリームで最初に見た」と読んでください。
gRPC アクセスはパブリック RPC サーフェスの一部ではありません。デモリポジトリの src/grpc/README.md を参照してください。
Rust CPI
独自の Anchor プログラムから LaunchLab を呼び出すことはまれです(ほとんどのローンチ統合は TS 側のみです)。その場合、プログラムはcpi::accounts::Buy、cpi::accounts::Sell などを備えた Anchor クレート raydium_launchlab を出荷します。パターンは CPMM / CLMM CPI の例をミラーリングします。このサイトが入力されたら、一般化されたテンプレートについては sdk-api/rust-cpi を参照してください。
落とし穴
- フィー分割算術のオフバイワン。
total_shareが正確にlp_share + creator_share + protocol_shareでない場合、InitializeはInvalidFeeSharesで戻ります。totalShareを合計に等しく設定してください。 - 許可されていないクォートミントを使用する。
launch_config.allowed_quote_mintsは固定リストです。他のミントを渡すと戻ります。最初にraydium.launchpad.getConfig()で確認してください。 - メタデータサイズ。 長い
uri文字列は Metaplex CPI を予算を超えてプッシュします。uriを約 200 文字以下に保ってください。ほとんどの CDN ホスト JSON メタデータは簡単に適合します。 - グラデュエーションレース。 自動化されたボットは
quote_reserve_realを監視し、しきい値交差の 1~2 スロット以内にGraduateをフロントランします。これは無害です。レントのみがかかります。ただし、UI はstatus遷移を高速イベントとして扱う必要があります。
次に進む場所
products/launchlab/bonding-curve— カーブ数学。products/cpmm/code-demos— 結果のプールで何をするか。user-flows/launch-token-launchlab— オフチェーンステップを含むエンドツーエンドのローンチトークンガイド。
- Raydium SDK v2
- Raydium LaunchLab プログラムソース

