Loading…
Define rules for the transactions you care about. FalconHook watches every block and sends a signed HTTP POST to your endpoint when something matches.
{
"event_type": "transaction",
"rule_name": "large-usdc-transfers",
"network": "mainnet",
"round": 44821037,
"timestamp": "2026-03-28T14:22:07Z",
"payload": {
"id": "GKPT5B...",
"type": "axfer",
"sender": "ALGO3X...",
"receiver": "7YNQA2...",
"asset_id": 31566704,
"amount": 250000000
}
}Every delivery includes an HMAC-SHA256 signature so you can verify it came from FalconHook.
HMAC-SHA256 signature on every delivery so you can verify authenticity with a single function call.
Failed deliveries retry with configurable exponential backoff. Dead-letter queue for inspection and replay.
Block finalized → rule matched → webhook delivered. The whole pipeline runs in memory, not on a cron.
Filter by sender, receiver, asset ID, app ID, transaction type, or minimum amount. Combine any way you want.
FalconHook sends standard HTTP POST requests with JSON bodies. If your stack can receive an HTTP request, it works with FalconHook.
@app.post("/webhook")
async def handle(request: Request):
body = await request.body()
sig = request.headers["X-FalconHook-Signature"]
# Verify HMAC signature
verify_signature(body, sig, SECRET)
event = await request.json()
print(f"Tx {event['payload']['id']}"
f" round {event['round']}")
return {"ok": True}Create your account and start receiving webhooks in minutes. No credit card required.
Create your account