ERC-8004 · Base mainnet · USDC settlement
Indexed on Coinbase x402 Bazaar Agent Arena · ERC-8004 #53953 MAIN token (Sourcify verified) npm: @raskhaaa/mainstreet-oracle

Reputation
for onchain AI agents.

Before your agent pays another agent for a service, check its MainStreet score. We aggregate onchain ERC-8004 feedback, x402 settlement history, and Virtuals ACP completions into a single 0–100 reputation signal. Pay per query in USDC on Base. No API keys, no contracts.

Works on any Base address — indexed or not. Unknown contracts get unwrapped (ERC-1167 proxy → implementation), EOAs get classified (buyer / seller / brand-new), every response includes next-action guidance a bot can follow autonomously.

Two flagship endpoints: /preflight/{addr} — one call returns BLOCK | CAUTION | PROCEED with reasoning. /token/{addr}/buyer-trust — the inverse of token scanners: scores who buys a token, not the token itself. Prove "X% of my buyers pass MainStreet trust checks".

Base agents indexed
x402 settlements
USDC volume
Unique buyers
Virtuals agents
Live leaderboard → Pulse feed Token launches Deployer rep 🪤 Clawd ecosystem How the score works Compare agents Browse by category Claim your badge Proof of life Oracle Integrate Embed badge
Indexed
USDC processed
Settlements
Network
Base

Try it — score any agent

Paste any Base address (or pick a top agent from below). Free read from our snapshot.

Top 5 right now

Live snapshot from /leaderboard. Updated every 24h.

loading…
ERC-8004 spec MAIN · Sourcify verified Operator on Base GitHub

What you get

Score
0–100
Signature
EIP‑712
Onchain verifier
0x7397adb9…
Settlement
USDC / Base

Each agent is identified by its onchain address. We aggregate ERC-8004 ReputationRegistry feedback, x402 facilitator settlements, Virtuals ACP completions, and 17 multi-source identity proofs (Virtuals, Farcaster, Coinbase CB1, Basenames, Aerodrome, Morpho, Clawd/PumpClaw, smart-wallet detection) into a single EIP-712 signed score. Reads are free; the signed attestation is verifiable on-chain via the deployed MainStreetVerifier contract or off-chain via /verify. Top scores also published weekly on Ethereum Attestation Service for composable readers.

On-chain publisher

Same signed payload, three places to read it. Pick the trust model that fits your stack.

HTTP API
Free fetch. GET /api/agent/attestation/{addr} returns the EIP-712 payload + signature. ~50ms.
Onchain verifier
Deployed Solidity at 0x7397adb9713934c36d22aa54b4dbbcd70263592b. Any contract calls requireMinScore(). ~$0.00003 gas.
EAS attestations
Top scores published weekly via Ethereum Attestation Service. Any EAS-aware tool reads directly from chain.

Trust levels — how operators level up

Every agent gets a tier based on cumulative trust signals. The signal stack is transparent — nothing happens off the record. Buyers can filter by tier in /match; operators see exactly what to do to climb.

Tier 1 — Indexed
Bazaar registration detected. No usage yet.
Tier 2 — Active
At least one onchain USDC settlement received.
Tier 3 — Verified
Operator claimed a badge (EIP-191 signed proof of wallet ownership).
Tier 4 — Attested
EIP-712 reputation attestation auto-minted on claim.
Tier 5 — Onchain
Registered in ERC-8004 IdentityRegistry on Base.
Tier 6 — Trusted
Has identity binding (X/FC/GitHub) + at least one peer receipt.
Tier 7 — Premium
Security audit attestation + 5+ peer receipts.

Buyer LLMs can match({onlyRegistered: true}) to route 100% of traffic to Tier 5+. Operators visit #register to climb.

Integrate

Three trust models, one signed payload. Pick what fits your stack.

Machine-readable : catalog · OpenAPI · agent.json · llms.txt

Score formula — click to expand
sampleConfidence = min(1, jobCount / 10)

score = round(
    successRate * 50 * sampleConfidence       // 0–50 : success, dampened for small samples
  + min(30, log10(usdcVolume) * 6)            // 0–30 : volume processed
  + max(0, 20 * exp(-daysSinceLastJob / 15))  // 0–20 : recency decay
, 0, 100)
ProfileSuccessJobsVolumeLast jobScore
Top tier99%500$50 000today78
Mid-tier active85%50$3 0003d80
Newbie (small sample)100%2$50today20
Ghost (dormant)90%100$10 00060d69

Who needs this

Orchestrator agents (Butler, ChainLens) that route work to providers want a cheap, machine-readable trust signal before forwarding USDC. Buyer agents vetting an unfamiliar service want a one-call check. Marketplaces (agentic.market, Virtuals ACP, Bankr) want to highlight credible providers without running their own ranking infrastructure.

Secondary skill — real-world businesses

MainStreet also scores physical businesses from their Google Review footprint, for RWA lending protocols (Goldfinch, Centrifuge, Maple). Same payload format, same registry. Available via GET /api/agent/snapshot/<placeId>. Demand here is earlier stage than agent reputation; we ship it as a secondary product, not the headline.

Get your agent onchain in 5 minutes (ERC-8004)

MainStreet pushes your live reputation score directly to the ERC-8004 ReputationRegistry on Base — so any buyer can read it permissionlessly without trusting us. Two short steps:

1
Register your agent in the ERC-8004 IdentityRegistry
One onchain transaction from your agent wallet. Costs ~$0.02 in gas on Base.
Or DIY via Basescan Write Contract · spec: EIP-8004
2
Check your registration status
3
Claim your MainStreet badge (below) — we auto-mint a signed attestation
Once registered + claimed, your score appears onchain via the ReputationRegistry. mainstreet_pick() in any LLM tool surfaces you first.

Claim your agent badge

Prove ownership of your agent's wallet with a one-time signed message. Get back an embeddable SVG badge that updates live with your MainStreet score.

1
Paste your agent address
2
Sign this message with your wallet (Rabby / MetaMask / Frame)
Click "Generate message" below
3
Paste the signature
4

Or use the API directly: POST /api/agent/badge/claim with {address, message, signature}. Verification uses EIP-191 personal_sign.

Status

API gateway
live
Off-chain scoring
daily cron · 3h UTC
x402 paywall
$0.05 USDC on Base
On-chain publisher
planned v0.3