Building Real-Time Event-Driven Applications with FluxRail: A Step-by-Step Guide
Learn how to build real-time event-driven applications using FluxRail's blockchain monitoring and webhooks. This step-by-step guide covers creating subscriptions, verifying webhook signatures, and automating gas-free transfers.
Introduction
The blockchain world is inherently event-driven. Transactions, transfers, and smart contract interactions happen asynchronously, and applications need to react in real time. FluxRail's Core product provides a unified API to monitor blockchain events across 36+ chains, delivering them to your backend via signed webhooks. In this guide, you'll learn how to build a real-time event-driven application using FluxRail—from subscribing to addresses to processing webhooks securely.
Prerequisites
- A FluxRail account (sign up at fluxrail.io)
- A test API key (
flux_test_...) from the dashboard - A public endpoint to receive webhooks (e.g., a server with HTTPS, or a tool like ngrok for local development)
Step 1: Create a Webhook Endpoint
First, register the URL where FluxRail will send events. Use the POST /api/v1/webhooks endpoint.
curl -X POST https://api.fluxrail.io/api/v1/webhooks \
-H "X-API-Key: flux_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-server.com/webhooks/fluxrail",
"description": "My production webhook",
"events": ["transaction.mined", "transfer.sent"]
}'The response includes an id and a secret used for signature verification. Save the secret securely.
Step 2: Subscribe to an Address
Now, monitor a blockchain address. Use POST /api/v1/subscriptions.
curl -X POST https://api.fluxrail.io/api/v1/subscriptions \
-H "X-API-Key: flux_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18",
"chain": "ethereum",
"webhook_url": "https://your-server.com/webhooks/fluxrail",
"events": ["transaction.mined", "token.transfer"]
}'FluxRail will now stream events for that address to your webhook.
Step 3: Verify Webhook Signatures
Every webhook request includes a X-FluxRail-Signature header. Verify it using HMAC SHA-256 with your webhook secret to ensure the payload is authentic.
Example in Node.js:
const crypto = require('crypto');
function verifyFluxRailSignature(req, secret) {
const signature = req.headers['x-fluxrail-signature'];
const payload = JSON.stringify(req.body);
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}Always use timingSafeEqual to prevent timing attacks.
Step 4: Handle Events
FluxRail sends events as JSON. Here's a typical transaction.mined payload:
{
"id": "evt_abc123",
"type": "transaction.mined",
"created": 1712345678,
"data": {
"chain": "ethereum",
"hash": "0xabcdef...",
"from": "0x...",
"to": "0x...",
"value": "1000000000000000000",
"block_number": 19000000,
"confirmations": 12
}
}Process the event in your application—update a database, trigger a payout, or send a notification. Respond with 200 OK to acknowledge receipt. FluxRail will retry on non-200 responses.
Step 5: Monitor Subscription Health
Check your subscription's status and webhook delivery logs.
curl https://api.fluxrail.io/api/v1/subscriptions/YOUR_SUBSCRIPTION_ID \
-H "X-API-Key: flux_test_YOUR_API_KEY"View webhook logs for a subscription:
curl https://api.fluxrail.io/api/v1/subscriptions/YOUR_SUBSCRIPTION_ID/webhook-logs \
-H "X-API-Key: flux_test_YOUR_API_KEY"Step 6: Combine with FluxRail Pay for Gas-Free Transfers
React to an event by sending a gas-free transfer using FluxRail Pay. For example, when a deposit is detected, automatically issue a payout.
curl -X POST https://api.fluxrail.io/api/v1/transfer \
-H "X-API-Key: flux_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "0xYourSenderAddress",
"to": "0xRecipientAddress",
"token": "USDC",
"network": "ERC20",
"amount": "50.00",
"sponsor_gas": true
}'FluxRail covers the gas fees via its paymaster infrastructure.
Step 7: Scale with Bulk Subscriptions
To monitor many addresses at once, use the bulk endpoint.
curl -X POST https://api.fluxrail.io/api/v1/subscriptions/bulk \
-H "X-API-Key: flux_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subscriptions": [
{"address": "0x...", "chain": "ethereum", "webhook_url": "..."},
{"address": "0x...", "chain": "polygon", "webhook_url": "..."}
]
}'Best Practices
- Idempotency: Events may be delivered more than once. Use the event
idto deduplicate. - Fast Response: Acknowledge webhooks immediately (< 5s). Offload heavy processing to a queue.
- Retry Logic: If your endpoint fails, FluxRail retries with exponential backoff. Monitor delivery logs.
- Test Mode: Use
flux_test_keys for development. All events are simulated but follow the same lifecycle.
Conclusion
You've built a real-time event-driven application with FluxRail in minutes. By combining Core's blockchain monitoring with Pay's gas-free transfers, you can automate complex workflows—from DeFi bots to cross-border payment triggers. Explore the full API at docs.fluxrail.io and join the future of unified blockchain infrastructure.