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 →
Các ví tích hợp Raydium thường cần trả lời bốn câu hỏi cho mỗi người dùng: người dùng này có LP trong những pool nào? họ nắm giữ những vị trí nào (CLMM NFT)? họ stake trong những farm nào? tất cả có giá trị bao nhiêu? Trang này ghi lại từng phần.
Phát hiện vị trí Raydium
LP token cổ điển (CPMM, AMM v4)
Chúng trông giống như bất kỳ SPL Token nào khác: ATA của người dùng nắm giữ một số dư. Ví hiển thị điều này như một token khác theo mặc định. Để tiết lộ nó như một vị trí Raydium:- Liệt kê các tài khoản token của người dùng:
connection.getParsedTokenAccountsByOwner(user, { programId: TOKEN_PROGRAM_ID }). - Với mỗi mint, kiểm tra danh sách mint của Raydium:
GET https://api-v3.raydium.io/pools/info/lps?lps=<LP_MINT>,...(nhóm tối đa ~50 LP mint mỗi lần gọi). - Đối với các mint khớp, API trả về tham chiếu pool. Sử dụng nó để tính giá trị vị trí được biểu thị bằng token:
CLMM position NFT
Các vị trí CLMM là NFT.PersonalPositionState PDA của mỗi vị trí được lấy từ mint NFT. Để phát hiện:
- Liệt kê các NFT của người dùng. Đối với NFT Metaplex cũ: lọc các tài khoản token có supply 1 và decimals 0.
- Với mỗi NFT mint, hãy cố gắng lấy PersonalPositionState PDA:
-
Liệt kê các vị trí của ví bằng
raydium.clmm.getOwnerPositionInfo({ programId })và khớp trênnftMint(không cógetPositionInfo). Mỗi mục cung cấp cho bạn:poolId→ tìm nạp pool để giải quyết minttickLower,tickUpper→ hiển thị phạm viliquidity,tokensOwedA/B→ tính giá trị vị trí + phí chưa nhậnrewardInfos→ phần thưởng chưa nhận mỗi luồng
-
Đối với position-NFT được phát hành theo Token-2022 (
OpenPositionWithToken22Nft), chương trình mint NFT là Token-2022 thay vì SPL Token. Liệt kê cả hai khi quét.
Farm stake
Farm v3 / v5 / v6 mỗi cái có một PDA sổ cái cho mỗi người dùng. Các lấy dẫn:UserLedger có thể bằng cách băm người dùng với danh sách được quản lý “có khả năng” farm ID. Liệt kê tất cả farm ID một cách toàn diện là không thực tế (tồn tại hàng nghìn); sử dụng API.
Tính giá trị vị trí
CPMM / AMM v4 LP
Ba mô-đun không chia sẻ chữ ký:liquidity.getPoolInfoFromRpc lấy { poolId }, trong khi cpmm.getPoolInfoFromRpc và clmm.getPoolInfoFromRpc lấy một chuỗi base58 vị trí.
raydium.token hoặc một oracle giá).
CLMM position
- Giá trị thanh khoản (giá hiện tại)
- Phí chưa thu thập
- Phần thưởng chưa nhận mỗi luồng
- Phạm vi:
[tickLower_price, tickUpper_price]với một thanh trực quan cho thấy liệu giá hiện tại có nằm trong phạm vi hay không
Farm stake
reward_per_share_x64 bằng công thức cập nhật lười trước khi tính toán (thời gian trôi qua × tỷ lệ phát hành ÷ tổng_staked).
Mô phỏng giao dịch để xem trước
Trước khi người dùng ký, ví thường xem trước các thay đổi số dư. Sử dụngsimulateTransaction:
accounts yêu cầu trình xác thực trả về trạng thái tài khoản sau mô phỏng cho các địa chỉ được liệt kê. Chính xác hơn nhiều so với cố gắng dự đoán thay đổi số dư từ hình dạng hướng dẫn một mình.
Các cạm bẫy mô phỏng
- CLMM swap cần các mảng tick hợp lệ. Nếu kích thước đầu vào của người dùng sẽ vượt qua một mảng tick chưa được khởi tạo, mô phỏng sẽ hoàn nguyên (giống như thực thi). Hiển thị điều này rõ ràng trong giao diện người dùng.
- Phí ưu tiên. Mô phỏng chạy mà không có các hướng dẫn ngân sách tính toán được áp dụng. Đối với một giao dịch lớn sẽ vượt quá 200k CU mặc định, mô phỏng không thành công nhưng thực thi thực tế với giới hạn CU rõ ràng thành công. Luôn đặt giới hạn CU trên tx được mô phỏng cũng vậy.
- Blockhash tươi. Mô phỏng sử dụng blockhash hiện tại; nếu ký kéo dài >60 giây, tx trở nên không hợp lệ. Mô phỏng lại nếu người dùng do dự.
Hiển thị Token-2022
Các token theo chương trình Token-2022 nên được gắn nhãn như vậy trong danh sách token của ví, vì chúng có các bề mặt rủi ro khác nhau:- Transfer-fee mint: hiển thị
transferFeeBasisPointshiện tại dưới dạng “Transfer fee: X%” bên cạnh số dư. Cảnh báo khi nhận — người dùng có thể không nhận ra rằng họ sẽ nhận được ít hơn những gì người gửi đã gửi. - Transfer-hook mint: hiển thị ID chương trình hook. Một hook độc hại có thể chặn các chuyển khoản gửi đi; người dùng nên xác minh hook là cái họ mong đợi.
- Non-transferable mint: hiển thị “Non-transferable” và vô hiệu hóa swap/send. Đây thường là token soulbound hoặc thông tin xác thực.
- Interest-bearing mint: số dư giao diện người dùng được lấy từ
TokenAccount.amountkhông phản ánh lãi suất tích lũy. Sử dụngamountToUiAmounttừ@solana/spl-token(áp dụng hệ số tỷ lệ) cho giá trị được hiển thị.
Hiển thị Farm APR
APR được hiển thị cho người dùng nên kết hợp tất cả các luồng phần thưởng trực tiếp, được chuyển đổi thành USD và hàng năm:APR: X.Y%. Nếu staking mint là một LP token, cũng tính toán APR phí cơ sở LP cơ bản và gắn nhãn tổng dưới dạng “Total APR” hoặc “APR + fees”.
Con trỏ
products/clmm/ticks-and-positions— lấy dẫn giá trị vị trí.products/farm-staking/accounts— các trường trạng thái farm.algorithms/token-2022-transfer-fees— ngữ nghĩa hiển thị cho các token phí chuyển.
- Raydium SDK v2 — trợ giúp vị trí/farm.
- Các điểm cuối vị trí người dùng trên
api-v3.raydium.io.

