Skip to main content
Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.Xem bản tiếng Anh →
Banner phiên bản.
  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Cluster: Solana mainnet-beta
  • Program ID: xem reference/program-addresses
  • Xác nhận lần cuối: 2026-04
Ghim phiên bản SDK trong package.json của bạn. Interface bonding-curve đã thay đổi giữa các bản phát hành minor.

Thiết lập

Các demo ở đây phản ánh các file trong raydium-sdk-V2-demo/src/launchpad. Khởi động tuân theo config.ts.template của repo demo:

Tạo một launch

Nguồn: src/launchpad/createMint.ts (và createBonkMintApi.ts cho biến thể Bonk do API điều khiển)
Ghi chú:
  • initialK là hệ số tỉ lệ cho curve bậc hai. Điều chỉnh nó để đạt được giá CPMM mở cửa cụ thể tại thời điểm nâng cấp. Xem products/launchlab/bonding-curve để hiểu về phần dẫn xuất.
  • SDK xử lý việc tạo base mint, metadata PDA, và cả hai vault trong một transaction duy nhất. Nó có thể vượt quá 1232 byte nếu metadata URI dài; trong trường hợp đó SDK sẽ chia thành hai transaction.
  • Sau Initialize, launch không thể giao dịch cho đến openTime. Đặt openTime trước một hoặc hai phút để giảm cơ hội cho những kẻ front-runner nắm bắt lần mua đầu tiên.

Lấy trạng thái launch

getLaunchById trả về LaunchState được giải mã cộng với phân số “tiến độ hướng tới nâng cấp” được tính toán dưới dạng Decimal.

Mua — quote chính xác đầu vào

Nguồn: src/launchpad/buy.ts
computeBuyBase phản ánh solver Newton on-chain (curve bậc hai) hoặc CPMM-inverse dạng đóng (curve_type 1). Sử dụng nó để điền trường UI “Bạn nhận”.

Mua — chính xác base đầu ra

Hữu ích cho giao diện “mua chính xác X token”. Từ chối với ExceededSlippage nếu curve đã thay đổi đủ để yêu cầu quote hiện tại vượt quá maximumQuoteIn.

Bán

Nguồn: src/launchpad/sell.ts
Đường bán của curve đối xứng với đường mua: giảm base_sold bởi baseIn trả về quote_out bằng diện tích tích phân dưới curve giữa base_sold − baseInbase_sold, trừ phí bán.

Tự động nâng cấp khi lần mua vượt ngưỡng

SDK nối một lệnh Graduate bên trong transaction buy* khi nó phát hiện trạng thái sau khi mua sẽ vượt ngưỡng:
Graduate không cần quyền, bất kỳ ai (bao gồm MEV bot) đều có thể race để hạ cánh Graduate đầu tiên sau khi ngưỡng bị vượt — thường trong vài giây, không phải phút. Người hạ cánh đầu tiên chỉ trả tiền thuê cho các account pool CPMM; họ không nhận được lợi ích nào khác.

Manual Graduate

Nếu autoGraduate tắt hoặc transaction vượt ngưỡng thất bại, bạn có thể kích hoạt nâng cấp riêng biệt:
Hoàn nguyên với NotAtThreshold nếu quote_reserve_real < quote_reserve_target tại thời điểm gửi. Thân thiện với thử lại — một nỗ lực Graduate thứ hai sau khi thành công hoàn nguyên với NotActive.

Thu thập phí của creator

Nguồn: src/launchpad/claimCreatorFee.ts (một mint) và collectAllCreatorFees.ts (batch)
Chuyển số tiền bộ đếm phí creator tích lũy đến ATA của creator trên quote mint. Có thể gọi trước hoặc sau nâng cấp; sử dụng nó định kỳ thay vì chờ một số dư khổng lồ tích tụ.

Theo dõi launch qua vòng đời của nó

Kết hợp lại, một script giám sát có thể trông như:

Rust CPI

Gọi LaunchLab từ chương trình Anchor của riêng bạn là hiếm (hầu hết các tích hợp launch chỉ ở phía TS). Nếu bạn làm, chương trình vận chuyển một crate Anchor raydium_launchlab với cpi::accounts::Buy, cpi::accounts::Sell, v.v. — mẫu phản ánh các ví dụ CPI của CPMM / CLMM. Xem sdk-api/rust-cpi để xem mẫu tổng quát một khi trang này được điền đầy đủ.

Những cái bẫy

  • Số học phân chia phí sai lệch một đơn vị. Nếu total_share không chính xác bằng lp_share + creator_share + protocol_share, Initialize hoàn nguyên với InvalidFeeShares. Đặt totalShare bằng tổng.
  • Sử dụng quote mint không được phép. launch_config.allowed_quote_mints là danh sách cố định; chuyển bất kỳ mint nào khác hoàn nguyên. Kiểm tra với raydium.launchpad.getConfig() trước.
  • Kích thước metadata. Chuỗi uri dài đẩy CPI Metaplex vượt quá ngân sách. Giữ uri dưới ~200 ký tự — hầu hết metadata JSON do CDN lưu trữ phù hợp dễ dàng.
  • Graduation race. Các bot tự động giám sát quote_reserve_real và front-run Graduate trong vòng một hoặc hai slot sau khi ngưỡng bị vượt. Điều này là lành tính — nó chỉ tốn tiền thuê cho họ — nhưng điều đó có nghĩa là UI của bạn nên coi các chuyển đổi status là các sự kiện nhanh chóng.

Tiếp theo đi đâu

Nguồn: