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 fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
Información de versión
- SDK:
@raydium-io/raydium-sdk-v2@0.2.42-alpha - Red: mainnet-beta
- ID del programa del enrutador:
routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS - Verificado: abril de 2026
Ejemplo 1: Enrutamiento basado en SDK
Fuente:src/trade/routeSwap.ts
El SDK de Raydium abstrae la construcción de rutas. Utiliza las funciones de comercio del SDK para componer una ruta multi-salto y ejecutarla a través del enrutador automáticamente.
Configuración
Construir un intercambio multi-salto
El enrutamiento en@raydium-io/raydium-sdk-v2 se expone en raydium.tradeV2. La forma de extremo a extremo —obtención de datos del pool, cálculo de rutas, clasificación por resultado y construcción de la transacción de intercambio— se muestra a continuación; esto coincide con el ejemplo canónico en raydium-sdk-V2-demo/src/trade/routeSwap.ts.
Comportamiento esperado
El SDK maneja:- Descubrimiento de rutas a través de AMM v4, CPMM, CLMM y Stable AMM.
- Derivación de cuentas (estados de pools, bóvedas, cuentas de observación, pre-creación de ATA).
- Empaque de instrucciones para el programa del enrutador (
Router) cuando la ruta es multi-salto, o un intercambio directo de pool cuando un único pool ya proporciona el mejor precio. - Aplicación de deslizamiento a través del parámetro
slippageengetAllRouteComputeAmountOut.
raydium.tradeV2.swap puede devolver más de una transaction —la primera comúnmente inicializa ATAs intermedias y la segunda realiza el intercambio en sí. Siempre pasa sequentially: true a execute() para que confirmen en orden.
Ejemplo 2: Construcción manual de instrucciones (pseudocódigo similar a Rust)
Si necesitas un control más fino o estás construyendo un programa que haga CPI en el enrutador, construye instrucciones manualmente. El ejemplo a continuación utiliza tag 8 (SwapBaseIn) —la variante Current recomendada— y enruta a través de ATAs propiedad del usuario de extremo a extremo.
Escenario: USDC → SOL (CPMM) → mSOL (CPMM)
Paso 1: Derivar las ATAs del usuario
Paso 2: Recopilar cuentas para cada salto
El salto 1 es USDC/SOL en CPMM. El salto 2 es SOL/mSOL en CPMM.Paso 3: Construir la instrucción
Paso 4: Enviar transacción
Ejemplo 3: Manejo de errores
Errores comunes y cómo recuperarse:ExceededSlippage
El resultado fue menor queminimum_amount_out. Reintentar con tolerancia de deslizamiento más alta o volver a cotizar la ruta.
SqrtPriceX64 (CLMM)
El precio de un salto CLMM se desvió fuera de los límiteslimit_prices. Actualiza los límites y reintentar.
InvalidOwner
Una ATA intermedia o de salida no es propiedad del usuario. El enrutador valida la propiedad en cada slot; asegúrate de que cada ATA que pases fue derivada de la cartera del usuario (no de ninguna otra autoridad).Consejos y mejores prácticas
Pre-crear ATAs intermedias
Antes de enrutar a través de un nuevo token intermedio por primera vez, crea la ATA del usuario para que la ruta no falle en la validación:CreateSyncNative (tag 5) —crea la ATA, transfiere el SOL y sincroniza en una instrucción.
Cotizar antes de ejecutar
Siempre consulta los pools y calcula el resultado esperado antes de construir la instrucción:Utilizar las variantes de instrucción más nuevas (8-9)
Los tags 8 y 9 (SwapBaseIn y SwapBaseOut) son más indulgentes con limit_prices. Prefiere los sobre las variantes heredadas si no necesitas validación de precio CLMM.
A dónde ir a continuación
products/routing/instructions—referencia completa de instrucciones.products/routing/accounts—detalles de derivación de cuentas.products/cpmm/code-demos—ejemplos de intercambio CPMM para comparación.reference/program-addresses—ID de programas canónicos y direcciones de devnet.
@raydium-io/raydium-sdk-v2en npmraydium-io/raydium-sdk-V2(código abierto)raydium-io/raydium-sdk-V2-demo—demostraciones oficiales de extremo a extremo incluyendorouteSwap.ts- El código fuente del programa de enrutamiento AMM no está disponible públicamente; verifica el ID del programa contra la API en vivo y el bytecode en cadena


