本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
錢包整合 Raydium 時,通常需要針對每位使用者回答四個問題:該使用者在哪些流動性池中有 LP?他們持有哪些頭寸(CLMM NFT)?他們質押了哪些農場?這一切的價值有多少?本頁記載了各項細節。
檢測 Raydium 頭寸
經典 LP 代幣(CPMM、AMM v4)
這些看起來就像任何其他 SPL Token:使用者的 ATA 中持有餘額。錢包預設將其視為另一種代幣。要將其揭示為 Raydium LP 頭寸:- 列舉使用者的代幣帳戶:
connection.getParsedTokenAccountsByOwner(user, { programId: TOKEN_PROGRAM_ID })。 - 針對每個 mint,檢查 Raydium 的 mint 列表:
GET https://api-v3.raydium.io/pools/info/lps?lps=<LP_MINT>,...(每次呼叫最多批量約 50 個 LP mint)。 - 對於相符的 mint,API 會傳回流動性池參考。使用它來計算該頭寸的代幣面額價值:
CLMM 頭寸 NFT
CLMM 頭寸是 NFT。每個頭寸的PersonalPositionState PDA 是從 NFT mint 衍生的。要檢測:
- 列舉使用者的 NFT。對於舊版 Metaplex NFT:將代幣帳戶篩選為供應量為 1 且小數點為 0 的帳戶。
- 針對每個 NFT mint,嘗試衍生 PersonalPositionState PDA:
-
透過
raydium.clmm.getPositionInfo({ positionPda })進行解碼以取得:poolId→ 取得流動性池以解析 minttickLower、tickUpper→ 顯示範圍liquidity、tokensOwedA/B→ 計算頭寸價值 + 待領手續費rewardInfos→ 每個獎勵流的待領獎勵
-
對於在 Token-2022 下發行的頭寸 NFT(
OpenPositionWithToken22Nft),NFT mint 的程式是 Token-2022 而非 SPL Token。掃描時需列舉兩者。
農場質押
農場 v3 / v5 / v6 各有一個針對每位使用者的帳本 PDA。衍生方式:UserLedger PDA。完全列舉所有農場 ID 並不實際(存在數千個);請使用 API。
計算頭寸價值
CPMM / AMM v4 LP
raydium.token 或價格預言機)。
CLMM 頭寸
- 流動性價值(當前價格)
- 未收取的手續費
- 每個流的待領獎勵
- 範圍:
[tickLower_price, tickUpper_price],顯示當前價格是否在範圍內的視覺條
農場質押
reward_per_share_x64(經過時間 × 發行速率 ÷ 總質押)。
交易預覽的模擬
在使用者簽署前,錢包通常會預覽餘額變化。使用simulateTransaction:
accounts 參數要求驗證程序針對列出的位址傳回模擬後的帳戶狀態。比嘗試從指令形狀單獨預測餘額變化要準確得多。
模擬陷阱
- CLMM 交換需要有效的 tick 陣列。 如果使用者的輸入大小會進入未初始化的 tick 陣列,模擬會回溯(與執行相同)。在 UI 中清楚地顯示此情況。
- 優先費用。 模擬執行時不應用計算預算指令。對於大型交易如果會超過預設 200k CU,模擬會失敗但使用明確 CU 限制的實際執行會成功。也在被模擬的交易上設定 CU 限制。
- 新鮮的 blockhash。 模擬使用當前 blockhash;如果簽署需要超過 60 秒,交易會變成無效。如果使用者猶豫不決,請重新模擬。
Token-2022 顯示
Token-2022 程式下的代幣應在錢包的代幣列表中標示為此類,因為它們具有不同的風險表面:- 轉帳費用 mint:在餘額旁顯示目前的
transferFeeBasisPoints為「轉帳費用:X%」。接收時發出警告——使用者可能沒意識到他們會收到少於發送者傳送的金額。 - 轉帳鉤子 mint:顯示鉤子程式 ID。惡意鉤子可以阻止出站轉帳;使用者應驗證鉤子是他們預期的。
- 不可轉帳 mint:顯示「不可轉帳」並禁用交換/傳送。這些通常是靈魂綁定代幣或憑證。
- 利息型 mint:從
TokenAccount.amount衍生的 UI 餘額不反映累積利息。使用來自@solana/spl-token的amountToUiAmount(應用調整係數)作為顯示價值。
農場 APR 顯示
向使用者顯示的 APR 應結合所有現場獎勵流,轉換為美元並年化:APR: X.Y%。如果質押 mint 是 LP 代幣,也計算基礎 LP 的基本手續費 APR 並將總和標示為「總 APR」或「APR + 手續費」。
指標
products/clmm/ticks-and-positions— 頭寸價值衍生。products/farm-staking/accounts— 農場狀態欄位。algorithms/token-2022-transfer-fees— 轉帳費用代幣的顯示語義。
- Raydium SDK v2 — 頭寸/農場助手。
api-v3.raydium.io上的使用者頭寸端點。

