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.
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Carteiras que integram Raydium normalmente precisam responder quatro perguntas por usuário: em quais pools o usuário tem participação como LP? quais posições (NFTs CLMM) ele detém? em quais farms ele está com stake? qual é o valor total? Esta página documenta cada um desses aspectos.
Detectando posições Raydium
LP tokens clássicos (CPMM, AMM v4)
Parecem qualquer outro SPL Token: a ATA do usuário contém um saldo. Uma carteira exibe isso como apenas outro token por padrão. Para revelar como uma posição Raydium LP:- Enumere as contas de token do usuário:
connection.getParsedTokenAccountsByOwner(user, { programId: TOKEN_PROGRAM_ID }). - Para cada mint, verifique a lista de mints do Raydium:
GET https://api-v3.raydium.io/pools/info/lps?lps=<LP_MINT>,...(agrupe até ~50 LP mints por chamada). - Para mints que correspondem, a API retorna a referência do pool. Use-a para calcular o valor da posição em termos de tokens:
NFTs de posição CLMM
Posições CLMM são NFTs. CadaPersonalPositionState PDA de uma posição é derivado do mint do NFT. Para detectar:
- Enumere os NFTs do usuário. Para NFTs Metaplex legados: filtre contas de token para aquelas com supply 1 e decimals 0.
- Para cada mint de NFT, tente derivar a PDA PersonalPositionState:
-
Decodifique via
raydium.clmm.getPositionInfo({ positionPda })para obter:poolId→ busque o pool para resolver mintstickLower,tickUpper→ exiba o intervaloliquidity,tokensOwedA/B→ calcule o valor da posição + taxas pendentesrewardInfos→ recompensas pendentes por stream
-
Para NFTs de posição emitidos sob Token-2022 (
OpenPositionWithToken22Nft), o programa do mint do NFT é Token-2022 em vez de SPL Token. Enumere ambos ao fazer a varredura.
Stakes em farms
Farm v3 / v5 / v6 cada uma possuem uma PDA de ledger por usuário. Derivações:UserLedger fazendo hash do usuário com uma lista curada de IDs de farms “prováveis”. Enumerar todos os IDs de farms exaustivamente é impraticável (existem milhares); use a API.
Calculando o valor da posição
LP CPMM / AMM v4
raydium.token ou um oráculo de preços).
Posição CLMM
- Valor da liquidez (preço atual)
- Taxas não coletadas
- Recompensas pendentes por stream
- Intervalo:
[tickLower_price, tickUpper_price]com uma barra visual mostrando se o preço atual está dentro do intervalo
Stake em farm
reward_per_share_x64 com a fórmula de lazy-update antes de calcular (tempo decorrido × taxa de emissão ÷ total_staked).
Simulação de transação para pré-visualização
Antes de um usuário assinar, carteiras normalmente fazem pré-visualização das mudanças de saldo. UsesimulateTransaction:
accounts solicita ao validador que retorne o estado da conta pós-simulação para os endereços listados. Muito mais preciso do que tentar prever a mudança de saldo apenas pela forma da instrução.
Armadilhas de simulação
- Swaps CLMM precisam de tick arrays válidos. Se o tamanho de entrada do usuário atravessaria um tick array não inicializado, a simulação reverte (como na execução). Superficialize isso claramente na interface.
- Taxa de prioridade. A simulação é executada sem as instruções do orçamento de computação aplicadas. Para uma transação grande que ultrapassaria os 200k CU padrão, a simulação falha, mas a execução real com um limite de CU explícito funciona. Sempre defina o limite de CU na tx simulada também.
- Blockhash fresco. A simulação usa o blockhash atual; se a assinatura levar >60s, a tx se torna inválida. Re-simule se o usuário hesitar.
Exibição Token-2022
Tokens sob o programa Token-2022 devem ser rotulados como tal na lista de tokens da carteira, pois possuem superfícies de risco diferentes:- Mints com taxa de transferência: exiba o
transferFeeBasisPointsatual como “Taxa de transferência: X%” ao lado do saldo. Avise ao receber — usuários podem não perceber que receberão menos do que o remetente enviou. - Mints com transfer-hook: superficialize a ID do programa de hook. Um hook malicioso pode bloquear transferências de saída; usuários devem verificar se o hook é o que esperam.
- Mints não transferíveis: exiba “Não transferível” e desative swap/envio. Normalmente são tokens vinculados à alma ou credenciais.
- Mints com juros: o saldo da interface derivado de
TokenAccount.amountnão reflete juros acumulados. UseamountToUiAmountde@solana/spl-token(que aplica o fator de escala) para o valor exibido.
Exibição de APR em farms
O APR exibido aos usuários deve combinar todos os streams de recompensas ao vivo, convertidos para USD e anualizados:APR: X.Y%. Se o mint de staking for um token LP, também calcule o APR de taxa base do LP subjacente e rotule a soma como “APR Total” ou “APR + taxas”.
Referências
products/clmm/ticks-and-positions— derivação de valor de posição.products/farm-staking/accounts— campos de estado da farm.algorithms/token-2022-transfer-fees— semântica de exibição para tokens com taxa de transferência.
- SDK Raydium v2 — auxiliares de posição/farm.
- Endpoints de posição de usuário em
api-v3.raydium.io.


