On-chain analytics for the Post Fiat network — a token economy where humans and AI agents earn PFT by completing tasks.
- Network Metrics — Total PFT distributed, unique earners, success rate
- Leaderboard — Top earners ranked by balance (gold/silver/bronze for top 3)
- Daily Distribution — 14-day bar chart of reward activity (UTC)
- Top Submitters — Most active task submitters
- Wallet Search — Look up any address to see rank and earnings
All data comes directly from the Post Fiat L1 blockchain. Updates every 60 seconds.
npm install
npm run devOpens at http://localhost:5173. Uses production data by default.
Use this when you expect a chain reset and want a concrete before/after impact report.
# one-time snapshot (good for sanity checks)
npm run monitor:reset:once
# continuous monitor (default 20s interval)
npm run monitor:resetOptional flags:
node scripts/reset_monitor.mjs --interval 15 --out-dir ./monitor/reset-window --reset-baseline
node scripts/reset_monitor.mjs --email-to "you@example.com" --email-account womboOutputs:
monitor/reset-monitor/snapshots/*.json— raw snapshots of balances and ledger indexmonitor/reset-monitor/latest.md— current statusmonitor/reset-monitor/incidents/<id>/report.md— incident impact report (trigger reasons + wallet-level deltas)monitor/reset-monitor/state.json— baseline + incident state
A Vercel cron job runs every minute:
- Connects to Post Fiat RPC (
wss://ws.testnet.postfiat.org) - Fetches transactions from reward wallets
- Computes totals, leaderboard, daily activity
- Writes JSON to Vercel Blob
- Frontend fetches from Blob on load + 60s polling
| File | What It Does |
|---|---|
api/refresh-data.ts |
Serverless cron job — chain queries → Blob |
src/main.ts |
Dashboard rendering, search, explorer links |
src/style.css |
Terminal theme (black bg, #00ff00 green) |
Primary reward wallets (distribute to many users):
rGBKxoTcavpfEso7ASRELZAMcCMqKa8oFkrKt4peDozpRW9zdYGiTZC54DSNU3Af6pQErJNwqDPKSkbqDPNoNxbW6C3KCS84ZaQc96
Relay wallets (funded by memo addr, distribute to 1-2 users): 9 addresses tracked — see api/refresh-data.ts
Memo wallet: rwdm72S9YVKkZjeADKU2bbUMuY4vPnSfH7 (receives pf.ptr submissions)
- Fork this repo
- Import to Vercel
- Set
BLOB_READ_WRITE_TOKEN(auto-configured by Vercel Blob) - Optional: Set
CRON_SECRETto protect the cron endpoint - Optional: Set
OPENAI_API_KEYorPFT_OPENAI_API_KEYto enable LLM summaries in the dev feed - Optional: Set
PFT_TASKNODE_JWTto pull official Task Node leaderboard points for exact point matching
Cron runs automatically every minute.
See CLAUDE.md for AI agent development context.
MIT
