Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Dois conceitos distintos
Price impact e slippage são frequentemente confundidos em UIs, mas referem-se a coisas diferentes.-
Price impact é uma propriedade determinística de uma transação contra um estado específico do pool. Dado
(Δin, reserves), o price impact é completamente computável antes da transação ser submetida. - Slippage é a diferença realizada entre o preço que você esperava no momento da cotação e o preço que você realmente obteve no momento da execução. É uma função de latência, transações concorrentes e ordem de inclusão de blocos — não da matemática do pool.
Definições formais
Price impact
impact ≈ 2 · Δin / reserve_in para transações pequenas. Para CLMM: depende de quantos ticks a transação atravessa; frequentemente plano dentro do intervalo de tick atual, saltando em cada cruzamento de tick.
Slippage realizado
Dimensionando minAmountOut e maxAmountIn
Toda swap da Raydium tem um limite de proteção contra slippage:
SwapBaseInput(amount_in, min_amount_out)— entrada exata, limita inferiormente a saída.SwapBaseOutput(max_amount_in, amount_out)— saída exata, limita superiormente a entrada.
minAmountOut fica 2.5% abaixo do spot pré-transação — essencialmente a soma do impacto e tolerância.
Tolerâncias de slippage recomendadas
Não existe um número único correto; o limite correto depende de:- Estabilidade do par. Pools stablecoin-stablecoin podem usar com segurança 0.1%. Pools de pares meme voláteis frequentemente precisam de 3–5% apenas para aterrissar com confiabilidade.
- Tamanho da transação. Transações maiores têm price impacts maiores, então a tolerância precisa escalar com eles para evitar reversão. O padrão de auto-slippage do SDK é em torno de
max(0.5%, 2 × price_impact)por esse motivo. - Latência de inclusão de bloco. Transações que ficam no mempool por múltiplos blocos são expostas a mais transações concorrentes. Jito bundles e priority fees reduzem isso.
| Tipo de par | Tolerância padrão |
|---|---|
| Stable-stable (USDC-USDT, USDC-USDS) | 0.1% |
| Stable-major (USDC-SOL, USDC-BTC) | 0.5% |
| Major-major (SOL-BTC, SOL-ETH) | 1% |
| Volátil (meme tokens, long-tail ilíquido) | 3–5% |
Diferenças entre tipos de AMM
CPMM
Price impact é suave e contínuo (forma fechada2 · Δin / reserve_in). A tolerância de slippage escala linearmente com o tamanho da transação.
AMM v4
Mesma matemática de curva que CPMM, mas as “reserves efetivas” incluem as ordens limitadas postadas pelo OpenBook do pool. Na prática, isso significa:- Cotar apenas os saldos brutos do vault subestima reserves e portanto superestima impact.
- O SDK busca
AmmInfoe somavault + on_book.free + on_book.lockedpara obter o número correto. - Estado obsoleto do OpenBook (crank bloqueado) pode causar divergência entre o impacto cotado e a realidade on-chain. Agregadores rotineiramente fazem pré-crank (permissionless
MonitorStep) antes de uma transação AMM-v4 grande.
CLMM
Price impact é por partes. Dentro do intervalo de tick atual, o impacto é aproximadamente linear emΔin / L. Cruzar um limite de tick pode mudar L discretamente, causando um salto repentino no preço marginal. Uma transação que atravessa vários ticks pouco populados pode ter impacto muito maior do que a regra 2 · Δin / reserve sugere.
A cotação CLMM do SDK itera o passo de swap deterministicamente para retornar um amountOut esperado exato, então minAmountOut = amountOut · (1 − slippage) está correto. Mas o valor de retorno priceImpact deve ser interpretado como “o spread entre o spot pré-transação e o spot pós-transação”, que em CLMM pode ser muito maior que o slippage efetivo da transação para um usuário que se importa apenas com amount_out.
Curva LaunchLab
Similar a CPMM mas com uma curva assimétrica (quadrática ou virtual-reserves). O impacto cresce mais rápido para compradores tardios conforme a curva se torna mais íngreme em direção à graduação. UIs de pré-comprador devem avisar quando uma compra é esperada empurrar a curva mais de ~5% doquote_reserve_target em uma transação.
Considerações de MEV
Em Solana, a extração de MEV contra swaps principalmente toma a forma de sandwich attacks: um bot coloca uma transação back-run que troca após a sua, mais um front-run que troca antes, ambos no mesmo slot. Sua transação é preenchida a um preço pior do que teria sido sem o sandwich; o back-run captura a diferença. Mitigações:minAmountOutapertado. Limites de slippage agressivos causam reversão da transação vítima se sandwichada pesadamente, protegendo fundos (mas desperdiçando gás). Em Solana isso é prática padrão — rejeição é barata.- Jito bundles. Submeter via Jito com uma dica agrupada exclui intermediários de reordenar sua tx. Bundles aterram como blocos atômicos.
- Priority fees. Uma priority fee alta aumenta a chance de sua transação aterrar no bloco do líder atual antes que um sandwicher possa reagir. Menos robusto que bundles, mais padrão.
- RPC privado. Submeter via uma RPC privada (ou via endpoint direto de um validador) reduz a janela durante a qual um sandwicher de mempool pode observar sua transação.
integration-guides/routing-and-mev para padrões.
Slippage para rotas multi-hop
Quando uma swap roteia através de múltiplos pools (ex.USDC → SOL → RAY), a tolerância de slippage deve ser aplicada por-hop, não apenas end-to-end:
raydium.trade.swap. Para roteadores customizados, replique o padrão.
Reportando aos usuários
Regras práticas para uma boa UI de swap:- Exiba ambos price impact esperado e tolerância de slippage separadamente.
- Destaque quando price impact excede ~2% — aviso “impacto alto”.
- Destaque quando price impact excede tolerância — a transação quase certamente reverterá.
- Para pares voláteis, ofereça um “modo slippage alto” que relaxa o limite e mostra um aviso mais forte.
Referências
products/cpmm/math,products/amm-v4/math,products/clmm/math— derivações de impact por tipo de pool.integration-guides/routing-and-mev— roteamento multi-hop + defesas de MEV.integration-guides/priority-fee-tuning— dimensionando priority fees para reduzir slippage.
- Implementação de slippage / impact do SDK Raydium v2.
- Flashbots / Jito em MEV no Solana.


