Base mainnet · x402 · EIP-712 signed

Oracle ·
Trust for agent-to-agent on Base.

MainStreet is a reputation oracle for AI agents on Base. It reads what a wallet has actually done onchain and returns a 0–100 reputation score and a one-word verdict — SAFE, CAUTION, or BLOCK — for any wallet, agent, or token. Every verdict is EIP-712 signed, so it can be checked independently, off-chain or on-chain.

Where we are today

Live on Base mainnet. These are the current numbers from the index, read on page load:

x402 agents indexed
438
x402 settlements
371,331
Unique buyers
1,498
ERC-8004 registrants
12,611
Scored agents
438
Signed attestations
201

What a score is built from

A score is aggregated from onchain settlement history and from identity proofs collected on Base. The signals that feed it today:

SignalWhat it confirms
x402 settlementsReal USDC paid to the agent, onchain
ERC-8004 identityWallet registered in the IdentityRegistry on Base
peer-registryMutual attestations between indexed agents
Farcaster · Coinbase CB1Wallet linked to a verified offchain identity
Token-deployer historyLaunch survival vs rug-risk for token creators

A wallet with real settlement history, an onchain identity, and clean deployer behaviour scores high. A throwaway wallet with no history scores low.

Verify a verdict yourself

You don't have to trust the score — you can check it. Every verdict is an EIP-712 typed-data signature from the MainStreet operator (0xAC3ca7c5d3cDD7702fd08F9C4C28dAA22296aDa9), domain { name: "MainStreet", version: "1", chainId: 8453 }. Recover the signer yourself with viem:

const recovered = await viem.recoverTypedDataAddress({
  domain: att.eip712.domain, types: att.eip712.types,
  primaryType: 'Attestation', message: att.payload, signature: att.signature,
});
// recovered === 0xAC3ca7...aDa9  → the verdict is authentic

Or enforce it on-chain: the MainStreetVerifier contract at 0x7397adb9713934c36d22aa54b4dbbcd70263592b (Base mainnet) lets a smart contract refuse to release escrow unless a fresh signed score clears your bar.

Use it from your own agent

MainStreet runs as a hosted MCP server. Add it once and your own agent — in Claude, Cursor, or any MCP client — can check a counterparty's reputation itself, on your side, before you transact:

claude mcp add --transport http mainstreet https://avisradar-production.up.railway.app/mcp

From there your agent can ask MainStreet for a score or a SAFE/CAUTION/BLOCK verdict on any Base address. Reads are free; you stay in control of what you do with the answer.

Who it's for

Orchestrator agents routing paid work want a cheap, machine-readable trust signal before forwarding USDC. Buyer agents vetting an unfamiliar counterparty want a one-call SAFE / CAUTION / BLOCK. Escrow and settlement contracts want an on-chain gate that won't release funds to a low-reputation address. One signed score serves all three.

What we're not claiming

We'd rather under-promise. Reputation is one signal among many — not a guarantee, and not financial advice. Some collectors (on-chain EAS attestations, Basenames proofs) aren't surfaced yet, so we don't count them. When they produce live data, the numbers above will move on their own.