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 →
Banner de versión. Esta página documenta
@raydium-io/raydium-sdk-v2@0.2.42-alpha, la versión verificada en todas las demostraciones de código de este sitio (2026-04). El SDK está en pre-1.0 y la superficie de tipos ha evolucionado entre versiones — fija la versión que utilices.Instalar
.d.ts junto con su artefacto JS. Herramientas mínimas requeridas: Node 18+, TypeScript 5.0+, moduleResolution: "bundler" o "node16".
Inicializar
El punto de entrada esRaydium.load:
Raydium.load es asincrónica porque obtiene una pequeña carga útil /config desde api-v3.raydium.io al iniciar (listando cuentas actuales de AmmConfig, capas de tarifas, etc.). Establece disableFeatureCheck: true en entornos sin conexión; tendrás que proporcionar esos valores manualmente a algunos constructores.
Las cuatro fachadas de módulos
Una vez cargado, el objetoraydium expone cuatro fachadas de módulos, una por superficie de producto:
trade y token utilidades de apoyo.)
Constructores de transacciones
Cada función que realiza cambios devuelve un constructor en lugar de ejecutarse inmediatamente:execute— una función de conveniencia que firma + envía. Equivalente abuilder.execute.builder— la instancia deTxBuildercon todas las instrucciones y firmantes acumulados. Llama a.build()para obtener unVersionedTransaction[]; útil cuando necesitas inyectar tus propias instrucciones o firmar con firmantes externos.transaction/innerTransactions— los arrays de instrucciones crudas. Úsalos cuando construyas transacciones compuestas multi-programa.extInfo— extras específicos del producto. Por ejemplo,createPooldevuelveextInfo.poolId;createLaunchpaddevuelve el nuevo PDA de estado de lanzamiento.
txVersion controla el formato de transacción heredada vs V0. V0 (tablas de búsqueda de direcciones) es la recomendación predeterminada — permite que swaps más grandes se ajusten en una sola transacción.
¿Por qué constructores asincronos?
Casi cada constructor obtiene internamente estado en cadena: información del pool (para quotes), propiedad del programa de tokens (para enrutamiento Token-2022 vs SPL), exención de alquiler de cuenta (para creación de ATA), etc. El SDK cachea agresivamente pero la primera llamada para un pool nuevo implica viajes por RPC. Mantén una instanciaraydium con vida larga para evitar re-obtener.
Adiciones del módulo CLMM (versión más reciente)
La fachada CLMM adquirió superficies para las nuevas características de tarifa dinámica, tarifa de un lado y órdenes limitadas:raydium.clmm.createCustomizablePool— superconjunto decreatePoolque aceptacollectFeeOn,enableDynamicFeeydynamicFeeConfigId. Úsalo para cualquier nuevo pool que necesite estos nuevos controles;createPoolclásico continúa funcionando para pools con tarifa predeterminada.raydium.clmm.openLimitOrder— abre una orden limitada de un solo tick en un pool que las admite. TomapoolInfo,poolKeys,limitOrderConfig(de/main/clmm-limit-order-config),inputMint,inputAmounty eltickobjetivo.raydium.clmm.increaseLimitOrder/decreaseLimitOrder— ajusta la porción sin llenar de una orden existente. Disminuir revierte en una orden completamente llena conInvalidOrderPhase.raydium.clmm.settleLimitOrder/settleAllLimitOrder— barre la salida llenada hacia el ATA del propietario. Ya sea el propietario de la orden o el guardiánlimit_order_admindel pool pueden llamarlos.raydium.clmm.closeLimitOrder/closeAllLimitOrder— cierra órdenes completamente liquidadas para recuperar alquiler.raydium.api.getClmmDynamicConfigs()/getClmmLimitOrderConfigs()— ayudantes REST que conectan con los nuevos endpoints/main/clmm-dynamic-configy/main/clmm-limit-order-config.
utils/ a libraries/. El código que importaba desde @raydium-io/raydium-sdk-v2/utils/... debe cambiar a @raydium-io/raydium-sdk-v2/libraries/.... El barril del paquete de nivel superior permanece sin cambios, así que la mayoría de usuarios nunca ven el cambio de nombre.
Los tutoriales de TypeScript de principio a fin se encuentran en products/clmm/code-demos.
Errores comunes
1. Desajuste de cluster
La configuración de inicio del SDK es específica del cluster. Mezclarcluster: "mainnet" con una Connection de devnet causa enrutamiento erróneo silencioso: el SDK cita contra AmmConfig de mainnet pero envía a devnet. Siempre pasa ambos.
2. Olvidar pre-crear ATAs
En la primera interacción con un mint, la Cuenta de Token Asociada del usuario puede no existir. El SDK pre-añade automáticamente una instrucciónAssociatedTokenAccount::create cuando detecta un ATA faltante, lo que cuesta una pequeña cantidad de alquiler. Si tu billetera es baja en SOL, esto fallará silenciosamente. Verifica y financia antes de reintentar.
3. poolInfo anticuado
poolInfo es una instantánea almacenada en caché. Si el estado del pool ha cambiado desde que lo obtuviste (un trade grande movió el precio, por ejemplo), el minAmountOut del swap puede ser calculado contra el estado antiguo y caer por debajo del monto de salida en cadena, revirtiendo. Re-obtén poolInfo inmediatamente antes de construir transacciones de alto valor, o usa el computeAmountOut del SDK que re-consulta las reservas.
4. Tarifas de prioridad
El SDK no añade precios de unidad de cálculo por defecto. En ventanas de alto volumen (lanzamientos de nuevos pools, eventos de monedas meme) esto significa que tu transacción compite con muchas otras y puede no llegar. Suministra uncomputeBudgetConfig explícito:
integration-guides/priority-fee-tuning para orientación sobre dimensionamiento.
5. La tolerancia de slippage debe coincidir con el tipo de pool
CPMM y AMM v4 utilizan matemática CPMM (bajo impacto en trades normales). CLMM es por partes (el impacto salta en cruces de tick). Si copias una tolerancia de slippage de 0.5% de un ejemplo CPMM en un swap CLMM que cruza varios ticks, la transacción probablemente revierta. ElcomputeAmountOut del SDK devuelve priceImpact; dimensiona tu tolerancia por encima de eso.
6. BN vs number
Todos los campos de cantidad en el SDK son instancias de BN de bn.js — nunca number de JavaScript. Convertir valores de cantidad vía .toNumber() trunca silenciosamente en 2^53; para cualquier valor por encima de ~9 cuatrillones (no poco común en mints de 9 decimales), esto produce el resultado incorrecto. Mantén todo en BN hasta la renderización final de la interfaz de usuario.
Política de versionado
@raydium-io/raydium-sdk-v2es el único SDK que Raydium mantiene. Toda la documentación, demostraciones y orientación de integración lo apuntan.- Un paquete v1 más antiguo (
@raydium-io/raydium-sdk) existe en npm por razones históricas. El mantenimiento terminó después de que CPMM y LaunchLab se lanzaran (v1 nunca ganó soporte para ninguno de los dos), y no ha habido lanzamientos v1 desde 2024. Trata v1 como fin de vida: no lo uses para código nuevo, y migra cualquier integración v1 restante a v2. - El SDK v2 es pre-1.0. Los cambios que rompen la compatibilidad entre versiones menores 0.x son posibles; fija la versión que hayas verificado y revisa las notas de lanzamiento de GitHub al actualizar.
Actualizar
Cuando actualices entre versiones menores del SDK:- Vuelve a verificar el tipo de retorno de cada llamada que realiza cambios — los cambios de forma (p. ej.
extInfo) ocurren frecuentemente. - Regenera las firmas de obtención de
poolInfo— un campo puede haber sido renombrado. - Vuelve a verificar tu manejo de slippage; el SDK ha alternado entre comportamientos de vinculación automática e opcional en versiones anteriores.
- Si usas
raydium.trade(enrutamiento), vuelve a verificar la forma de la ruta — es la parte más inestable de la superficie.
Obtener ayuda
Para preguntas sobre SDK y API:- Problemas de GitHub — presenta en github.com/raydium-io/raydium-sdk-V2/issues para bugs y solicitudes de características. El equipo de Raydium monitorea activamente.
- Discord — canal
#dev-supporten discord.gg/raydium para ayuda sincrónica. - Telegram — chat de desarrolladores enlazado desde raydium.io (evita grupos de Telegram no verificados).
security/disclosure.
Enlaces relacionados
sdk-api/rest-api— el complemento HTTP del SDK.sdk-api/trade-api— transacciones de swap construidas en servidor.sdk-api/anchor-idl— regenerando clientes directamente desde IDLs de programa.sdk-api/python-integration— equivalente en Python víasolana-py.integration-guides/priority-fee-tuning— dimensionandocomputeBudgetConfig.
- Código fuente de Raydium SDK v2
- Notas de lanzamiento del SDK de Raydium.


