Skip to main content
このページは 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 フィールドを入力するために使用してください。

買い — 正確なベース出力

「正確に X トークンを買う」UI に便利です。カーブが十分に移動して、クォート要件が maximumQuoteIn を超える場合は ExceededSlippage で拒否されます。

売り

ソース:src/launchpad/sell.ts
カーブの売却パスは買いパスに対称です:base_soldbaseIn だけ減らすと、base_sold − baseInbase_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(バッチ)
蓄積されたクリエイターフィーカウンタークォート金額をクリエイターの ATA にクォートミント上に転送します。グラデュエーション前後で呼び出し可能です。巨大な残高が蓄積されるのを待つのではなく、定期的に使用してください。

ローンチをそのライフサイクル全体で追跡する

まとめると、監視スクリプトは次のようになります:

gRPC 経由でコンフィグとプールを監視する

ソース:src/grpc/launchpadPoolInfo.ts Yellowstone gRPC 経由で LaunchLab プログラムをサブスクライブし、各ミントのトークンプログラムで GlobalConfigPoolState の更新をログします。1 つの accounts サブスクリプション上の 2 つの datasize フィルタが 2 つのアカウントタイプを分離するため、単一ストリームが両方をカバーします。 デモは、Token-2022 クォートミントリリースが必要にするローンチのミントを分類するための最短の正しいリファレンスです:
  • プールPoolState.token_program_flag から直接分類され、ミント取得なしでベースミント用のビット 0 とクォートミント用のビット 1 をデコードします。バイト全体を 0 に対してテストすることは、クォートミントが Token-2022 の場合、レガシーベースミントを Token-2022 として誤読します。
  • コンフィグはそのように分類できません:GlobalConfig はそのクォートミントのアドレスを格納し、プログラムフラグはないため、デモはミントアカウントの所有者を 1 回読み取り、ミントごとにキャッシュします。
また、2 つを相互にクロスチェックします。これは、独自のインデクサーに保つのに便利なアサーションです。createupdate は、デモ独自のキャッシュから推測されることに注意してください。スタートアップ時に getProgramAccounts からシードされます。そのシードが無効になった場合、「作成」を「このストリームで最初に見た」と読んでください。 gRPC アクセスはパブリック RPC サーフェスの一部ではありません。デモリポジトリの src/grpc/README.md を参照してください。

Rust CPI

独自の Anchor プログラムから LaunchLab を呼び出すことはまれです(ほとんどのローンチ統合は TS 側のみです)。その場合、プログラムは cpi::accounts::Buycpi::accounts::Sell などを備えた Anchor クレート raydium_launchlab を出荷します。パターンは CPMM / CLMM CPI の例をミラーリングします。このサイトが入力されたら、一般化されたテンプレートについては sdk-api/rust-cpi を参照してください。

落とし穴

  • フィー分割算術のオフバイワン。 total_share が正確に lp_share + creator_share + protocol_share でない場合、InitializeInvalidFeeShares で戻ります。totalShare を合計に等しく設定してください。
  • 許可されていないクォートミントを使用する。 launch_config.allowed_quote_mints は固定リストです。他のミントを渡すと戻ります。最初に raydium.launchpad.getConfig() で確認してください。
  • メタデータサイズ。 長い uri 文字列は Metaplex CPI を予算を超えてプッシュします。uri を約 200 文字以下に保ってください。ほとんどの CDN ホスト JSON メタデータは簡単に適合します。
  • グラデュエーションレース。 自動化されたボットは quote_reserve_real を監視し、しきい値交差の 1~2 スロット以内に Graduate をフロントランします。これは無害です。レントのみがかかります。ただし、UI は status 遷移を高速イベントとして扱う必要があります。

次に進む場所

ソース: