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 fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
Las billeteras que integran Raydium suelen necesitar responder cuatro preguntas por usuario: ¿en qué pools tiene este usuario LP? ¿qué posiciones (NFTs de CLMM) posee? ¿en qué granjas tiene apuestas? ¿cuánto vale todo? Esta página documenta cada uno.
Detección de posiciones Raydium
Tokens LP clásicos (CPMM, AMM v4)
Se ven como cualquier otro SPL Token: la ATA del usuario mantiene un saldo. Una billetera muestra esto como otro token más por defecto. Para revelarlo como una posición LP de Raydium:- Enumera las cuentas de token del usuario:
connection.getParsedTokenAccountsByOwner(user, { programId: TOKEN_PROGRAM_ID }). - Para cada mint, consulta la lista de mints de Raydium:
GET https://api-v3.raydium.io/pools/info/lps?lps=<LP_MINT>,...(agrupa hasta ~50 LP mints por llamada). - Para los mints que coincidan, la API devuelve la referencia del pool. Úsala para calcular el valor denominado en tokens de la posición:
NFTs de posición CLMM
Las posiciones de CLMM son NFTs. El PDAPersonalPositionState de cada posición se deriva del mint del NFT. Para detectar:
- Enumera los NFTs del usuario. Para NFTs Metaplex heredados: filtra las cuentas de token a aquellas con oferta 1 y decimales 0.
- Para cada mint de NFT, intenta derivar el PDA PersonalPositionState:
-
Decodifica vía
raydium.clmm.getPositionInfo({ positionPda })para obtener:poolId→ obtén el pool para resolver los mintstickLower,tickUpper→ muestra el rangoliquidity,tokensOwedA/B→ calcula el valor de la posición + comisiones pendientesrewardInfos→ recompensas pendientes por stream
-
Para NFTs de posición emitidos bajo Token-2022 (
OpenPositionWithToken22Nft), el programa del mint del NFT es Token-2022 en lugar de SPL Token. Enumera ambos al escanear.
Apuestas en granjas
Farm v3 / v5 / v6 cada uno tienen un PDA de ledger por usuario. Derivaciones:UserLedger posibles hasheando el usuario con una lista seleccionada de IDs de granjas “probables”. Enumerar exhaustivamente todos los IDs de granjas es impracticable (existen miles); usa la API.
Cálculo del valor de la posición
LP de CPMM / AMM v4
raydium.token u un oráculo de precios).
Posición CLMM
- Valor de liquidez (precio actual)
- Comisiones no cobradas
- Recompensas pendientes por stream
- Rango:
[tickLower_price, tickUpper_price]con una barra visual que muestre si el precio actual está dentro del rango
Apuesta en granja
reward_per_share_x64 con la fórmula de actualización perezosa antes de calcular (tiempo transcurrido × tasa de emisión ÷ total_apuestado).
Simulación de transacciones para vista previa
Antes de que un usuario firme, las billeteras suelen previsualizar los cambios de saldo. UsasimulateTransaction:
accounts le pide al validador que devuelva el estado de la cuenta posterior a la simulación para las direcciones listadas. Mucho más preciso que intentar predecir el cambio de saldo únicamente por la forma de la instrucción.
Trampas de simulación
- Los swaps de CLMM necesitan arrays de ticks válidos. Si el tamaño de entrada del usuario cruzaría hacia un array de ticks no inicializado, la simulación revierte (igual que la ejecución). Muestra esto claramente en la interfaz.
- Comisión de prioridad. La simulación se ejecuta sin las instrucciones de presupuesto de cálculo aplicadas. Para una transacción grande que excedería el CU predeterminado de 200k, la simulación falla pero la ejecución real con un límite de CU explícito tiene éxito. Siempre establece el límite de CU en la tx simulada también.
- Blockhash fresco. La simulación usa el blockhash actual; si la firma tarda >60s la tx se vuelve inválida. Resimula si el usuario duda.
Visualización de Token-2022
Los tokens bajo el programa Token-2022 deben etiquetarse como tales en la lista de tokens de la billetera, ya que tienen superficies de riesgo diferentes:- Mints de tarifa de transferencia: muestra los actuales
transferFeeBasisPointscomo “Tarifa de transferencia: X%” junto al saldo. Advierte al recibir — los usuarios pueden no darse cuenta de que recibirán menos de lo que el remitente envió. - Mints de gancho de transferencia: expón el ID del programa del gancho. Un gancho malicioso puede bloquear transferencias salientes; los usuarios deben verificar que el gancho sea el que esperan.
- Mints no transferibles: muestra “No transferible” e inhabilita swap/envío. Estos suelen ser tokens vinculados al alma o credenciales.
- Mints que generan interés: el saldo de la interfaz derivado de
TokenAccount.amountno refleja el interés acumulado. UsaamountToUiAmountdesde@solana/spl-token(que aplica el factor de escala) para el valor mostrado.
Visualización de APR de granjas
El APR mostrado a los usuarios debe combinar todos los streams de recompensas en vivo, convertidos a USD, y anualizados:APR: X.Y%. Si el mint de apuestas es un token de LP, también calcula el APR de tarifa base del LP subyacente y etiqueta la suma como “APR total” o “APR + comisiones”.
Referencias
products/clmm/ticks-and-positions— derivación del valor de la posición.products/farm-staking/accounts— campos de estado de la granja.algorithms/token-2022-transfer-fees— semántica de visualización para tokens con tarifa de transferencia.
- Raydium SDK v2 — ayudantes de posición/granja.
- Endpoints de posición de usuario en
api-v3.raydium.io.


