Saltar al contenido principal
Raptor también es un único binario que ejecutas en tus propios servidores. Usa el mismo motor de routing y la misma API HTTP y WebSocket que el servicio alojado en raptor.solanatracker.io.
  • Actualmente gratis. No se cobra por el binario ni hace falta API key o clave de licencia. Descárgalo y ejecútalo.
  • Sin límites. Ejecuta todas las instancias que quieras y atiende tantas solicitudes como admita tu hardware.
  • Puedes revenderlo. Pon tu propia API delante, cobra por el acceso o añade tu propia platform fee.

Descargar desde GitHub

La última versión para Linux y macOS, con checksums y notas de la versión.

Informar de un problema

Los bugs y las solicitudes de funciones van al repositorio de GitHub. Las preguntas, a Discord.
No necesitas autoalojar para usar Raptor. La API alojada, también gratis por ahora, no requiere configuración. Autoaloja cuando quieras tu propia capacidad, tu propia infraestructura o no depender de un servicio compartido.

Qué hace el binario

De entrada, el binario sirve cotizaciones y construye transacciones de swap. Otras cuatro funciones están desactivadas hasta que las actives. Una solicitud a un endpoint desactivado devuelve 404. Raptor mantiene al día el estado de los pools con las actualizaciones de cuentas que recibe de Yellowstone gRPC, así que usa muy poco RPC después del arranque.

Requisitos

  • Un servidor Linux o macOS.
    • Linux: x86-64 con glibc 2.30 o posterior, como Ubuntu 20.04+, Debian 11+ o RHEL 9+.
    • macOS: Apple Silicon o Intel.
  • Un endpoint RPC de Solana, definido como RPC_URL.
  • Un endpoint gRPC de Yellowstone, definido como YELLOWSTONE_ENDPOINT, más YELLOWSTONE_TOKEN si tu proveedor lo requiere. Raptor no arranca sin él.
  • Un directorio con permisos de escritura para la caché de pools. Por defecto es .r_cache, junto al binario. Define RAPTOR_POOL_DATA_DIR para usar otro directorio.
  • HTTPS saliente. Al arrancar, Raptor descarga el índice actual de pools desde Solana Tracker y luego lo mantiene al día con Yellowstone.

Instalación

1

Elige el archivo para tu servidor

Cada versión incluye un zip por plataforma, llamado raptor-<version>-<platform>.zip.
2

Descárgalo y verifícalo

Estos comandos descargan la última versión y la comparan con el checksums.txt publicado.
La comprobación imprime raptor-<version>-<platform>.zip: OK. Si imprime otra cosa, borra el zip y vuelve a descargarlo.Deja raptor.sig en el mismo directorio que raptor. El binario lo usa para comprobar que no se ha modificado.
3

Comprueba que se ejecuta

Si macOS bloquea un binario descargado desde el navegador, quita la marca de cuarentena con xattr -d com.apple.quarantine raptor.

Ejecución

Define tus endpoints e inicia el servidor.
Raptor escucha en 0.0.0.0:8080. Define BIND_ADDR para cambiarlo, por ejemplo BIND_ADDR=127.0.0.1:9000. Para activar todas las funciones opcionales excepto el arbitraje:

Espera a que esté listo

Raptor indexa los pools antes de poder enrutar. Hasta que termina, /quote devuelve 503 con Server warming up. /ready devuelve 200 cuando Raptor ya puede servir cotizaciones, y 503 antes de eso:
/health devuelve OK en cuanto el servidor arranca, aunque siga indexando. Apunta los health checks del balanceador de carga a /ready para que cada instancia reciba tráfico solo cuando ya pueda cotizar.

Haz tu primera cotización

Todos los ejemplos del resumen funcionan en tu instancia si sustituyes https://raptor.solanatracker.io por la dirección de tu servidor.

Funciones opcionales

Cada flag también tiene una variable de entorno. En las variables de activación, 1, true, yes y on activan la función.

Streaming por WebSocket

Los clientes se conectan a ws://your-server:8080/stream para recibir cotizaciones en vivo, o a /stream/swap para recibir cotizaciones con una transacción lista para firmar. Raptor envía una actualización cada vez que cambia la mejor ruta, así que los clientes no necesitan hacer polling. Consulta WebSocket para ver el formato de los mensajes.

Enviar y seguir transacciones

Esto activa POST /send-transaction y GET /transaction/{signature}. Raptor envía las transacciones firmadas directamente a los próximos líderes de bloque por QUIC mediante Yellowstone Jet y las reenvía hasta que se ejecutan o expiran. Consulta Enviar y seguir transacciones para ver los formatos de solicitud y respuesta. El servidor necesita acceso UDP saliente a los validadores de Solana para QUIC.

Cotizar y hacer swap en una sola llamada

Esto activa POST /quote-and-swap, que cotiza y construye la transacción en una sola solicitud. Ahorra un viaje de ida y vuelta a los bots y backends que no necesitan mostrar antes la cotización. Consulta Cotización y swap en una sola solicitud.

Arbitraje

Esto permite que /quote acepte el mismo mint como entrada y salida, por ejemplo SOL a SOL. Raptor busca entonces un ciclo a través de varios pools que devuelva más de lo que pusiste, como se describe en Arbitraje. Sin este flag, las cotizaciones con el mismo mint devuelven 400 con Circular arbitrage is disabled.

Limita lo que enruta Raptor

Por defecto, Raptor enruta por todos los DEX y pools soportados. Estos filtros lo limitan para toda la instancia. Los filtros de DEX también reducen lo que Raptor recibe de Yellowstone, lo que ahorra memoria y ancho de banda. Quien llama a la API puede limitar más el routing en cada solicitud con dexes y pools. Los nombres de DEX no distinguen mayúsculas de minúsculas y admiten varias grafías, así que raydium-clmm, raydium_clmm y "Raydium CLMM" se refieren al mismo DEX. raydium y meteora coinciden con todos los tipos de pool de ese DEX, y orca coincide con Whirlpool. Define una lista de inclusión o una de exclusión, no ambas. Si defines las dos, gana la de inclusión.
Los archivos de allowlist tienen una dirección por línea. Raptor ignora las líneas vacías, y # inicia un comentario. Si combinas filtros, un pool debe pasarlos todos.

Ejecuta varias instancias

Cada instancia funciona de forma independiente con su propio stream de Yellowstone, así que puedes poner todas las que necesites detrás de un balanceador de carga. Cada cotización lleva un quoteId firmado. Por defecto, /swap solo acepta cotizaciones creadas por la misma instancia. Si tu balanceador de carga puede enviar el /quote y el /swap de un cliente a instancias distintas, configura el mismo secreto en todas:
Las instancias que comparten el secreto aceptan las cotizaciones de las demás. Genera uno con openssl rand -hex 32 y mantenlo en privado.

Memoria y rendimiento

Usa --low-memory en servidores pequeños. Launchpads como Pump.fun tienen millones de pools de bonding curve, y el modo de poca memoria los mantiene en disco.

Opciones de arranque

Ejecútalo como servicio

Pon raptor y raptor.sig en /opt/raptor y luego crea /etc/systemd/system/raptor.service:
Pon tu configuración en /opt/raptor/raptor.env, con un NAME=value por línea:
Inícialo y sigue los logs:

Actualización

Descarga la nueva versión de la misma forma, reemplaza raptor y raptor.sig, y reinicia. Conserva el directorio de la caché de pools entre versiones. Las notas de la versión están en GitHub y en Cambios recientes. Para actualizar varias instancias sin tiempo de inactividad, configura en todas el mismo RAPTOR_QUOTE_SECRET y reinícialas de una en una. Cada instancia vuelve al balanceador de carga en cuanto /ready devuelve 200.

Referencia de configuración

Los flags aceptan su valor de las dos formas: --workers 8 o --workers=8.

Solución de problemas

Define RPC_URL y YELLOWSTONE_ENDPOINT en el entorno donde se ejecuta Raptor. Con systemd, ponlos en el EnvironmentFile, porque las variables exportadas en tu shell no llegan al servicio.
Raptor sigue indexando pools. Espera a que /ready devuelva 200. Si nunca lo hace, revisa los logs en busca de errores de conexión con Yellowstone y comprueba que el servidor pueda hacer solicitudes HTTPS salientes.
La función está desactivada. Inicia Raptor con --enable-websocket, --enable-yellowstone-jet o --enable-quote-and-swap.
Define el mismo RAPTOR_QUOTE_SECRET en todas las instancias o envía el /quote y el /swap de cada cliente a la misma instancia.
El binario necesita glibc 2.30 o posterior. Usa Ubuntu 20.04+, Debian 11+ o una distribución más reciente, o ejecuta la imagen de Docker de arriba.
Define --rpc-rate-limit por debajo de las solicitudes por segundo de tu plan. Raptor hace la mayoría de sus llamadas RPC al arrancar y luego lee principalmente de Yellowstone.

Preguntas frecuentes

No. El binario es gratis por ahora: descárgalo y ejecútalo. No hay clave ni límite de solicitudes.
Sí. Puedes ejecutarlo detrás de tu propia API, cobrar por el acceso y añadir tu propia platform fee con feeAccount y feeBps.
Sí. Raptor cumple la misma función: un agregador autoalojado que cotiza y construye swaps. No necesita clave de binario y puedes ejecutar instancias ilimitadas.
No. Raptor es de código cerrado, y el repositorio de GitHub aloja las versiones. Abre un issue allí para bugs y solicitudes de funciones.
Sí. Todas las instancias construyen transacciones para el programa Raptor, RaptorD5ojtsqDDtJeRsunPLg6GvLYNnwKJWxYE4m87.