Elegir Webhooks, WebSocket o sondeo RPC

Compare avisos de direcciones, suscripciones por socket y sondeo acotado según la compatibilidad por cadena, recuperación, requisitos del receptor y facturación.

Utilice Webhooks de direcciones para la entrega a un receptor HTTPS, WebSocket para las suscripciones en tiempo real compatibles y sondeo acotado cuando el flujo necesite su propio cursor y recuperación.

Crear receptores de eventos on-chain para desarrolladores y agentes de IA requiere ajustar la arquitectura de la aplicación a las capacidades de red, las garantías de entrega, las restricciones del receptor y el coste operativo.

Matriz de decisión

La tabla siguiente compara los tres mecanismos de integración según las capacidades de red compatibles, los requisitos de infraestructura, las estrategias de recuperación y los modelos de facturación:

DimensiónWebhooks de direccionesSuscripciones WebSocketSondeo RPC acotado
Mecanismo principalAviso Push entregado mediante HTTPS POST a un endpoint públicoSuscripción a un flujo solicitado mediante una conexión TLS persistente (wss://)Lotes JSON-RPC HTTP o consultas programadas iniciadas por el cliente
Disponibilidad por cadenaTodas las redes compatibles declaradas en GET /v1/push/chainsCompatible con Robinhood Chain (robinhood_mainnet y robinhood_testnet); las redes no servidas tienen ws: false y devuelven HTTP 404Todas las redes compatibles en GET /v1/chains mediante RPC público sin clave o JSON-RPC autenticado
Requisitos del receptorURL HTTPS accesible públicamente, certificado TLS válido, respuesta 2xx dentro del tiempo límite, verificación de firma HMAC SHA-256 del body originalConexión saliente TCP/TLS del cliente (wss://); gestiona latidos ping/pong y esperas progresivas de reconexiónCliente HTTP sin estado o worker programado; almacena un cursor de bloques local
Entrega y ordenEntrega al menos una vez con esperas exponenciales de reintento; el receptor debe deduplicar por id del evento, o por ref + type entre suscripcionesFrames estrictamente ordenados en un único socket activo; los avisos se pierden durante las desconexionesRespuestas de consulta deterministas para alturas de bloques confirmadas; el cliente regula el ritmo de ejecución
Reorganizaciones de cadenaSe emiten avisos de control para chain.reorg; el receptor descarta eventos sustituidos antes de aplicar replays canónicosLos avisos de logs incluyen "removed": true para logs reorganizados; newHeads requiere comprobar el hash del bloque padreEl cliente rastrea la continuidad de la cadena mediante parentHash entre ciclos de sondeo para detectar reorganizaciones
Recuperación ante fallosLa ventana de retención del servidor permite replay mediante POST /v1/push/subscriptions/{id}/replay; las lagunas anteriores al bloque de activación requieren recuperación con eth_getLogsNo hay cola en el servidor; el cliente reconecta y recupera los rangos omitidos mediante eth_getLogs, deduplicados por (blockHash, transactionHash, logIndex)Reanuda las consultas desde el last_synced_block almacenado; divide en tramos según el max_logs_block_range de la red de GET /v1/chains
Modelo de facturaciónTarifa diaria de direcciones por grupo, basada en el mayor número de direcciones mientras está online durante el día UTC, más CU por eventos de datos entregados; consulte Facturación de WebhooksEl handshake y los latidos no se facturan; eth_subscribe / eth_unsubscribe y las unidades de avisos enviados por socket se facturan en CUMedición por solicitud en Compute Units: eth_blockNumber, eth_call, eth_getLogs; los pesos de los métodos y CU por $1 de GET /v1/plans se muestran a continuación
Más adecuado paraMonitoreo de depósitos de usuarios, seguimiento de direcciones de hot wallets, pagos de comercios, webhooks de eventos asíncronosnewHeads en tiempo real y logs filtrados, bots reactivos, interfaces interactivas en redes compatiblesConciliación por lotes, tareas cron, pipelines ETL, cadenas sin compatibilidad WebSocket (como HyperEVM)

Parámetros de conversión activos

1 USD = 10,000 unidades de facturación, 1 unidad de facturación = 1,000 CU (1 USD = 10,000,000 CU).

Fórmula: Peso en CU × 1,000,000 ÷ (10,000 × 1,000) USD.

MétodoCU por llamadaPrecio por 1M de llamadas (USD)
eth_blockNumber1$0.10
eth_call15$1.50
eth_getLogs30$3.00
debug_traceTransaction100$10.00
data.block5$0.50

Cuándo elegir Webhooks de direcciones

Elija la API de Webhooks blockchain cuando su backend funcione como un servicio web estándar capaz de recibir solicitudes HTTPS entrantes:

  • Listas grandes de direcciones: Monitoree depósitos o retiradas de miles de direcciones de clientes sin mantener sockets persistentes para cada billetera.
  • Receptores serverless o en contenedores: Las funciones serverless (AWS Lambda, Cloudflare Workers) se activan ante webhooks entrantes y no necesitan mantener conexiones continuas abiertas.
  • Reintentos automáticos y replay: Las interrupciones transitorias del receptor se mitigan mediante esperas progresivas de reintento automáticas. Dentro de la ventana de retención del servidor, las entregas omitidas pueden reenviarse utilizando el endpoint de replay.
  • Consideraciones del límite de activación: Las coincidencias comienzan solo después de aplicar el cambio de suscripción (applied_from_block). Los eventos anteriores a la incorporación de una dirección o producidos mientras una suscripción estaba offline deben consultarse mediante logs RPC históricos.

Revise los flujos de verificación de firmas y replay antes de exponer receptores de webhook de producción.

Cuándo elegir suscripciones WebSocket

Elija Suscripciones WebSocket cuando necesite baja latencia y su proceso pueda mantener un socket saliente de larga duración:

  • Cabeceras de bloques en tiempo real: Reciba un flujo newHeads a medida que se añade cada bloque a la cabecera de la cadena.
  • Filtros de eventos de contratos: Reciba un flujo de logs de contratos en tiempo real que coincidan con una dirección o un topic0 específico.
  • Entornos privados: Ideal para scripts locales, agentes CLI o servicios backend detrás de NAT o firewalls que no puedan exponer un puerto HTTPS público entrante.
  • Comprobación de disponibilidad de red: WebSocket es compatible con Robinhood Chain (slug de red robinhood_mainnet, Chain ID 4663 y robinhood_testnet). HyperEVM actualmente no tiene compatibilidad WebSocket (ws: false); intentar una conexión WebSocket a una cadena no servida devuelve HTTP 404 (unknown_chain).
  • Gestión de desconexiones: Los avisos WebSocket no se conservan en el servidor durante las desconexiones. Cuando el socket se desconecta, los clientes deben reconectar con esperas exponenciales aleatorizadas y recuperar los bloques omitidos mediante eth_getLogs.

Revise la guía de suscripciones WebSocket para conocer los límites de filtros, los límites de conexiones (20 por clave, 50 por cuenta) y los ejemplos de conexión con viem.

Cuándo elegir sondeo RPC acotado

Elija sondeo JSON-RPC acotado al ejecutar workers programados, pipelines de datos o trabajar en redes donde WebSocket no esté disponible:

  • Redes sin WebSocket: HyperEVM (hyperevm_mainnet) actualmente ofrece acceso JSON-RPC HTTP, pero no WebSocket (ws: false). Sondear eth_blockNumber y consultar eth_getLogs dentro de los rangos de bloques compatibles permite procesar eventos de HyperEVM.
  • Ritmo de consulta controlado: El sondeo permite a los desarrolladores y agentes de IA controlar la frecuencia de solicitudes, gestionar el consumo de Compute Units dentro de los límites de tasa por clave y evitar desconexiones de sockets durante tareas de larga duración. Límites por clave — los valores predeterminados son 400 CU/s y ráfaga de 1,600 CU.
  • Límites de rango de bloques: Las consultas eth_getLogs autenticadas están limitadas por el max_logs_block_range de la red de GET /v1/chains. Superar este límite devuelve el código de error -32602 (logs_range_too_large). Divida los intervalos más amplios en tramos consecutivos que no superen el max_logs_block_range de la red de destino.
CadenaSlug de la cadenamax_logs_block_range (bloques)
Arbitrum Onearb_mainnet1,000
Basebase_mainnet1,000
BNB Smart Chainbsc_mainnet1,000
Ethereumeth_mainnet1,000
Ethereum Sepoliaeth_sepolia1,000
HyperEVMhyperevm_mainnet1,000
Polygonpolygon_mainnet1,000
Robinhood Chainrobinhood_mainnet1,000
Robinhood Chain Testnetrobinhood_testnet1,000

Consulte la guía de recuperación de logs de HyperEVM y la guía de rangos de bloques de eth_getLogs para conocer los algoritmos de división en tramos.

Para obtener una lista completa de comprobaciones de carga de trabajo y pruebas propias, comience con Cómo elegir un proveedor RPC.

Al elegir un proveedor para sondeo de bajo volumen, compare proveedores según la facturación y cobertura RPC estándar. Compare la facturación por uso con los costes de pruebas y suscripciones; los costes de avisos y recuperación de historial utilizan medidas diferentes a las lecturas RPC.

Guías de implementación

WebSocket en Robinhood Chain

Para newHeads en tiempo real o logs filtrados en Robinhood Chain, siga la guía de suscripciones WebSocket para conocer la autenticación y las solicitudes de suscripción. Tras una desconexión, reconecte con esperas progresivas, vuelva a suscribirse y recupere los bloques omitidos desde un cursor guardado con eth_getLogs; deduplique los logs por (blockHash, transactionHash, logIndex).

Sondeo acotado en HyperEVM

Para HyperEVM (hyperevm_mainnet), siga la guía de recuperación de logs de HyperEVM para sondeo acotado y recuperación. Consulte desde el cursor guardado en tramos dentro de max_logs_block_range, guarde conjuntamente los eventos y el progreso tras procesarlos correctamente y reintente los rangos incompletos. Compruebe la continuidad de la cadena y explore rangos superpuestos para gestionar reorganizaciones.

Próximos pasos

Última actualización:

En esta página