> ## 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.

# Roteamento de AMM

> Um programa que encadeia swaps em múltiplos pools (AMM v4, CPMM, CLMM, Stable) em uma única transação, com ATAs intermediárias controladas pelo usuário.

<Info>
  **Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.**

  [Ver versão em inglês →](/products/routing/index)
</Info>

## O que é

O programa de Roteamento de AMM é um roteador CPI que executa swaps com múltiplos hops em pools de AMM da Raydium em uma única transação on-chain. Em vez de agrupar N CPIs de programas-filho no código do seu cliente, você pode invocar o roteador uma vez e passar a rota como uma lista de contas. O roteador envia cada hop para o programa correto do pool (AMM v4, CPMM, CLMM ou Stable) e encadeia a saída de um hop como entrada para o próximo.

**ID do Programa:** veja [`reference/program-addresses`](/pt/reference/program-addresses).

**Devnet:** `DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd`.

**Modelo de contas:** todo fluxo de token intermediário passa por uma **ATA de propriedade do usuário**. O usuário assina com sua ATA de entrada e fornece cada ATA intermediária na lista de contas. Os entrypoints de swap recomendados são a tag 8 (`SwapBaseIn`) e tag 9 (`SwapBaseOut`), que aceitam uma deque `limit_prices` vazia quando nenhum hop CLMM está envolvido.

## Conteúdo do capítulo

<CardGroup cols={2}>
  <Card title="Visão geral" icon="circle-info" href="/pt/products/routing/overview">
    O que o roteador faz, por que existe e quando você deve usá-lo versus stitching pelo cliente.
  </Card>

  <Card title="Contas" icon="database" href="/pt/products/routing/accounts">
    Layout de ATA do usuário, bloco de contas por hop e como o roteador envia lendo o slot do ID do programa.
  </Card>

  <Card title="Matemática" icon="function" href="/pt/products/routing/math">
    O roteador não faz matemática. Cada hop precifica em sua própria curva. O slippage se acumula entre hops; `limit_prices` para CLMM.
  </Card>

  <Card title="Instruções" icon="terminal" href="/pt/products/routing/instructions">
    Referência para as seis variantes de instrução habilitadas: swaps de entrada exata / saída exata Atual (8 / 9) e Legado (0 / 1), além dos utilitários wSOL (5 / 6).
  </Card>

  <Card title="Taxas" icon="percent" href="/pt/products/routing/fees">
    Sem taxa do roteador. Cada hop paga a taxa do seu programa subjacente. O custo de CU escala linearmente com a contagem de hops.
  </Card>

  <Card title="Exemplos de código" icon="code" href="/pt/products/routing/code-demos">
    Exemplos em TypeScript usando o SDK e construção de instruções bruta.
  </Card>
</CardGroup>

## Quando ler isto

* Você precisa executar uma rota com 2+ hops em uma transação.
* Você está implementando um programa que faz CPI para o roteador.
* Você é um agregador decidindo entre stitching pelo cliente e roteamento on-chain.

## Onde ir em seguida

* [`products/routing/overview`](/pt/products/routing/overview) — o design e a motivação.
* [`products/routing/instructions`](/pt/products/routing/instructions) — a referência completa de instruções.
* [`integration-guides/routing-and-mev`](/pt/integration-guides/routing-and-mev) — estratégia de roteamento mais ampla.
* [`integration-guides/aggregator`](/pt/integration-guides/aggregator) — quando usar o roteador em um contexto de agregador.

Fontes:

* [`reference/program-addresses`](/pt/reference/program-addresses) para o ID do programa canônico
* `raydium-io/raydium-programs/raydium-route` para o código-fonte
