EventHook Event webhook API
XDC contract events delivered to your backend as signed webhooks.
Included in: Solo (1 webhook endpoint, 3,000 deliveries per month) · Builder (15 webhook endpoints, 25,000 deliveries per day) · Pro (50, 50,000 per day) · Protocol (150, 100,000 per day) · Custom quote · real delivery Coming soon
EventHook at a glance
- Who it is for
- Backend and integration teams that need to react to on-chain events.
- The problem it solves
- Running your own node and log poller just to learn about a transfer or event is costly and fragile.
What it does
- Subscribe by contract address and topics, or by token transfer (token, sender or receiver)
- Sent after 5 confirmations, signed with HMAC-SHA256
- At-least-once delivery with a delivery id for de-duplication and retries with backoff
- Failed payloads kept for 7 days
- Only public HTTPS targets accepted
How it will work
- Create a subscription for any contract event (by address and topics) or for XRC-20 / ERC-20 token transfers (by token, sender or receiver).
- After 5 confirmations (XDPoS 2.0 finality is about 3 blocks), we send a signed JSON POST to your HTTPS endpoint, signed with HMAC-SHA256 in
x-notify-signature. - Delivery will be at least once: de-duplicate on
x-notify-delivery-id(txHash:logIndex). Each delivery will be tried 4 times with backoff, and failed payloads will be kept for 7 days; a replay command is planned.
- Your API key will be stored only as a hash, with per-key rate limits and per-plan subscription limits.
- Only public HTTPS targets will be accepted. Private and loopback addresses will be refused, even if DNS changes later.
- Native XDC transfers are not included yet.
Read-only: we will never ask for your keys or hold funds.
Get access
Create API keys and manage webhook endpoints in FeedPlumb Workspace.
Create a subscription
curl -X POST https://feedplumb.jp/notify/subscriptions \
-H "x-api-key: nk_…" -H "content-type: application/json" \
-d '{"webhookUrl":"https://example.com/hook",
"filter":{"erc20Transfer":{"token":"0xFf7412Ea7C8445C46a8254dFB557Ac1E48094391"}}}'Authenticate with your FeedPlumb Workspace API key. The response contains the signing secret once. Store it safely.
Verify the signature (Node.js)
const crypto = require("crypto");
function verify(rawBody, secret, sig) {
const a = Buffer.from(crypto.createHmac("sha256", secret).update(rawBody).digest("hex"));
const b = Buffer.from(sig || "");
return a.length === b.length && crypto.timingSafeEqual(a, b);
}Privacy and data protection
We process your account details (consumer or business), plan tier, webhook URLs and subscription filters to perform our contract with you (art. 6(1)(b) GDPR). Account data is kept while the account exists plus 2 years; webhook subscriptions while the subscription runs plus 3 months; failed delivery logs 7 days; invoices 7 years (tax law); backups at most 30 days. Webhook URLs and signing secrets are treated as secrets and never written to public logs. Full details: /privacy/ and /paid-services/.