Plugin feeds on XDC
Early access. Live data and the free APIs are online. Sign-ups and payments open soon.
Coming soonQuickstartAPI
FeedPlumb · Watch, Build, Enterprise, Payments

EventHook Event webhook API

XDC contract events delivered to your backend as signed webhooks.

Coming soonAPI online; subscriptions and deliveries open soon
API reference

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

  1. Create a subscription for any contract event (by address and topics) or for XRC-20 / ERC-20 token transfers (by token, sender or receiver).
  2. 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.
  3. 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.

Opening soon. Sign-ups and quote requests are not open yet.

Planned pricing Coming soon · planned pricing

Start free with 2 subscriptions. Pay only when you need more subscriptions or more events per day.

Billing period

  • 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
EventHook plans compared
PlanDevBuilderTeamCustom
Price€0€19/month€79/monthOn request
Subscriptions21050Custom
Events delivered per day1,00020,000200,000Custom
API requests per minute30120600Custom
Confirmations before delivery5555 or more
Failed payloads kept7 days7 days7 daysCustom
SupportDocsE-mail, 2 working daysE-mail, next working dayAgreed 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.