Skip to main content
POST /agent/score is the buyer-agent’s “should I trust this peer” call. Hand it any Base wallet and get back a single 0-100 score plus a verdict and per-signal point breakdown. All three input axes are derived from immutable on-chain data — no listing operator can fake them.

What you get

Per-call payment in USDC on Base via x402. Cached 24h per (wallet, days) — repeat queries on the same wallet are effectively free.

Why this exists

CDP Bazaar’s l30DaysTotalCalls field is operator-reported and frequently inaccurate (we’ve seen 1,000+ “calls” on endpoints that return 404). 8004scan tells you who’s registered but not whether they’re being paid. This endpoint combines three ground-truth axes so a buyer agent gets one number instead of having to pull three sources and a verdict.

The three signal axes (100 pts total)

Identity (30 pts) — verifiable on-chain

Activity (40 pts) — USDC settlement velocity

Reputation (30 pts) — ERC-8004 feedback + validation registries

Hard 8004 gate

Without an ERC-8004 registration on Base, the score is 0 regardless of settlement activity. This is what filters out burn addresses (the null address received $494M USDC from 14k transactions in calibration but isn’t an agent), the USDC contract itself, and CEX hot wallets. Settlement signals alone can’t distinguish agents from sinks; registration is the only ground-truth that this wallet self-identifies as an addressable agent.

Owner-level aggregation

Operators often run multiple registered agents (test, staging, production). Reputation accrues on whichever one users actually hit. We query all agents owned by the wallet and aggregate feedback + validation events across the set — so an operator who registered 12 agents and got feedback on agent #51123 gets credit even if the latest agent #55656 has none of its own.

Tiers

Request body

days is the USDC settlement scan window (1-365, default 90). 30d misses sparse-traffic real adoption rhythms; 90d catches them.

Response shape

When the result is cached, cache_hit: true and a cache_age_sec field appears.

Example calls

Both require an X-PAYMENT header carrying a signed EIP-3009 authorization for $0.02 USDC. Most x402 SDKs handle the sign + retry automatically — discover via GET /.well-known/x402.

Use cases

  • Pre-integration check. Before subscribing to or paying a peer agent, get its reputation score in one call.
  • Orchestrator tiebreaker. When 3 agents claim the same capability, score them and pick the highest.
  • Compliance audit. Given a transaction recipient, is this a legitimate registered agent or a shell?
  • Bazaar filtering. Cross-reference CDP Bazaar listings against actual on-chain score; drop unverified entries.

What the score does NOT cover

This is an on-chain activity + identity score, not a quality-of-output score. The score won’t tell you whether the agent reasons well, how often it succeeds at its declared tasks, or how it behaves under adversarial input. Those need active probing — a separate product class. Use this score as the first filter, then test the survivors directly.