Skip to main content
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.42-alpha
  • Cluster: Solana mainnet-beta
  • ID del programa Stable AMM: 5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h (ver reference/program-addresses)
  • Última verificación: 2026-04
El módulo 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 ayudantes addLiquidity / removeLiquidity / swap funcionan para ellos que para pools de producto constante AMM v4 (version: 4) — el SDK detecta la variante y emite las instrucciones correctas automáticamente. Las matemáticas de curva estable fuera de cadena se encuentran en src/raydium/liquidity/stable.ts.

Configuración

Identificar un pool estable

Dos señales equivalentes en ApiV3PoolInfoStandardItem:
Tanto AMM v4 (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 / AmmV4RemoveLiquidity para pools v4
  • InstructionType.AmmV5AddLiquidity / AmmV5RemoveLiquidity para pools v5 (Stable)
El programId del pool (devuelto con las claves del pool) le dice al SDK en qué programa hacer CPI; no necesitas codificarlo de forma fija.

Encontrar un pool por par de mints

Si el par de mints tiene tanto un pool v4 (producto constante) como un pool v5 (estable), la respuesta incluye ambos — elige el que tu flujo necesita, o entrégalos al programa AMM Routing y deja que elija la mejor ruta.

Hacer swap a través de un pool estable

El flujo LiquidityModule.swap tiene la misma forma que para pools v4 — simplemente entrégale un objeto pool v5:
El SDK lee el programId del pool desde las claves del pool y se distribuye al programa Stable AMM. No se necesita ningún argumento programId especial.

Agregar y remover liquidez

addLiquidity y removeLiquidity funcionan de forma idéntica en pools v4 y v5:
Internamente el SDK emite 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.

Ayudantes de cotización fuera de cadena (stable.ts)

Para cotización del lado del servidor o backtesting, el SDK expone las matemáticas subyacentes de curva estable:
Estas son funciones puras — sin RPC, sin firma. El ModelDataInfo en cadena se obtiene una sola vez mediante initLayout() y se almacena en caché en raydium.liquidity.stableLayout. Pasa las reservas actuales (x, y) y los ayudantes calculan mediante búsqueda binaria en la tabla de búsqueda e interpolación lineal 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 por ti mismo, el programa AMM Routing considerará cada AMM de Raydium (v4 / CPMM / CLMM / Stable) y enrutará a través de la combinación que sea mejor:
Esta es la ruta recomendada para swaps de producción y agregadores — nunca necesitas decidir manualmente si existe un pool Stable o si es el mejor venue hoy.

Recomendaciones

  1. Para swaps de usuario final, prefiere el flujo de enrutamiento tradeV2. Maneja cada tipo de pool de Raydium incluyendo Stable.
  2. Para operaciones específicas de pool (agregar / remover LP en un pool Stable conocido), usa LiquidityModule directamente — detecta automáticamente pools v5.
  3. Para cotización fuera de cadena / análisis, llama a getStablePrice / getDyByDxBaseIn / getDxByDyBaseIn después de initLayout(). Sin tráfico RPC por cotización después de que los datos del modelo estén en caché.
  4. No codifiques manualmente instrucciones SwapBaseIn sin procesar. La actualización 2026-06-22 eliminó las cuentas OpenBook muertas, así que el nuevo layout de swap toma 9 cuentas (el antiguo layout de 18 cuentas aún se analiza para compatibilidad hacia atrás). Deposit ahora es 12 cuentas (antiguo 14 compatible), Withdraw 12 (antiguo 21/22 compatible), y WithdrawPnl 10 sin ninguna ruta de compatibilidad. Los ayudantes pre-construidos del SDK seleccionan el layout y orden correcto para ti; hacer el tuyo propio es propenso a errores. Ver products/stable/instructions para 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, Stable.
Fuentes: