EventHook Event webhook API
XDC contract events delivered to your backend as signed webhooks.
EventHook at a glance
- Who it will be for
- Backend and integration teams that need to react to on-chain events.
- The problem it will solve
- Running your own node and log poller just to learn about a transfer or event is costly and fragile.
Planned features
- 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
2 more features
- 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 will send a 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.
Join the waitlist Opening soon
The API is online. Client keys and webhook deliveries open with sign-ups, with early access for waitlist members.
Planned pricing Coming soon · planned pricing
Start free with 2 subscriptions. Pay only when you need more subscriptions or more events per day.
-
Dev
Dev: freeFree plan
For trying EventHook and small side projects.
- 2 subscriptions
- 1,000 events a day
- HMAC-SHA256 signed deliveries
- Failed payloads kept 7 days
-
Builder
Builder: €19 per monthor €190 a year
For one production dApp or backend.
- 10 subscriptions
- 20,000 events a day
- 120 API requests a minute
- E-mail support
-
Team
Team: €79 per monthor €790 a year
For protocols and teams with several contracts.
- 50 subscriptions
- 200,000 events a day
- 600 API requests a minute
- Priority e-mail support
-
Custom
Custom: price on requestTailored quote
Higher limits, invoicing, or EventHook bundled with feed monitoring.
- Limits set to your needs
- Bundle with FeedHealth or ProtocolAlert
- Invoice billing
Opening soon: Sign-ups open at launch.
Planned pricing. Coming soon: nothing is on sale yet.
Prices in euros.
Compare plans
| Plan | Dev | Builder | Team | Custom |
|---|---|---|---|---|
| Price | €0 | €19/month | €79/month | On request |
| Subscriptions | 2 | 10 | 50 | Custom |
| Events delivered per day | 1,000 | 20,000 | 200,000 | Custom |
| API requests per minute | 30 | 120 | 600 | Custom |
| Confirmations before delivery | 5 | 5 | 5 | 5 or more |
| Failed payloads kept | 7 days | 7 days | 7 days | Custom |
| Support | Docs | E-mail, 2 working days | E-mail, next working day | Agreed response time |
Create a subscription
curl -X POST https://feedplumb.com/notify/subscriptions \
-H "x-api-key: nk_…" -H "content-type: application/json" \
-d '{"webhookUrl":"https://example.com/hook",
"filter":{"erc20Transfer":{"token":"0xFf7412Ea7C8445C46a8254dFB557Ac1E48094391"}}}'The API answers on this address, but client keys (nk_…) are not issued yet, so this call returns 401 until sign-ups open. 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);
}Client privacy and processor terms Draft
We keep your client/company name, tier, webhook URLs, subscriptions and a contact e-mail if you give one, to perform our contract with you (art. 6(1)(b) GDPR). Kept until your client account is deleted; invoices 7 years (tax law); failed payloads 7 days; backups at most 30 days. Webhook URLs are treated as secrets and never written to logs.
Where you link addresses to your own users, we will act as your processor (art. 28 GDPR) under the standard clause in the API terms, which will be published before EventHook opens. Controller: FeedPlumb.