Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Wallets, die Raydium integrieren, müssen typischerweise vier Fragen pro Benutzer beantworten: In welchen Pools hat dieser Benutzer LP? Welche Positionen (CLMM-NFTs) hält er? In welchen Farms ist er gestaked? Wie viel ist das alles wert? Diese Seite dokumentiert jedes davon.
Raydium-Positionen erkennen
Klassische LP-Token (CPMM, AMM v4)
Diese sehen wie jeder andere SPL-Token aus: Das ATA des Benutzers hält einen Saldo. Eine Wallet zeigt dies standardmäßig einfach als einen weiteren Token an. Um es als Raydium-LP-Position zu offenbaren:- Zählen Sie die Token-Konten des Benutzers auf:
connection.getParsedTokenAccountsByOwner(user, { programId: TOKEN_PROGRAM_ID }). - Überprüfen Sie für jede Mint die Raydium-Mint-Liste:
GET https://api-v3.raydium.io/pools/info/lps?lps=<LP_MINT>,...(bis zu ~50 LP-Mints pro Aufruf zusammenfassen). - Für Mints, die übereinstimmen, gibt die API die Pool-Referenz zurück. Verwenden Sie sie, um den Token-denominierten Wert der Position zu berechnen:
CLMM-Positions-NFTs
CLMM-Positionen sind NFTs. DiePersonalPositionState PDA jeder Position wird von der NFT-Mint abgeleitet. Zur Erkennung:
- Zählen Sie die NFTs des Benutzers auf. Für Legacy-Metaplex-NFTs: Filtern Sie Token-Konten auf solche mit Supply 1 und Dezimalstellen 0.
- Versuchen Sie für jede NFT-Mint, die PersonalPositionState PDA abzuleiten:
-
Zählen Sie die Positionen der Wallet mit
raydium.clmm.getOwnerPositionInfo({ programId })auf und gleichen SienftMintab (es gibt keingetPositionInfo). Jeder Eintrag gibt Ihnen:poolId→ Pool abrufen, um Mints aufzulösentickLower,tickUpper→ Bereich anzeigenliquidity,tokensOwedA/B→ Positionswert + ausstehende Gebühren berechnenrewardInfos→ ausstehende Rewards pro Stream
-
Für Positions-NFTs, die unter Token-2022 ausgegeben wurden (
OpenPositionWithToken22Nft), ist das Programm der NFT-Mint Token-2022 statt SPL Token. Zählen Sie beide auf, wenn Sie scannen.
Farm-Stakes
Farm v3 / v5 / v6 haben jeweils eine Pro-Benutzer-Ledger-PDA. Ableitungen:UserLedger PDAs, indem Sie den Benutzer mit einer kuratierten Liste „wahrscheinlicher” Farm-IDs hashen. Das vollständige Aufzählen aller Farm-IDs ist unpraktisch (es existieren Tausende); verwenden Sie die API.
Positionswert berechnen
CPMM / AMM v4 LP
Die drei Module teilen keine Signatur:liquidity.getPoolInfoFromRpc nimmt { poolId }, während cpmm.getPoolInfoFromRpc und clmm.getPoolInfoFromRpc einen positionalen Base58-String nehmen.
raydium.token oder einem Price-Oracle).
CLMM-Position
- Liquiditätswert (aktueller Preis)
- Nicht eingezogene Gebühren
- Ausstehende Rewards pro Stream
- Bereich:
[tickLower_price, tickUpper_price]mit einem visuellen Balken, der zeigt, ob der aktuelle Preis im Bereich liegt
Farm-Stake
reward_per_share_x64 mit der Lazy-Update-Formel aktualisieren, bevor Sie berechnen (verstrichene Zeit × Emissionsrate ÷ total_staked).
Transaktionssimulation für Vorschau
Bevor ein Benutzer signiert, zeigen Wallets normalerweise die Saldoänderungen in der Vorschau an. Verwenden SiesimulateTransaction:
accounts fordert den Validator auf, den Post-Simulations-Kontostatus für aufgelistete Adressen zurückzugeben. Viel genauer als der Versuch, die Saldoänderung allein aus der Anweisungsform vorherzusagen.
Simulations-Fallstricke
- CLMM-Swaps benötigen gültige Tick-Arrays. Wenn die Eingabegröße des Benutzers in ein nicht initialisiertes Tick-Array eindringen würde, wird die Simulation zurückgerollt (wie die Ausführung). Machen Sie dies deutlich in der UI.
- Priority Fee. Die Simulation läuft ohne die angewendeten Compute-Budget-Anweisungen. Für eine große Transaktion, die das Standard-200k CU überschreiten würde, schlägt die Simulation fehl, aber die tatsächliche Ausführung mit einem expliziten CU-Limit gelingt. Setzen Sie das CU-Limit auch auf der simulierten Tx.
- Frischer Blockhash. Die Simulation verwendet den aktuellen Blockhash; wenn das Signieren >60s dauert, wird die Tx ungültig. Simulieren Sie erneut, wenn der Benutzer zögert.
Token-2022-Anzeige
Token unter dem Token-2022-Programm sollten in der Token-Liste der Wallet als solche gekennzeichnet werden, da sie unterschiedliche Risikoflächen haben:- Transfer-Fee-Mints: Zeigen Sie die aktuellen
transferFeeBasisPointsals „Transfer-Gebühr: X%” neben dem Saldo an. Warnen Sie beim Empfangen — Benutzer könnten nicht realisieren, dass sie weniger erhalten als der Absender gesendet hat. - Transfer-Hook-Mints: Zeigen Sie die Hook-Programm-ID. Ein böswilliger Hook kann ausgehende Transfers blockieren; Benutzer sollten überprüfen, dass der Hook der erwartete ist.
- Nicht übertragbare Mints: Zeigen Sie „Nicht übertragbar” an und deaktivieren Sie Swap/Senden. Dies sind typischerweise Soulbound-Token oder Anmeldedaten.
- Zinsgestaffelte Mints: Der UI-Saldo, der von
TokenAccount.amountabgeleitet ist, spiegelt nicht aufgelaufene Zinsen wider. Verwenden SieamountToUiAmountvon@solana/spl-token(das den Skalierungsfaktor anwendet) für den angezeigten Wert.
Farm-APR-Anzeige
Der APR, der Benutzern angezeigt wird, sollte alle Live-Reward-Streams kombinieren, in USD umgerechnet und annualisiert:APR: X.Y% an. Wenn die Staking-Mint ein LP-Token ist, berechnen Sie auch den Basis-Gebühren-APR des zugrunde liegenden LP und kennzeichnen Sie die Summe als „Gesamt-APR” oder „APR + Gebühren”.
Verweise
products/clmm/ticks-and-positions— Positionswert-Ableitung.products/farm-staking/accounts— Farm-State-Felder.algorithms/token-2022-transfer-fees— Anzeigesemantik für Transfer-Fee-Token.
- Raydium SDK v2 — Positions-/Farm-Helfer.
- Benutzer-Positions-Endpunkte auf
api-v3.raydium.io.

