Webhooks
Receba callbacks HTTP POST de provedores RPC quando contas ou transações correspondem aos seus filtros - indexação orientada a eventos sem manter clientes WebSocket ou gRPC.
Busque em todas as páginas da documentação
Receba callbacks HTTP POST de provedores RPC quando contas ou transações correspondem aos seus filtros - indexação orientada a eventos sem manter clientes WebSocket ou gRPC.
Cartão de receita de referência rápida - pronto para copiar e colar.
# Dashboard do provedor: criar webhook
# URL: https://api.yourapp.com/webhooks/helius
# Tipo: enhanced transaction / account / raw
# Endereços de conta: YOUR_PROGRAM_ID// Handler de rota Next.js (ilustrativo)
export async function POST(req: Request) {
const body = await req.json();
// verifique header de auth / assinatura conforme docs do provedor
await enqueueForIndexer(body);
return new Response("ok");
}Quando usar isso:
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 });
}O que isso demonstra:
| Escolha | Recomendação |
|---|---|
| Auth | Verificação de header HMAC |
| Tempo de resposta | ACK < 1s, processamento assíncrono |
| Idempotência | Chave em signature + type |
| Armazenamento | JSON bruto + tabelas normalizadas |
// Padrão ACK rápido com fila
await queue.add("index-tx", { id: event.signature });
return Response.json({ ok: true });| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Yellowstone gRPC | Throughput massivo | Gatilhos simples de alerta |
logsSubscribe | Você controla infra WS | Stack apenas serverless |
| Scans GPA por cron | Baixa frequência | Necessidade quase em tempo real |
| Cron interno + getSignaturesForAddress | Conjuntos pequenos de endereços | Programas de alto volume |
Helius em destaque; outros oferecem callbacks enhanced similares - verifique dashboards.
Muitas vezes para alertas; análises ainda precisam de schema de banco e backfill para completude.
Use túnel ngrok/cloudflared para endpoint HTTPS durante desenvolvimento.
O provedor retenta; reconcilie lacunas com backfill de assinaturas a partir do último slot conhecido.
Enhanced economiza trabalho de parse; raw dá controle total se o programa for customizado.
URLs e secrets de webhook separados para staging vs produção.
Planos do provedor limitam eventos por mês - monitore o dashboard de uso.
Depende do provedor - muitos focam em mainnet de produção.
Siga a doc do vendor para nomes exatos de header e algoritmo HMAC.
Superfície de produto diferente - webhooks para eventos, DAS para leituras de ativos.
Versões da stack: Esta página foi escrita 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 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026