Built on Base · Powered by AgentKit

Social
signals.
On-chain
rewards.

MetricFlow monitors your Farcaster casts in real time. Every like. Every recast. Automatically rewarded with ETH on Base.

~2s
Reaction to reward
Base
L2 — near zero fees
100%
Automated
Like detected on Farcaster
ETH sent on Base Sepolia
Allowlist updated
Recast detected on Farcaster
Reward confirmed on-chain
Community member rewarded
Like detected on Farcaster
ETH sent on Base Sepolia
Allowlist updated
Recast detected on Farcaster
Reward confirmed on-chain
Community member rewarded
// How It Works

Four steps.
Zero manual work.

📡
Farcaster Cast
You post a cast on Farcaster via Warpcast
🔔
Neynar Webhook
Reaction detected in real-time via Neynar API
🤖
MetricFlow Agent
Agent validates reactor and triggers reward logic
⛓️
Base Chain
ETH sent + user added to allowlist on Base
// Features

Built for builders.
Loved by communities.

01 —
Real-time Detection
Neynar webhooks fire the moment someone likes or recasts your post. No polling. No delays.
02 —
Automatic ETH Rewards
Coinbase AgentKit sends ETH directly to the reactor's verified Base wallet automatically.
03 —
Smart Allowlisting
Every rewarded user is added to a persistent allowlist for future token drops or gated access.
04 —
Verified Addresses Only
Only reactors with verified ETH addresses on Farcaster receive rewards. Sybil-resistant by design.
05 —
Testnet First
Start on Base Sepolia with free test ETH. Graduate to mainnet with one config change.
06 —
Open Source
Fully open on GitHub. Fork it, extend it, build on it. MIT licensed.
// Tech Stack

Best-in-class tools.
Minimal complexity.

Base (L2)
Ethereum L2 by Coinbase. Near-zero fees, fast finality. Where all rewards land.
Coinbase AgentKit
The simplest way to send on-chain transactions programmatically via CDP.
Neynar
The leading Farcaster API. Real-time webhooks for reactions and user data.
TypeScript
Fully typed end-to-end. From webhook payload to on-chain transaction.

Simple logic.
Powerful results.

MetricFlow is an "If This Then That" loop. A Farcaster reaction triggers the agent, validates the user, logs them to the allowlist, and fires an on-chain transaction — all in under 2 seconds.

Read the Source →
// rewardEngine.ts

async function processEvent(
  event: EngagementEvent
) {

  // Verify ETH address
  if (!event.reactorEthAddress)
    return skip("no_address");

  // Add to allowlist
  addToAllowlist(event);

  // Send ETH on Base
  const tx = await sendReward(
    event.reactorEthAddress,
    config.rewardAmountWei
  );

  return { status: "sent", tx };
}
// Get Started

Start rewarding
your community
today.

Open source. Free to deploy. Built on Base.

View on GitHub → Learn about Base