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. Todas las demostraciones apuntan a @raydium-io/raydium-sdk-v2@0.2.64-alpha contra Solana mainnet-beta, verificado 2026-09-09 — cada nombre de constructor, nombre de parámetro y tipo de parámetro de más abajo se comprobó contra el código fuente de esa versión y contra raydium-sdk-V2-demo/src/amm. ID del programa: 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 (ver reference/program-addresses).Dos trampas que afectan a la mayoría de las primeras integraciones: el slippage de computeAmountOut es un número simple (0.005 = 0.5%), no un Percent; y liquidity.swap requiere inputMint como cadena base58.La creación de nuevos pools no se muestra aquí. La interfaz de Raydium ya no ofrece la creación de pools AMM v4 — los pares nuevos usan CPMM por defecto. El programa AMM v4 en sí todavía acepta Initialize2 en cadena; simplemente no es la vía recomendada. Las demostraciones de más abajo cubren las operaciones sobre pools activos que todo integrador sigue necesitando: swap, depósito, retiro.
La creación de nuevos pools no se muestra aquí. La interfaz de Raydium ya no ofrece creación de pools AMM v4 — los nuevos pares usan por defecto CPMM. El programa AMM v4 en sí sigue aceptando Initialize2 en cadena; simplemente no es la ruta recomendada. Las demostraciones a continuación cubren las operaciones de pool activo que todo integrador aún necesita: swap, depósito, retiro.

Configuración

Obtener un pool por ID

poolKeys es la estructura que consumen los constructores de instrucciones. Contiene todas las cuentas de AMM v4 en el orden que el programa espera, más los campos heredados del mercado que el programa actual acepta posicionalmente pero ya no lee.

Swap (entrada base)

El SDK enruta los swaps de AMM v4 a través de los puntos de entrada V2, que no incluyen las cuentas de OpenBook. (Después de la actualización de 2026-07, las cuentas de mercado ya no se validan ni en la ruta v1 heredada.)

Swap (salida base)

Agregar liquidez

fixedSide: "a" le indica al SDK que proporcionaste el amountInA exacto y que amountInB debe ser como máximo maxAnotherAmount. La matemática prorrateada se calcula sobre los saldos de las bóvedas menos el PnL acumulado — ya no hay ningún componente en libro que liquidar primero.

Retirar liquidez

Los mínimos de slippage protegen contra cambios en el estado del pool entre tu precotización y el tiempo de ejecución.

Ajuste de unidades de cálculo / tarifa de prioridad

Desde la eliminación de OpenBook, un swap de AMM v4 ya no valida ningún estado de mercado, así que un SwapBaseIn V1 es notablemente más barato de lo que era — y SwapBaseInV2 (8 cuentas, sin marcadores de posición de mercado) es aún más barato. Mide tu propia ruta en lugar de presupuestar a partir de cifras históricas, y pasa siempre un límite explícito de unidades de cálculo:
Si omites computeBudgetConfig, el SDK aún puede usar su propio valor predeterminado; inspecciona la transaction devuelta para confirmar. Ver integration-guides/priority-fee-tuning.

CPI directo en Rust

Si debes hacer CPI en AMM v4 desde tu propio programa Anchor, necesitarás modelar la lista de cuentas de SwapBaseIn exactamente. Un esquema mínimo:
AMM v4 no incluye un crate de Anchor para CPI. El esquema anterior usa una Instruction construida manualmente.
El esquema de CPI anterior usa el diseño heredado v1 SwapBaseIn (etiqueta 9, 17 cuentas) para leer/reproducir transacciones existentes. Desde la actualización de 2026-07, las cuentas de mercado se aceptan pero se ignoran. Para código nuevo, prefiere SwapBaseInV2 / SwapBaseOutV2 (etiquetas 16 / 17), que eliminan las cuentas de mercado (y amm_open_orders) completamente — pasa solo 8 cuentas: token_program, amm, amm_authority, los dos vaults del pool, las dos cuentas de token del usuario, y user_owner.

Trampas

  • Recuento de cuentas incorrecto en swaps v1. El SwapBaseIn / SwapBaseOut heredado aún requiere la lista completa de 17 cuentas (o 18 cuentas) — un recuento no coincidente revierte con WrongAccountsNumber. El contenido de las cuentas de mercado ya no se valida, pero aún debes ocupar sus espacios. Prefiere los puntos de entrada V2 para evitar esto.
  • Lectura de saldos de vault sin procesar. Las reservas ahora son solo de vault; resta la PnL acumulada (need_take_pnl_*). La cotización del SDK o api-v3.raydium.io/pools/info/ids lo maneja por ti.
  • Llamar a instrucciones eliminadas. MonitorStep, MigrateToOpenBook, WithdrawSrm, SimulateInfo, AdminCancelOrders, e Initialize / PreInitialize heredados ahora revierten. Usa Initialize2 para creación de pools; no hay crank que llamar.
  • Mints de Token-2022. No soportados. Un pool AMM v4 no puede crearse contra un mint de Token-2022; cualquier par de Token-2022 debe estar en CPMM o CLMM.

Dónde ir a continuación

Fuentes: