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)
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
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 unSwapBaseIn 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:
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 deSwapBaseIn exactamente. Un esquema mínimo:
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/SwapBaseOutheredado aún requiere la lista completa de 17 cuentas (o 18 cuentas) — un recuento no coincidente revierte conWrongAccountsNumber. 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 oapi-v3.raydium.io/pools/info/idslo maneja por ti. - Llamar a instrucciones eliminadas.
MonitorStep,MigrateToOpenBook,WithdrawSrm,SimulateInfo,AdminCancelOrders, eInitialize/PreInitializeheredados ahora revierten. UsaInitialize2para 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
products/amm-v4/instructions— la superficie a nivel de instrucción detrás de estas demostraciones.user-flows/migrate-amm-v4-to-cpmm— si eres un LP considerando migración.integration-guides/priority-fee-tuning— dimensionamiento de tarifa de prioridad para swaps pesados de AMM v4.

