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(以及 createBonkMintApi.ts 用於 API 驅動的 Bonk 變體)
注意事項:
  • initialK 是二次曲線的縮放因子。調整它以在畢業時達到特定的開盤 CPMM 價格。見 products/launchlab/bonding-curve 以了解推導過程。
  • SDK 在單一交易中處理建立基礎鑄幣、元資料 PDA 和兩個金庫。如果元資料 URI 很長,可能超過 1232 位元組;在這種情況下,SDK 會分成兩筆交易。
  • Initialize 之後,發行在 openTime 之前不可交易。將 openTime 設定在一兩分鐘後,以減少搶先者搶先購買的機會。

取得發行狀態

getLaunchById 返回解碼後的 LaunchState 加上計算的「畢業進度」分數作為 Decimal

買入 — 精確報價輸入

來源:src/launchpad/buy.ts
computeBuyBase 鏡像鏈上 Newton 求解器(二次曲線)或閉式 CPMM 反函數(curve_type 1)。使用它來填充「你將收到」UI 欄位。

買入 — 精確基礎輸出

適用於「精確購買 X 個代幣」UI。如果曲線移動足夠使得報價要求現在超過 maximumQuoteIn,則以 ExceededSlippage 拒絕。

賣出

來源:src/launchpad/sell.ts
曲線的賣出路徑對稱於買入路徑:將 base_sold 減少 baseIn 返回 quote_out 等於曲線下方在 base_sold − baseInbase_sold 之間的積分面積,減去賣出費用。

在閾值交叉買入時自動畢業

SDK 在檢測到買入後狀態將跨越閾值時,在 buy* 交易內鏈接 Graduate 指令:
因為 Graduate 是無許可的,任何人(包括 MEV 機器人)都可以在閾值跨越後搶先登陸第一個 Graduate — 通常在幾秒內,而不是幾分鐘。第一個登陸者只需支付 CPMM 池帳戶的租金;他們沒有其他好處。

手動 Graduate

如果 autoGraduate 關閉或閾值交叉交易失敗,你可以單獨觸發畢業:
如果在提交時 quote_reserve_real < quote_reserve_target,則以 NotAtThreshold 拒絕。重試安全 — 成功後的第二次 Graduate 嘗試以 NotActive 拒絕。

收取創作者費用

來源:src/launchpad/claimCreatorFee.ts(單一鑄幣)和 collectAllCreatorFees.ts(批次)
將累積的創作者費用計數器報價金額轉移到創作者在報價鑄幣上的 ATA。可在畢業前或後呼叫;定期使用它而不是等待巨大餘額累積。

追蹤發行的整個生命週期

綜合起來,監控指令碼可能看起來像:

透過 gRPC 監視設定和池

來源:src/grpc/launchpadPoolInfo.ts 透過 Yellowstone gRPC 訂閱 LaunchLab 程式,並記錄每個 GlobalConfigPoolState 更新以及每個鑄幣的代幣程式。一個 accounts 訂閱上的兩個 datasize 篩選器分離兩種帳戶類型,因此單一串流涵蓋兩者。 該示例是分類發行鑄幣的最短正確參考,Token-2022 報價鑄幣版本使其成為必要:
  • 直接從 PoolState.token_program_flag 分類,為基礎鑄幣解碼 bit0,為報價鑄幣解碼 bit1,完全不進行鑄幣提取。測試整個位元組對 0 — 在報價鑄幣僅為舊版時足夠 — 當報價鑄幣為 Token-2022 時,將舊版基礎鑄幣誤讀為 Token-2022。
  • 設定 無法以這種方式分類:GlobalConfig 儲存其報價鑄幣的地址且沒有程式標誌,因此示例讀取鑄幣帳戶的擁有者一次並按鑄幣快取它。
它也相互交叉檢查,這是在你自己的索引器中保持的有用斷言。注意 createupdate 是從示例自己的快取推斷的,在啟動時從 getProgramAccounts 播種;禁用該播種後,將「create」讀作「首次在此串流上看到」。 gRPC 存取不是公共 RPC 表面的一部分 — 見示例倉庫的 src/grpc/README.md

Rust CPI

從你自己的 Anchor 程式呼叫 LaunchLab 很少見(大多數發行整合僅在 TS 端)。如果你這樣做,程式會提供 Anchor crate raydium_launchlab,包含 cpi::accounts::Buycpi::accounts::Sell 等 — 模式鏡像 CPMM / CLMM CPI 示例。一旦此網站被填充,見 sdk-api/rust-cpi 以了解通用範本。

陷阱

  • 費用分割算術偏差一。 如果 total_share 不完全等於 lp_share + creator_share + protocol_shareInitializeInvalidFeeShares 拒絕。將 totalShare 設定為等於總和。
  • 使用不允許的報價鑄幣。 launch_config.allowed_quote_mints 是固定列表;傳遞任何其他鑄幣會拒絕。首先使用 raydium.launchpad.getConfig() 檢查。
  • 元資料大小。uri 字串將 Metaplex CPI 推過預算。保持 uri 在 ~200 個字元以下 — 大多數 CDN 託管的 JSON 元資料輕鬆適配。
  • 畢業競賽。 自動化機器人監視 quote_reserve_real 並在閾值交叉後的一兩個槽內搶先 Graduate。這是良性的 — 它只花費他們租金 — 但這意味著你的 UI 應該將 status 轉換視為快速事件。

接下來去哪裡

來源: