Webhooks
Recibe callbacks HTTP POST de los proveedores RPC cuando las cuentas o transacciones coincidan con tus filtros: indexación basada en eventos sin mantener clientes WebSocket o gRPC.
Busca en todas las páginas de la documentación
Recibe callbacks HTTP POST de los proveedores RPC cuando las cuentas o transacciones coincidan con tus filtros: indexación basada en eventos sin mantener clientes WebSocket o gRPC.
Tarjeta de receta de referencia rápida, lista para copiar y pegar.
# Panel del proveedor: crear webhook
# URL: https://api.yourapp.com/webhooks/helius
# Tipo: transacción mejorada / cuenta / cruda
# Direcciones de cuenta: YOUR_PROGRAM_ID// Manejador de ruta de Next.js (ilustrativo)
export async function POST(req: Request) {
const body = await req.json();
// verificar la cabecera de autenticación / firma según la documentación del proveedor
await enqueueForIndexer(body);
return new Response("ok");
}Cuándo usar esto:
import { createHmac, timingSafeEqual } from "node:crypto";
function verifyHeliusSignature(
secret: string,
payload: string,
header: string | null
): boolean {
if (!header) return false;
const expected = createHmac("sha256", secret).update(payload).digest("hex");
try {
return timingSafeEqual(Buffer.from(header), Buffer.from(expected));
} catch {
return false;
}
}
export async function POST(req: Request) {
const raw = await req.text();
const sig = req.headers.get("x-helius-signature");
if (!verifyHeliusSignature(process.env.HELIUS_WEBHOOK_SECRET!, raw, sig)) {
return new Response("unauthorized", { status: 401 });
}
const event = JSON.parse(raw);
await persistTransactionEvent(event);
return Response.json({ received: true });
}Lo que esto demuestra:
| Elección | Recomendación |
|---|---|
| Auth | Verificación de cabecera HMAC |
| Tiempo de respuesta | < 1s ACK, proceso asíncrono |
| Idempotencia | Clave en firma + tipo |
| Almacenamiento | JSON crudo + tablas normalizadas |
// Patrón ACK rápido con cola
await queue.add("index-tx", { id: event.signature });
return Response.json({ ok: true });| Alternativa | Usar cuando | No usar cuando |
|---|---|---|
| Yellowstone gRPC | Rendimiento masivo | Disparadores de alerta simples |
logsSubscribe | Controlas la infraestructura WS | Pila solo sin servidor |
| Escaneos Cron GPA | Baja frecuencia | Necesidades de casi tiempo real |
| Cron interno + getSignaturesForAddress | Conjuntos de direcciones pequeños | Programas de alto volumen |
Helius prominentemente; otros ofrecen callbacks mejorados similares; consulta los paneles.
A menudo para alertas; las analíticas aún necesitan un esquema de base de datos y backfill para la integridad.
Usa un túnel ngrok/cloudflared a un punto final HTTPS durante el desarrollo.
El proveedor reintenta; reconcilia las brechas con el backfill de firmas desde el último slot conocido.
Mejorada ahorra trabajo de análisis; cruda da control total si el programa es personalizado.
URLs y secretos de webhook separados para staging vs. producción.
Los planes del proveedor limitan los eventos por mes; monitoriza el panel de uso.
Depende del proveedor; muchos se centran en la producción en mainnet.
Sigue la documentación del proveedor para los nombres exactos de las cabeceras y el algoritmo HMAC.
Superficie de producto diferente: webhooks para eventos, DAS para lecturas de activos.
Versiones de la pila: Esta página se escribió para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026