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.
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Informations de version
- SDK :
@raydium-io/raydium-sdk-v2@0.2.42-alpha - Réseau : mainnet-beta
- ID du programme routeur :
routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS - Vérifié : avril 2026
Exemple 1 : routage basé sur le SDK
Source :src/trade/routeSwap.ts
Le SDK Raydium abstrait la construction des routes. Utilisez les fonctions de trading du SDK pour composer une route multi-hop et l’exécuter via le routeur automatiquement.
Configuration
Construire un swap multi-hop
Le routage dans@raydium-io/raydium-sdk-v2 est exposé sur raydium.tradeV2. La forme end-to-end — récupération des données de pool, calcul des routes, classement par rendement et création de la transaction de swap — est présentée ci-dessous ; cela correspond à l’exemple canonique dans raydium-sdk-V2-demo/src/trade/routeSwap.ts.
Comportement attendu
Le SDK gère :- la découverte des routes sur AMM v4, CPMM, CLMM et Stable AMM ;
- la dérivation des comptes (états de pool, vaults, comptes d’observation, pré-création des ATA) ;
- l’empaquetage des instructions pour le programme routeur (
Router) quand la route est multi-hop, ou un swap direct de pool quand un seul pool donne déjà le meilleur prix ; - l’application du slippage via le paramètre
slippagesurgetAllRouteComputeAmountOut.
raydium.tradeV2.swap peut retourner plus d’une transaction — la première initialise généralement les ATA intermédiaires et la seconde effectue le swap lui-même. Passez toujours sequentially: true à execute() pour qu’elles se confirment dans l’ordre.
Exemple 2 : construction brute d’instructions (pseudocode style Rust)
Si vous avez besoin d’un contrôle plus fin ou si vous construisez un programme qui effectue un CPI vers le routeur, construisez les instructions manuellement. L’exemple ci-dessous utilise le tag 8 (SwapBaseIn) — la variante Current recommandée — et route via des ATA appartenant à l’utilisateur de bout en bout.
Scénario : USDC → SOL (CPMM) → mSOL (CPMM)
Étape 1 : Dériver les ATA de l’utilisateur
Étape 2 : Collecter les comptes pour chaque hop
Le hop 1 est USDC/SOL sur CPMM. Le hop 2 est SOL/mSOL sur CPMM.Étape 3 : Construire l’instruction
Étape 4 : Envoyer la transaction
Exemple 3 : gestion des erreurs
Les erreurs courantes et comment les résoudre :ExceededSlippage
Le rendement était inférieur àminimum_amount_out. Réessayez avec une tolérance de slippage plus élevée ou re-cotez la route.
SqrtPriceX64 (CLMM)
Le prix d’un hop CLMM a dérivé en dehors des limiteslimit_prices. Mettez à jour les limites et réessayez.
InvalidOwner
Un ATA intermédiaire ou de sortie n’est pas possédé par l’appelant. Le routeur valide la propriété à chaque slot ; assurez-vous que chaque ATA que vous passez a été dérivé du portefeuille de l’utilisateur (et non d’une autre autorité).Conseils et meilleures pratiques
Pré-créer les ATA intermédiaires
Avant de router pour la première fois via un nouveau jeton intermédiaire, créez l’ATA de l’utilisateur pour que la route ne échoue pas à la validation :CreateSyncNative (tag 5) — il crée l’ATA, transfère le SOL et synchronise en une seule instruction.
Quoter avant d’exécuter
Interrogez toujours les pools et calculez le rendement attendu avant de construire l’instruction :Utiliser les variantes d’instruction plus récentes (8–9)
Les tags 8 et 9 (SwapBaseIn et SwapBaseOut) sont plus tolérants avec limit_prices. Préférez-les aux variantes héritées si vous n’avez pas besoin de validation de prix CLMM.
Prochaines étapes
products/routing/instructions— référence complète des instructions.products/routing/accounts— détails de la dérivation des comptes.products/cpmm/code-demos— exemples de swap CPMM pour comparaison.reference/program-addresses— ID de programme canoniques et adresses devnet.
@raydium-io/raydium-sdk-v2sur npmraydium-io/raydium-sdk-V2(open source)raydium-io/raydium-sdk-V2-demo— démos officielles end-to-end incluantrouteSwap.ts- La source du programme AMM Routing n’est pas disponible publiquement ; vérifiez l’ID du programme par rapport à l’API en direct et au bytecode on-chain


