Saltar al contenido principal
Raptor busca la mejor ruta para un swap entre 71 DEX de Solana y te da una transacción que firma la wallet del usuario. Hay dos formas de usarlo y ambas son gratis por ahora, sin API key ni registro:

API alojada

Gratis. Llama a raptor.solanatracker.io sin instalar ni ejecutar nada. Empieza con el inicio rápido de más abajo.

Binario autoalojado

Gratis. Descarga Raptor desde GitHub y ejecuta la misma API en tus propios servidores, sin límites.
Si tienes preguntas, escríbenos en Discord.

JIT routing

Una ruta normal elige sus pools al cotizar. Con el routing just-in-time (JIT), la transacción lleva varios pools candidatos y elige los mejores al ejecutarse, con precios en vivo. Ayuda sobre todo en órdenes grandes y en pools que se mueven rápido. Las cotizaciones que usan JIT incluyen "jitRouting": true. A tener en cuenta:
  • minAmountOut se sigue aplicando. Si los precios en vivo no lo alcanzan, la transacción falla en lugar de ejecutarse a peor precio.
  • JIT funciona con transacciones V0 y V1. Las transacciones LEGACY no tienen tablas de búsqueda y su límite es de 1,232 bytes, así que las rutas JIT rara vez caben; cotiza con jitRouting=false si necesitas LEGACY.
  • Los swaps JIT no se pueden llamar desde otro programa. /swap-instructions devuelve un swap normal salvo que envíes jitRouting: true. Cuando devuelve topLevelOnly: true, pon swapInstruction al final de la transacción y llámala directamente, no por CPI. Si no, falla con InvalidJitPlan (6026).
  • JIT está disponible en todos los DEX soportados excepto Heaven, SolFi V1, BisonFi y Quantum.

Inicio rápido

Todos los swaps siguen los mismos cinco pasos. Raptor se encarga del routing; la wallet del usuario solo firma.
1

Obtén una cotización

Pide el precio de vender 0.1 SOL (100000000 lamports) por USDC. No necesitas wallet.
amountOut es la cantidad esperada de USDC (6 decimales). minAmountOut es lo mínimo que aceptará el swap.
2

Construye la transacción

Envía la cotización sin cambios con la dirección de la wallet del usuario. Hazlo enseguida, porque las cotizaciones caducan a los pocos segundos.
La respuesta contiene swapTransaction, una transacción en base64 sin firmar.
3

Firma y envía

Firma swapTransaction con la wallet y envía la transacción firmada en base64. Raptor la reenvía hasta que se ejecuta o expira.
4

Comprueba el resultado

Consulta hasta que status sea confirmed, failed o expired.

Ejemplo completo

Este script cambia 0.1 SOL por USDC desde un keypair local. En una app de navegador, sustituye el paso de firma por signTransaction de tu wallet adapter.

Endpoints

En una instancia autoalojada, el streaming, /send-transaction, /transaction/{signature} y /quote-and-swap están desactivados hasta que los actives.

Parámetros más usados

Cantidades

Las cantidades son enteros en la unidad más pequeña del token: amount = tokens × 10^decimals. SOL tiene 9 decimales, así que 1000000000 es 1 SOL. USDC tiene 6, así que 1000000 es 1 USDC. Usa el mint So11111111111111111111111111111111111111112 para SOL; Raptor lo envuelve y desenvuelve por ti.

Slippage

slippageBps define cuánto puede moverse el precio en tu contra como máximo, en puntos básicos: 50 es 0.5%. Pasa dynamic para que Raptor elija un valor según el token y la ruta. Si el precio se mueve más, la transacción falla en lugar de ejecutarse a peor precio. Solo se gasta la comisión de red.

Priority fee

Define priorityFee en /swap con un nivel (min, low, medium, auto, high, veryHigh, turbo, unsafeMax) o con una comisión total en lamports como cadena, por ejemplo "50000". El valor por defecto es auto. maxPriorityFee limita el precio de la compute unit en micro-lamports. El campo de respuesta prioritizationFeeLamports indica lo que se incluyó.

Platform fees

Cobra tu propia comisión en los swaps añadiendo feeAccount (una dirección de wallet normal) y feeBps (hasta 1000, es decir, 10%) a /quote. La comisión se mantiene en /swap. Se toma del token de salida salvo que definas feeFromInput=true. minAmountOut ya tiene en cuenta tu comisión. chargeBps cobra una parte adicional solo cuando el usuario recibe más de lo cotizado.

Tips

Añade un tip en SOL a la transacción, por ejemplo a una cuenta de tips de Jito, con tipAccount y tipLamports en /swap.

Limita la ruta

En /quote, dexes limita el routing a los DEX que indiques (separados por comas, sin distinguir mayúsculas de minúsculas). raydium coincide con todos los tipos de pool de Raydium y raydium-clmm solo con uno. pools limita el routing a direcciones de pool concretas, maxHops limita la longitud de la ruta (de 1 a 4) y onlyDirectRoutes=true solo permite rutas de un salto.
Las opciones de routing van solo en /quote. /swap construye la ruta que contenga la cotización.

Profundidad de búsqueda

searchMode=deep en /quote busca en más pools y rutas antes de responder. Tarda más y nunca devuelve menos que la búsqueda fast por defecto. Úsalo cuando el mejor precio importe más que la velocidad, por ejemplo en órdenes grandes.

Opciones de transacción

Estas opciones van en /swap, /swap-instructions y /quote-and-swap. /quote no necesita wallet ni comprueba saldos. Puedes pasar userPublicKey para cotizar para la wallet que hará el swap, pero /swap lo sigue necesitando.

Arbitraje

Cotiza con el mismo mint de entrada y salida, por ejemplo SOL a SOL, y Raptor busca un ciclo a través de varios pools que devuelva más de lo que pusiste.
  • Si routePlan no está vacío, Raptor encontró un ciclo. amountOut menos amount es la ganancia esperada, antes de las comisiones de red y de prioridad. Constrúyelo y envíalo como cualquier otro swap.
  • Si ningún ciclo es rentable, la respuesta trae routePlan vacío y amountOut igual a amount. No hay nada que construir.
En una instancia autoalojada, arranca el binario con --enable-arbitrage.

Comisiones de transferencia de Token-2022

Si el token de entrada o de salida cobra una comisión de transferencia de Token-2022, la cotización incluye tokenTransfers. netOutput es lo que llega realmente a la wallet después de las platform fees y las comisiones de transferencia.

WebSocket

Recibe cotizaciones en vivo en lugar de hacer polling. Cada actualización llega cuando cambia la mejor ruta.
  • /stream envía cotizaciones. Úsalo para mostrar precios.
  • /stream/swap envía cotizaciones y una transacción nueva, lista para firmar, para userPublicKey. Firma la más reciente y envíala con POST /send-transaction.
Para cancelar la suscripción, envía { "type": "unsubscribe", "id": "<id from subscribed>" }. Una conexión admite hasta 50 suscripciones. Todos los mensajes y campos están en la referencia de WebSocket de la barra lateral.

Errores

La mayoría de los errores son JSON, { "error": "...", "code": 400 }. Los errores al analizar la solicitud (algunos 400 y 422) son texto plano, así que lee el cuerpo como texto antes de analizarlo.

DEX soportados

Raptor enruta a través de 71 DEX.

API alojada o autoalojada

Ambos usan el mismo motor de routing y construyen transacciones para el mismo programa. Consulta Autoalojamiento para instalar el binario. La antigua Swap API de Solana Tracker en swap-v2.solanatracker.io es un producto independiente. Sigue activa y cobra una comisión de plataforma en cada swap.

Siguientes pasos

Guía de swaps

Wallets de navegador, construcción solo de instrucciones y swaps por streaming.

Enviar transacciones

Envía transacciones firmadas y lee los resultados del swap.

Autoalojamiento

Descarga el binario desde GitHub y ejecuta Raptor en tus propios servidores.