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 →
Banner de versión.
- SDK:
@raydium-io/raydium-sdk-v2@0.2.64-alpha - Cluster: Solana
mainnet-beta - ID del programa Stable AMM:
5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h(verreference/program-addresses) - Última verificación: 2026-09-09 contra el SDK
0.2.64-alphay las demostraciones amm/trade deraydium-sdk-V2-demo
liquidity del SDK maneja pools de Stable AMM de forma nativa. Los pools estables aparecen como version: 5 (o pooltype: "StablePool") en ApiV3PoolInfoStandardItem; los mismos helpers de addLiquidity / removeLiquidity / swap funcionan para ellos que para los pools de producto constante AMM v4 (version: 4) — el SDK detecta la variante y emite las instrucciones correctas automáticamente. La matemática de curva estable fuera de cadena se encuentra en src/raydium/liquidity/stable.ts.Configuración
Identificar un pool estable
Dos señales equivalentes enApiV3PoolInfoStandardItem:
version: 4, producto constante) como Stable AMM (version: 5) fluyen a través de la misma API LiquidityModule en el SDK. Internamente el módulo se distribuye a:
InstructionType.AmmV4AddLiquidity/AmmV4RemoveLiquiditypara pools v4InstructionType.AmmV5AddLiquidity/AmmV5RemoveLiquiditypara pools v5 (estables)
programId del pool (devuelto con las claves del pool) le dice al SDK a qué programa hacer CPI; no necesitas codificarlo.
Encontrar un pool por par de mints
Hacer swap a través de un pool estable
El flujoLiquidityModule.swap tiene la misma forma que para pools v4 — simplemente pásale un objeto de pool v5. Dos detalles son fáciles de equivocar: computeAmountOut necesita las reservas en vivo del pool injertadas en la información del pool (el elemento de la API solo no las lleva), y su slippage es un número simple, no un Percent:
programId del pool desde las claves del pool y se distribuye al programa Stable AMM. No se necesita un argumento programId especial.
Agregar y remover liquidez
addLiquidity y removeLiquidity funcionan de forma idéntica en pools v4 y v5:
InstructionType.AmmV5AddLiquidity porque pooltype.includes("StablePool") es verdadero. El flujo correspondiente de removeLiquidity es simétrico — proporciona lpAmount y las cantidades mínimas que aceptarás en cada lado.
Helpers de cotización fuera de cadena (stable.ts)
Para cotización del lado del servidor o backtesting, el SDK expone la matemática de curva estable subyacente:ModelDataInfo en cadena se obtiene una vez mediante initLayout() y se almacena en caché dentro de raydium.liquidity.stableLayout, legible como .stableModelData. initStableModelLayout() es idempotente: solo vuelve a obtener mientras validDataCount === 0, por lo que llamar a initLayout() nuevamente es gratis. Pasa las reservas actuales (x, y) y los helpers calculan buscando binariamente la tabla de búsqueda e interpolando linealmente entre las dos filas DataElement circundantes. Ver products/stable/math para el algoritmo subyacente.
Enrutamiento a través de AMM Routing (multi-salto / mejor precio)
Si no quieres elegir un venue tú mismo, el programa AMM Routing considerará cada AMM de Raydium (v4 / CPMM / CLMM / estable) y enrutará a través de la combinación que sea mejor: El enrutador es un pipeline de cinco llamadas en lugar de un únicoswap(), y está escrito completamente — con el consejo de almacenamiento en caché que lo hace utilizable en producción — en products/routing/code-demos. La forma es:
Recomendaciones
- Para swaps de usuario final, prefiere el flujo de enrutamiento
tradeV2. Maneja cada tipo de pool de Raydium incluyendo estable. - Para operaciones específicas de pool (agregar/remover LP en un pool estable conocido), usa
LiquidityModuledirectamente — detecta automáticamente pools v5. - Para cotización fuera de cadena / análisis, llama a
getStablePrice/getDyByDxBaseIn/getDxByDyBaseIndespués deinitLayout(). Sin tráfico RPC por cotización después de que los datos del modelo se almacenan en caché. - No codifiques manualmente instrucciones
SwapBaseInbrutas. La actualización 2026-06-22 eliminó las cuentas OpenBook muertas, por lo que el nuevo diseño de swap toma 9 cuentas (el antiguo diseño de 18 cuentas aún se analiza para compatibilidad hacia atrás).Depositahora es 12 cuentas (antiguo 14 compatible),Withdraw12 (antiguo 21/22 compatible), yWithdrawPnl10 sin ninguna ruta de compatibilidad. Los helpers precompilados del SDK seleccionan el diseño y orden correcto para ti; hacer el tuyo propio es propenso a errores. Verproducts/stable/instructionspara las tablas de cuentas completas.
Dónde ir a continuación
- Math — cómo funciona la interpolación de tabla de búsqueda.
- Instructions — referencia completa de instrucciones.
- AMM Routing — enrutamiento multi-pool en AMM v4, CPMM, CLMM, estable.
raydium-sdk-V2/src/raydium/liquidity/liquidity.ts— punto de entrada del módulo; distribución v4 / v5.raydium-sdk-V2/src/raydium/liquidity/stable.ts—StableLayout,getStablePrice,getDxByDyBaseIn,getDyByDxBaseIn.

