Saltar al contenido principal
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.42-alpha contra Solana mainnet-beta, verificado 2026-04. ID del programa: 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 (ver reference/program-addresses).
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 y OpenBook en el orden que el programa espera.

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 liquidez en libro del pool se liquida antes del cálculo prorrateado para que la relación de depósito coincida con las reservas más recientes.

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

Los swaps de AMM v4 son pesados en cálculo porque cada instrucción valida el estado completo de OpenBook. Un swap típico usa 180k–250k CU dependiendo de cuántas órdenes abiertas necesiten liquidarse en el camino. Siempre pasa un límite de unidades de cálculo:
Si omites computeBudgetConfig, el SDK aún puede usar su propio valor predeterminado; inspecciona innerTransactions 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: