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

# Routage AMM

> Un programme qui enchaîne les échanges sur plusieurs pools (AMM v4, CPMM, CLMM, Stable) en une seule transaction, avec des ATA intermédiaires contrôlées par l'utilisateur.

<Info>
  **Cette page est traduite automatiquement par IA. La version anglaise fait foi.**

  [Voir la version anglaise →](/products/routing/index)
</Info>

## Qu'est-ce que c'est

Le programme AMM Routing est un routeur CPI qui exécute des swaps multi-sauts sur les pools AMM de Raydium en une seule transaction on-chain. Au lieu de regrouper N CPI de programmes enfants dans votre code client, vous pouvez invoquer le routeur une seule fois et transmettre la route sous forme de liste de comptes. Le routeur dispatche chaque saut vers le programme de pool correct (AMM v4, CPMM, CLMM ou Stable) et enchaîne la sortie d'un saut comme entrée du suivant.

**ID du programme :** consultez [`reference/program-addresses`](/fr/reference/program-addresses).

**Devnet :** `DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd`.

**Modèle de compte :** chaque flux de token intermédiaire transite par une **ATA appartenant à l'utilisateur**. L'utilisateur signe avec son ATA d'entrée et fournit chaque ATA intermédiaire dans la liste des comptes. Les points d'entrée de swap recommandés sont le tag 8 (`SwapBaseIn`) et le tag 9 (`SwapBaseOut`), qui acceptent une deque `limit_prices` vide quand aucun saut CLMM n'est impliqué.

## Contenu du chapitre

<CardGroup cols={2}>
  <Card title="Aperçu" icon="circle-info" href="/fr/products/routing/overview">
    Ce que fait le routeur, pourquoi il existe et quand vous devriez l'utiliser par rapport au chaînage côté client.
  </Card>

  <Card title="Comptes" icon="database" href="/fr/products/routing/accounts">
    Disposition de l'ATA utilisateur, bloc de compte par saut, et comment le routeur dispatche en lisant l'emplacement de l'ID du programme.
  </Card>

  <Card title="Mathématiques" icon="function" href="/fr/products/routing/math">
    Le routeur ne fait aucun calcul. Chaque saut établit ses prix selon sa propre courbe. Le slippage s'ajoute sur les sauts ; `limit_prices` pour CLMM.
  </Card>

  <Card title="Instructions" icon="terminal" href="/fr/products/routing/instructions">
    Référence des six variantes d'instruction activées : swaps exact-input / exact-output actuels (8 / 9) et hérités (0 / 1), plus les utilitaires wSOL (5 / 6).
  </Card>

  <Card title="Frais" icon="percent" href="/fr/products/routing/fees">
    Aucun frais de routeur. Chaque saut paie le frais du programme sous-jacent. Le coût CU augmente linéairement avec le nombre de sauts.
  </Card>

  <Card title="Exemples de code" icon="code" href="/fr/products/routing/code-demos">
    Exemples TypeScript utilisant le SDK et la construction d'instruction brute.
  </Card>
</CardGroup>

## Quand lire ceci

* Vous devez exécuter une route avec 2 sauts ou plus en une seule transaction.
* Vous implémentez un programme qui effectue un CPI dans le routeur.
* Vous êtes un agrégateur décidant entre le chaînage côté client et le routage on-chain.

## Où aller ensuite

* [`products/routing/overview`](/fr/products/routing/overview) — la conception et la motivation.
* [`products/routing/instructions`](/fr/products/routing/instructions) — la référence complète des instructions.
* [`integration-guides/routing-and-mev`](/fr/integration-guides/routing-and-mev) — stratégie de routage plus large.
* [`integration-guides/aggregator`](/fr/integration-guides/aggregator) — quand utiliser le routeur dans un contexte d'agrégateur.

Sources :

* [`reference/program-addresses`](/fr/reference/program-addresses) pour l'ID du programme canonique
* `raydium-io/raydium-programs/raydium-route` pour le code source
