Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Discover and transact on the AntSeed P2P AI network from any MCP-compatible agent.

README.md

AntSeed Demand Explorer

Live at antfeed.org

An open-source, on-chain index of buyer activity on the AntSeed P2P AI services network. Provider/seller activity is already surfaced on antseed.com/network; this app fills the gap on the demand side: who is spending USDC on inference, with which providers, and how reliably.

Not affiliated with the AntSeed team.

---

What it does

  1. Funded buyers — per-depositor volume, sessions, unique sellers, ghost-session count, and a derived Buyer Trust Score (0–100).
  2. Network leaderboard — sortable, filterable buyer ranking.
  3. Network overview — daily settlement volume, active buyers, last 30 days.
  4. Token usage detail — input/output tokens and request count from AntseedStats.MetadataRecorded, with legacy settled-session metadata decoded only after validation.
  5. Public scoring APIGET /api/score/[address] returns the trust score JSON for any address.

---

Stack

  • Next.js 15 (App Router) + TypeScript
  • viem for Base reads (no wallet, read-only)
  • Neon Postgres + Drizzle ORM (HTTP driver, serverless-friendly)
  • Tailwind CSS, Recharts

---

Getting started locally

cp .env.example .env       # fill DATABASE_URL with a Neon DB or a local Postgres
npm install
npm run db:push            # apply schema to your DB
npm run dev

| Script | What it does | |---|---| | npm run dev | Local Next.js dev server | | npm run build | Production build | | npm run db:generate | Diff schema and emit a new migration in drizzle/ | | npm run db:push | Apply schema directly (dev-only, no migration history) | | npm run db:migrate | Apply pending migrations from drizzle/ | | npm run db:studio | Open Drizzle Studio for browsing the DB | | npm run sync | Run a one-shot indexer pass against the configured DB | | npm run sync loop | Loop until caught up to chain head |

---

Environment variables

| var | default | meaning | |---|---|---| | DATABASE_URL | required | Postgres connection string. | | RPC_URL | https://base.drpc.org | Base RPC. DRPC and Tenderly free tiers allow large eth_getLogs ranges. | | CHAIN_ID | 8453 | 8453 Base mainnet, 84532 Base Sepolia. | | CRON_SECRET | none | Required in production. Cron requests must send Authorization: Bearer <CRON_SECRET>. | | LOG_BATCH_SIZE | 2000 | Max blocks per getLogs. Indexer auto-shrinks if RPC complains. | | CHANNELS_ADDRESS | 0xBA66d3b4f... | Override only if you've forked to a different contract. | | START_BLOCK | deployment block | First block to index from. |

---

Contract integration

Core settlement contract: AntseedChannels on Base mainnet, 0xBA66d3b4fbCf472F6F11D6F9F96aaCE96516F09d, deployed at block 45,667,842. Auxiliary indexers also read AntseedStats, ANTS, staking, deposits, and identity events for token accounting, holder state, DAU, and address enrichment.

| event | semantic | |---|---| | Reserved | session opened (buyer locks maxAmount for a seller). | | ChannelSettled | seller called settle; delta USDC moved this batch. metadata is seller-provided opaque bytes and is stored only after validation. | | MetadataRecorded | authorized stats writer recorded per-inference input/output tokens and request count; canonical source for network token totals. | | ChannelClosed | channel closed. settledAmount=0 + no prior ChannelSettled → ghost. | | ChannelTopUp | buyer added more deposit to an existing channel. | | ChannelWithdrawn | buyer pulled refund. | | CloseRequested | grace-period close started. |

Per-buyer aggregates are recomputed in SQL on every sync — no event replay needed for score recomputes. The indexer runs reconcileDrift() after each pass to catch rare partial-sync races.

---

Buyer Trust Score

lib/score.ts, 0–100, four sub-scores:

  • Volume (0–30)log10(USDC + 1) / log10(100) × 30. $100 settled = 30.
  • Consistency (0–25)log10(sessions + 1) / log10(50) × 25.
  • Diversity (0–25)<3 unique sellers = 0; 3 = 10; 10+ = 25.
  • Reliability (0–20)settled / (settled + ghost) × 20.

A buyer with ≥3 distinct settled sellers earns the Qualified Proven Sign badge.

---

Public APIs

GET  /api/stats                      Network aggregates + 30d daily series
GET  /api/buyers?limit=&offset=&qualified=&minScore=&sort=
GET  /api/buyers/{address}           Buyer detail + sessions + top sellers
GET  /api/score/{address}            Trust score JSON
POST /api/sync?force=1               Manual indexer pass (Bearer sync secret required)

/api/score/{address} example: ``json { "address": "0x…", "score": 73, "tier": "trusted", "qualified": true, "breakdown": { "total": 73, "volume": 24.1, "consistency": 18.0, "diversity": 18.6, "reliability": 12.0, "qualified": true }, "stats": { "…": "raw indexed counters" } } ``

---

Operations

  • Vercel cron is the scheduled indexer owner. vercel.json runs /api/cron/sync

every five minutes; do not add an external minute-level cron for the same endpoint.

  • /api/cron/hero is an authenticated manual repair endpoint only. Call it

with ?repair=1 after confirming /api/cron/sync cannot refresh the hero snapshot.

  • Runtime contract checks require an explicit target:

API_RUNTIME_BASE_URL=http://localhost:3000 npm run test:api-runtime and CSP_RUNTIME_URL=http://localhost:3000 npm run test:csp-runtime.

  • Verify shared public API rate-limit storage after migrations with

npm run check:rate-limit-storage; otherwise the app falls back to per-instance limits until the table exists.

---

Project layout

antseed-explorer/
  app/
    layout.tsx                  # nav + Sync button
    page.tsx                    # / overview + top 10
    buyers/page.tsx             # /buyers leaderboard
    buyers/[address]/page.tsx   # buyer detail
    api/
      cron/sync/route.ts        # cron-driven indexer pass
      sync/route.ts             # authenticated manual sync endpoint
      buyers/route.ts
      buyers/[address]/route.ts
      stats/route.ts
      score/[address]/route.ts
    components/                 # Charts, Badges, CopyButton, UI helpers
  lib/
    schema.ts                   # Drizzle Postgres schema
    db.ts                       # Neon HTTP client + state helpers
    queries.ts                  # all reads used by pages/APIs
    indexer.ts                  # getLogs loop, ghost detection, recompute, reconcile
    antseed.ts                  # contract addresses + ABI
    chain.ts                    # viem client
    score.ts                    # Buyer Trust Score
    format.ts
  scripts/
    sync-cli.ts                 # local CLI sync against DATABASE_URL
  drizzle/                      # generated migrations
  vercel.json                   # cron config + maxDuration

---

Contributing

Issues and PRs are welcome. The most useful contributions right now:

  • Improved scoring models or new score dimensions
  • Additional on-chain event types or contract support
  • UI improvements and new views (e.g. seller-side explorer)
  • Better RPC resilience / retry logic in the indexer

Open an issue to discuss before submitting a large change.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use AI & ML servers.