Los flujos analizados están en beta abierta. Están disponibles en los planes de pago. Autentícate con la clave de API de tu proyecto. La API aún puede cambiar antes de su disponibilidad general.
¿Qué son los flujos analizados?
Los flujos analizados son un servicio WebSocket que observa cada transacción confirmada de Solana (excepto las transacciones de voto), la decodifica y te envía las transacciones que coinciden con un filtro que tú defines. Indicas «Me interesan las instrucciones de ruta de Jupiter» o «Me interesa cualquier operación que afecte a esta cuenta», y el servidor se encarga de observar, decodificar y buscar coincidencias. Recibes transacciones completas y ya decodificadas: cada instrucción con argumentos y cuentas con nombre, además de la comisión, la lista completa de claves de cuenta, unsummary a nivel de transacción de lo que ocurrió, las transferencias de SOL y tokens, y referencias a las instrucciones exactas que coincidieron con tu filtro. Todos los datos se entregan con el nivel de confirmación confirmed.
El modelo mental
Si ya conoces los detalles internos de Solana, continúa con la siguiente sección. De lo contrario, este es el modelo en el que se basa toda la API. Una transacción es un mensaje firmado. Identifica a quien paga la comisión, enumera todas las cuentas que afectará y contiene una lista de instrucciones. Cuando examinas una, ves una firma (su identificador único), el slot en el que se incluyó, la comisión pagada, las claves de cuenta, si se completó correctamente o falló y las instrucciones. Una instrucción es una acción: ejecutar este programa con esta entrada y usar estas cuentas. Un swap en Jupiter, una transferencia de tokens o un memo. Por lo general, una transacción contiene varias instrucciones que se ejecutan en orden. Los programas pueden llamar a otros programas. Cuando Jupiter ejecuta un swap, no mueve los tokens por sí mismo. Su instrucción de ruta llama al programa de tokens para moverlos y a los programas de intercambio que mantienen la liquidez. Esas llamadas anidadas también son instrucciones y se denominan instrucciones internas (o CPI, invocaciones entre programas). Esto es importante cuando escribes un filtro: gran parte de la actividad real, como los movimientos de tokens dentro de un swap, ocurre en instrucciones internas, por lo que tu filtro coincide con ellas de forma predeterminada. Si solo quieres las instrucciones que firmó un usuario, estableceincludeCpi en false.
Las cuentas son los elementos on-chain con los que trabaja una instrucción: billeteras, saldos de tokens, pools y mints. Cada instrucción las incluye como una lista ordenada de direcciones, y el orden forma parte del contrato: el programa define qué significa cada posición. Por ejemplo, el programa de tokens espera primero la cuenta de la que se tomarán los tokens, luego la cuenta que los recibirá y, por último, el propietario que aprueba la transferencia.
Los roles asignan nombres a esas posiciones. La mayoría de los programas conocidos publican un manual legible por máquina para su interfaz, denominado IDL. El manual enumera todas las instrucciones del programa, el significado de sus campos de datos y la finalidad de cada posición de cuenta. Helius mantiene un catálogo de estos manuales para miles de programas. Con este catálogo, una simple lista de direcciones se convierte en cuentas con nombre: para una transferencia de tokens, la posición 0 se convierte en source, la posición 1 se convierte en destination y la posición 2 se convierte en authority. En lugar de adivinar qué significa la tercera dirección, puedes leer {"name": "authority", "pubkey": "9xQe...", "isSigner": true}. Estos nombres son los roles que puedes usar en los filtros.
La decodificación aplica la misma idea a los datos de entrada de la instrucción. Durante la transmisión, esos datos son bytes opacos. Con el manual del programa, los bytes se convierten en valores con nombre: {"in_amount": "1000000", "slippage_bps": 50}. No todas las instrucciones se pueden decodificar, por lo que cada una queda en uno de tres estados que puedes identificar directamente mediante sus campos:
- Decodificada: la instrucción contiene un objeto
decodedconargseaccountscon nombre. - Reconocida: además de
decoded, la instrucción contiene unsummarycon untype(comoswap), undescriptionlegible para humanos y una carga útilparsedDataestructurada, como metadatos de un swap con cantidades y mints. - Sin decodificar: el programa o la instrucción no está en el catálogo,
decodedesnully, en su lugar, la instrucción contiene los bytes sin procesar (rawData) y la lista simple de direcciones (rawAccounts), por lo que siempre tienes datos con los que trabajar.
programs: a qué programa llama la instruccióninstructionNames: cómo denomina esa acción el manual del programaaccounts.include: qué direcciones afectaaccounts.roles: qué dirección debe ocupar cada posición con nombreincludeCpieincludeFailed: si se incluyen las instrucciones internas y las transacciones fallidas
Comparación
vs Enhanced WebSockets
Los WebSockets mejorados transmiten transacciones completas o actualizaciones de cuentas sin decodificarlas. Los flujos analizados buscan coincidencias a nivel de instrucción y decodifican todo por ti.
vs LaserStream gRPC
LaserStream es un flujo continuo de datos gRPC de alto rendimiento que filtras y decodificas en el cliente. Los flujos analizados son una API WebSocket que filtra y decodifica en el servidor.
vs Parsed Events
Los eventos analizados aplican la misma decodificación a transacciones históricas: analiza firmas o recorre por páginas el historial de una dirección bajo demanda mediante REST y GraphQL. Los flujos analizados envían las transacciones nuevas conforme se registran.
Programas compatibles
Los flujos analizados decodifican más de 3,600 programas a partir de sus IDL on-chain, además de programas principales como SPL Token, Token-2022 y System Program mediante decodificadores integrados. Puedes filtrar por la dirección de cualquier programa. Las instrucciones que el servicio no puede decodificar se transmiten como datos de instrucción sin procesar. Estos son algunos de los programas decodificados más utilizados:DEXs & AMMs
DEXs & AMMs
Launchpads
Launchpads
Lending & Perps
Lending & Perps
NFTs & Compression
NFTs & Compression
Acceso
Los flujos analizados están en beta abierta y disponibles en los planes de pago. Obtén tu clave de API en el panel de Helius. Conéctate al endpoint beta:api-key (o mediante el encabezado x-api-key). La clave se verifica cuando se abre la conexión: si falta o no es válida, la solicitud se rechaza con HTTP 401; si el proyecto alcanzó su límite de conexiones, recibe HTTP 429.
Primeros pasos
Quickstart
Conéctate, envía tu primer filtro y lee una notificación.
Track Jupiter Swaps
Crea y suscribe un filtro real mediante la detección de programas.
Track Pump.fun Mints
Un listener resistente a reconexiones que registra cada nuevo despliegue de tokens de Pump.fun.
Handling Reconnects
Detecta desconexiones, aumenta progresivamente el tiempo de espera, vuelve a suscribirte y recupera los slots omitidos.