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 →
Dos conceptos distintos
El impacto de precio y el slippage se confunden frecuentemente en las interfaces, pero se refieren a cosas diferentes.-
Impacto de precio es una propiedad determinística de una operación contra un estado específico del pool. Dado
(Δin, reserves), el impacto de precio es completamente computable antes de enviar la operación. - Slippage es la diferencia realizada entre el precio que esperabas en el momento de la cotización y el precio que realmente obtuviste en el momento de la ejecución. Es una función de la latencia, transacciones concurrentes y orden de inclusión en bloques — no de las matemáticas del pool.
Definiciones formales
Impacto de precio
impact ≈ 2 · Δin / reserve_in para operaciones pequeñas. Para CLMM: depende de cuántos ticks cruce la operación; a menudo plano dentro del rango de tick actual, saltando en cada cruce de tick.
Slippage realizado
Dimensionamiento de minAmountOut y maxAmountIn
Cada swap de Raydium toma un límite de protección contra slippage:
SwapBaseInput(amount_in, min_amount_out)— entrada exacta, límite inferior en la salida.SwapBaseOutput(max_amount_in, amount_out)— salida exacta, límite superior en la entrada.
minAmountOut es amountOut × (1 − slippage) y es lo que va en cadena como límite; priceImpact es determinístico solo del estado del pool; fee es el total cobrado.
La tolerancia de slippage es un búfer alrededor del impacto de precio, no el impacto de precio en sí. Una tolerancia del 0.5% significa “acepta como máximo 0.5% peor que mi cotización” — independientemente de si el impacto de precio fue 0.01% (una operación pequeña) o 2% (una operación grande). Para una operación con impacto de precio del 2% y tolerancia del 0.5%, minAmountOut está 2.5% por debajo del spot anterior a la operación — esencialmente la suma del impacto y la tolerancia.
Tolerancias de slippage recomendadas
No hay un número único correcto; el límite correcto depende de:- Estabilidad del par. Los pools stablecoin-stablecoin pueden usar de forma segura 0.1%. Los pools de pares meme volátiles a menudo necesitan 3–5% solo para aterrizar de forma confiable.
- Tamaño de la operación. Las operaciones más grandes tienen impactos de precio más grandes, por lo que la tolerancia necesita escalar con ellas para evitar reversión. Los valores predeterminados de auto-slippage del SDK rondan
max(0.5%, 2 × price_impact)por esta razón. - Latencia de inclusión en bloque. Las transacciones que permanecen en el mempool durante múltiples bloques están expuestas a más operaciones concurrentes. Los bundles de Jito y las tarifas de prioridad reducen esto.
Diferencias entre tipos de AMM
CPMM
El impacto de precio es suave y continuo (forma cerrada2 · Δin / reserve_in). La tolerancia de slippage escala linealmente con el tamaño de la operación.
AMM v4
Las mismas matemáticas de curva que CPMM. Desde la eliminación de OpenBook, las “reservas efectivas” son solo los dos saldos de bóveda:- Cotiza fuera de los saldos de bóveda sin procesar. No hay componente en libro para agregar —
Initialize2escribeAmmInfo.open_orders = Pubkey::default()en cada nuevo pool, e ninguna instrucción lee una cuentaOpenOrders. - Resta el PnL de protocolo acumulado (
state_data.need_take_pnl_coin/need_take_pnl_pc) de los saldos de bóveda para obtener las reservas que el invariante realmente usa. - No hay crank para pre-ejecutar:
MonitorStepahora entra en pánico conunimplemented!y no debe ser enviado.
CLMM
El impacto de precio es por partes. Dentro del rango de tick actual, el impacto es aproximadamente lineal enΔin / L. Cruzar un límite de tick puede cambiar L discretamente, causando un salto repentino en el precio marginal. Una operación que cruza varios ticks escasamente poblados puede tener un impacto mucho mayor de lo que sugiere la regla práctica 2 · Δin / reserve.
La cotización CLMM del SDK itera el paso de swap de forma determinística para devolver un amountOut exacto esperado, por lo que minAmountOut = amountOut · (1 − slippage) es correcto. Pero el valor de retorno priceImpact debe interpretarse como “el diferencial entre el spot anterior a la operación y el spot posterior a la operación”, que en CLMM puede ser mucho mayor que el slippage efectivo de la operación para un usuario que solo le importa amount_out.
Curva LaunchLab
Similar a CPMM pero con una curva asimétrica (cuadrática o reservas virtuales). El impacto crece más rápido para compradores tardíos a medida que la curva se inclina hacia la graduación. Las interfaces de pre-comprador deben advertir cuando se espera que una compra empuje la curva más del ~5% dequote_reserve_target en una transacción.
Consideraciones de MEV
En Solana, la extracción de MEV contra swaps toma principalmente la forma de ataques sandwich: un bot coloca una transacción de back-run que opera después de la tuya, más un front-run que opera antes, ambos en el mismo slot. Tu operación se completa a un precio peor del que habría tenido sin el sandwich; el back-run captura la diferencia. Mitigaciones:minAmountOutajustado. Los límites de slippage agresivos causan que la transacción de la víctima se revierta si es fuertemente sándwich, protegiendo fondos (pero desperdiciando gas). En Solana esto es práctica estándar — el rechazo es barato.- Bundles de Jito. Enviar a través de Jito con una propina agrupada excluye intermediarios de reordenar tu tx. Los bundles aterrizan como bloques atómicos.
- Tarifas de prioridad. Una tarifa de prioridad alta aumenta la probabilidad de que tu operación aterrice en el bloque del líder actual antes de que un sandwicher pueda reaccionar. Menos robusto que bundles, más estándar.
- RPC privado. Enviar a través de un RPC privado (o a través del endpoint directo de un validador) reduce la ventana durante la cual un sandwicher de mempool puede observar tu transacción.
integration-guides/routing-and-mev para patrones.
Slippage para rutas multi-hop
Cuando un swap se enruta a través de múltiples pools (p. ej.USDC → SOL → RAY), la tolerancia de slippage debe aplicarse por-hop, no solo de extremo a extremo:
raydium.tradeV2.swap. (La fachada es tradeV2 — raydium.trade no existe.) Para enrutadores personalizados, replica el patrón.
Reportar a usuarios
Reglas prácticas para una buena interfaz de swap:- Muestra ambos impacto de precio esperado y tolerancia de slippage por separado.
- Resalta cuando el impacto de precio excede ~2% — advertencia de “impacto alto”.
- Resalta cuando el impacto de precio excede la tolerancia — la transacción casi seguramente se revertirá.
- Para pares volátiles, ofrece un “modo de slippage alto” que relaja el límite y muestra una advertencia más fuerte.
Referencias
products/cpmm/math,products/amm-v4/math,products/clmm/math— derivaciones de impacto por tipo de pool.integration-guides/routing-and-mev— enrutamiento multi-hop + defensas de MEV.integration-guides/priority-fee-tuning— dimensionamiento de tarifas de prioridad para reducir slippage.
- Implementación de slippage / impacto del SDK v2 de Raydium.
- Flashbots / Jito en MEV de Solana.

