HomeUse casesToken Distribution Alerts
Engagement

Token Distribution Alerts.
Engage users with live webhook feeds for loyalty token and utility transfers.

Keep your users updated in real time. Standardize native and ERC-20 transfer event structures across every supported chain to power client-facing dashboards and activity feeds.

By the numbers
10+Core Chains
ReliableWebhook Feeds
ConcurrentRouter Delivery
The Problem

Why custom RPC listening loops break in production

Web3 apps, loyalty platforms, and mobile wallets need to display real-time feeds of reward transfers, utility token mints, and token distributions. Creating these feeds requires parsing raw blockchain log topics, decoding ABI events, and filtering them by user address. Doing this at scale for thousands of concurrent users requires building and scaling custom indexers, running stateful databases, and managing persistent websocket connections, which strains server resources and degrades application performance.

The Solution

How Blockferry Solves It

Blockferry normalizes token transfers (ERC-20, ERC-721, and ERC-1155) into a single unified JSON schema. Using our SDK Router, you can define clear event-routing logic to dispatch live updates to frontend dashboards, notification servers, or pub/sub clients like Pusher. By offloading event filtering and ABI decoding to Blockferry, you can build responsive, real-time user feeds with zero indexing infrastructure.

Implementation

Build it with the SDK & CLI

SDK
feed.ts
1import { BlockferryRouter } from "@blockferry/sdk";
2
3const router = new BlockferryRouter();
4const LOYALTY_TOKEN = "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984";
5
6// Route loyalty token transfers to user dashboard feed
7router.onTokenTransfer(LOYALTY_TOKEN, async (event) => {
8 await pusher.trigger(`user-${event.toAddress}`, "transfer", {
9 from: event.fromAddress,
10 amount: event.valueInDecimals,
11 token: event.tokenSymbol,
12 txHash: event.txHash,
13 });
14});
15
16// Also catch native transfers for the same users
17router.onNativeTransfer(async (event) => {
18 await pusher.trigger(`user-${event.toAddress}`, "transfer", {
19 from: event.fromAddress,
20 amount: event.valueInDecimals,
21 token: "ETH",
22 txHash: event.txHash,
23 });
24});
25
26await router.handle(payload);
Terminal
~
Capabilities

What you get out of the box

Fully normalized transaction schema across Ethereum, Solana, Base, and other major chains

Fast routing engine built into the SDK to power customized real-time dashboard feeds

Tamper-proof payload verification using cryptographic HMAC with standard secret keys

API resource clients to manage watchlists and event subscriptions dynamically at runtime

Durable replay execution paths for backfilling analytics systems and activity histories

Ship token distribution alerts this week.

Create an account and hook up your first workflow rule in just a few minutes.