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.
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 →
Thông tin phiên bản. Trang này tài liệu hóa
@raydium-io/raydium-sdk-v2@0.2.42-alpha, phiên bản được xác minh cho mọi demo mã trong trang web này (2026-04). SDK ở giai đoạn pre-1.0 và bề mặt type đã phát triển qua các bản phát hành — hãy ghim phiên bản của bạn.Cài đặt
.d.ts cùng với artifact JS của nó. Bộ công cụ tối thiểu: Node 18+, TypeScript 5.0+, moduleResolution: "bundler" hoặc "node16".
Khởi tạo
Điểm vào làRaydium.load:
Raydium.load là async vì nó tìm nạp một payload /config nhỏ từ api-v3.raydium.io khi khởi động (liệt kê các tài khoản AmmConfig hiện tại, tiers phí, v.v.). Đặt disableFeatureCheck: true trong các môi trường ngoại tuyến; bạn sẽ phải cung cấp các giá trị đó theo cách thủ công cho một số builder.
Bốn module facade
Sau khi tải, đối tượngraydium hiển thị bốn module facade, mỗi cái một bề mặt sản phẩm:
trade và token là tiện ích hỗ trợ.)
Xây dựng transaction
Mọi hàm thay đổi trả về một builder thay vì thực hiện ngay lập tức:execute— một hàm tiện lợi ký + gửi. Tương đương vớibuilder.execute.builder— instanceTxBuildervới tất cả các instruction và signer được tích lũy. Gọi.build()để lấyVersionedTransaction[]; hữu ích khi bạn cần inject các instruction của riêng mình hoặc ký bằng signer bên ngoài.transaction/innerTransactions— các mảng instruction thô. Sử dụng khi xây dựng transaction đa chương trình được kết hợp.extInfo— những thứ bổ sung dành riêng cho sản phẩm. Ví dụ:createPooltrả vềextInfo.poolId;createLaunchpadtrả về PDA trạng thái launch mới.
txVersion điều khiển định dạng transaction legacy vs V0. V0 (address lookup tables) là khuyến cáo mặc định — nó cho phép swap lớn hơn vừa vặn trong một transaction.
Tại sao builder async?
Hầu hết mọi builder đều tìm nạp trạng thái on-chain nội bộ: pool info (cho quotes), quyền sở hữu token program (cho Token-2022 vs SPL routing), account rent-exemption (cho ATA creation), v.v. SDK bộ nhớ cache một cách tích cực nhưng lệnh gọi đầu tiên cho một pool mới liên quan đến RPC round-trips. Giữ một instanceraydium dài hạn để tránh re-fetching.
Bổ sung module CLMM (bản phát hành mới nhất)
Facade CLMM đã có các bề mặt cho các tính năng dynamic-fee, single-sided-fee mới và limit-order:raydium.clmm.createCustomizablePool— tập hợp super củacreatePoolchấp nhậncollectFeeOn,enableDynamicFee, vàdynamicFeeConfigId. Sử dụng điều này cho bất kỳ pool mới nào cần các knob mới;createPoolcổ điển tiếp tục hoạt động cho các pool phí mặc định.raydium.clmm.openLimitOrder— mở một limit order single-tick trên pool hỗ trợ chúng. LấypoolInfo,poolKeys,limitOrderConfig(từ/main/clmm-limit-order-config),inputMint,inputAmount, và targettick.raydium.clmm.increaseLimitOrder/decreaseLimitOrder— điều chỉnh phần chưa được điền của đơn hàng hiện có. Giảm revert trên một đơn hàng đã điền hoàn toàn vớiInvalidOrderPhase.raydium.clmm.settleLimitOrder/settleAllLimitOrder— quét output đã điền vào ATA của owner. Là owner của đơn hàng hay keeperlimit_order_admincủa pool đều có thể gọi chúng.raydium.clmm.closeLimitOrder/closeAllLimitOrder— đóng các đơn hàng đã settle hoàn toàn để khôi phục rent.raydium.api.getClmmDynamicConfigs()/getClmmLimitOrderConfigs()— trình helper REST truy cập các endpoint/main/clmm-dynamic-configvà/main/clmm-limit-order-configmới.
utils/ sang libraries/. Code nhập từ @raydium-io/raydium-sdk-v2/utils/... nên chuyển sang @raydium-io/raydium-sdk-v2/libraries/.... Package barrel cấp cao nhất không thay đổi, vì vậy hầu hết người dùng không bao giờ thấy việc đổi tên.
Những bước đi cuối cùng TypeScript nằm trong products/clmm/code-demos.
Những lỗi bẫy phổ biến
1. Cluster không khớp
Config khởi động SDK là dành riêng cho cluster. Trộncluster: "mainnet" với một Connection devnet gây ra mis-routing âm thầm: SDK quote lại AmmConfig mainnet nhưng gửi đến devnet. Luôn luôn vượt qua cả hai.
2. Quên pre-create ATA
Khi tương tác lần đầu với mint, Associated Token Account của người dùng có thể không tồn tại. SDK tự động prepend một instructionAssociatedTokenAccount::create khi phát hiện ATA bị thiếu, điều này tốn một lượng nhỏ rent. Nếu ví của bạn thiếu SOL điều này sẽ thất bại âm thầm. Kiểm tra và quỹ trước khi thử lại.
3. poolInfo cũ
poolInfo là một snapshot được bộ nhớ cache. Nếu trạng thái pool đã thay đổi kể từ khi bạn tìm nạp nó (một giao dịch lớn di chuyển giá, chẳng hạn), minAmountOut của swap có thể được tính toán dựa trên trạng thái cũ và rơi bên dưới amount-out trên chuỗi, revert. Re-fetch poolInfo ngay lập tức trước khi xây dựng transaction cao giá trị, hoặc sử dụng computeAmountOut của SDK để re-query reserves.
4. Priority fees
SDK không thêm compute-unit prices theo mặc định. Trong các cửa sổ khối lượng cao (khởi động pool mới, sự kiện meme-coin) điều này có nghĩa là transaction của bạn cạnh tranh với nhiều cái khác và có thể không hạ cánh. Cung cấp mộtcomputeBudgetConfig rõ ràng:
integration-guides/priority-fee-tuning để hướng dẫn về kích thước.
5. Dung sai slippage phải khớp với loại pool
CPMM và AMM v4 là toán CPMM (tác động thấp trên giao dịch bình thường). CLMM là từng phần (tác động nhảy ở các tick crossing). Nếu bạn sao chép dung sai slippage 0,5% từ ví dụ CPMM sang swap CLMM vượt qua nhiều tick, transaction có khả năng revert.computeAmountOut của SDK trả về priceImpact; kích thước dung sai của bạn ở trên nó.
6. BN vs number
Tất cả các trường số lượng trong SDK là BN instance của bn.js — không bao giờ JavaScript number. Chuyển đổi giá trị số lượng thông qua .toNumber() cắt âm thầm ở 2^53; đối với bất kỳ giá trị nào ở trên ~9 quadrillion (không hiếm gặp trên 9-decimal mints), điều này tạo ra kết quả sai. Giữ mọi thứ trong BN cho đến cuối cùng render UI.
Chính sách versioning
@raydium-io/raydium-sdk-v2là SDK duy nhất mà Raydium duy trì. Tất cả tài liệu, demo và hướng dẫn tích hợp nhắm tới nó.- Một package v1 cũ hơn (
@raydium-io/raydium-sdk) tồn tại trên npm vì lý do lịch sử. Bảo trì kết thúc sau khi CPMM và LaunchLab được gửi (v1 không bao giờ được hỗ trợ cho cả hai), và không có bản phát hành v1 kể từ 2024. Coi v1 là end-of-life: không sử dụng nó cho code mới, và di chuyển bất kỳ tích hợp v1 còn lại sang v2. - SDK v2 ở giai đoạn pre-1.0. Những thay đổi quan trọng giữa các bản phát hành minor 0.x là có thể; ghim phiên bản bạn đã xác minh và kiểm tra ghi chú phát hành GitHub khi nâng cấp.
Nâng cấp
Khi nâng cấp giữa các phiên bản minor SDK:- Re-check kiểu trả về của mỗi lệnh gọi thay đổi — những thay đổi hình dạng (ví dụ:
extInfo) hạ cánh thường xuyên. - Tái tạo ra
poolInfofetch signatures — một trường có thể đã được đổi tên. - Re-verify xử lý slippage của bạn; SDK đã dịch chuyển giữa auto-bound và opt-in bound behaviors qua các bản phát hành.
- Nếu bạn sử dụng
raydium.trade(routing), re-verify hình dạng route — đó là phần không ổn định nhất của bề mặt.
Nhận trợ giúp
Cho các câu hỏi SDK và API:- GitHub issues — file tại github.com/raydium-io/raydium-sdk-V2/issues để báo cáo lỗi và yêu cầu tính năng. Đội Raydium giám sát một cách tích cực.
- Discord — channel
#dev-supporttại discord.gg/raydium để nhận trợ giúp đồng bộ. - Telegram — developer chat được liên kết từ raydium.io (tránh các nhóm Telegram chưa được xác minh).
security/disclosure.
Con trỏ
sdk-api/rest-api— phần bổ sung HTTP cho SDK.sdk-api/trade-api— swap transactions được xây dựng trên server.sdk-api/anchor-idl— tạo lại client trực tiếp từ program IDL.sdk-api/python-integration— tương đương Python thông quasolana-py.integration-guides/priority-fee-tuning— kích thướccomputeBudgetConfig.
- Raydium SDK v2 source
- Ghi chú phát hành Raydium SDK.


