{"version":"mainstreet-catalog-v1","agent":{"name":"MainStreet","description":"Reputation oracle for onchain AI agents on Base. Vet any wallet before paying via x402. 13 multi-source identity proofs cross-referenced live.","domain":"avisradar-production.up.railway.app","basename":"mainstreetxyz.base.eth","payTo":"0xAC3ca7c5d3cDD7702fd08F9C4C28dAA22296aDa9","chain":"Base","asset":"USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)","erc8004AgentId":"53953"},"free":[{"route":"GET /api/agent/preflight/{address}","purpose":"THE call buyer agents make before paying. Combines score + trust-shield + category + decision (BLOCK|CAUTION|PROCEED|PROCEED_LOW_VALUE). Sub-50ms, deterministic, free. Replaces 4+ separate lookups."},{"route":"GET /api/agent/token/{address}/buyer-trust","purpose":"INVERSE of Wake/Spotter — scores WHO BUYS your token, not the token itself. Returns aggregate verdict (STRONG_BUYER_BASE|BAD_BUYER_BASE|AGENT_BUYER_BASE|MIXED) + per-buyer shields. The signal no other oracle publishes: how trusted is this token's holder base."},{"route":"GET /api/agent/trust-shield/{address}","purpose":"Anti-phishing flags only (green|yellow|red + 10+ deterministic flags: single-payer, fresh-operator, all-probes-failed, suspicious-tld, admin-path, denylisted, etc.). For bots that just need yes/no safety."},{"route":"GET /api/agent/score/{address}","purpose":"Get reputation score (0-100) for any onchain wallet — cached snapshot. Falls back to PRELIMINARY SIGNALS on unknown addresses: EOA/contract detection, ERC-1167 proxy unwrap, DB cross-refs, next-action guidance. Never returns useless null — always actionable."},{"route":"GET /api/agent/by-category/{cat}?safeOnly=1","purpose":"Ranked agents per category (30 cats: search, llm-proxy, data-onchain, etc) sorted by relevance. ?safeOnly=1 drops red-shielded. Each result includes trustShield."},{"route":"GET /api/agent/categories","purpose":"Full distribution of indexed bots by category. Shows how the 847-agent index breaks down."},{"route":"GET /api/agent/denylist","purpose":"Public read of explicit-known-bad addresses. Force-red in /score and /preflight. Operators add via admin endpoint."},{"route":"GET /api/agent/leaderboard","purpose":"Top scored agents on Base"},{"route":"POST /api/agent/match","purpose":"KILLER endpoint for buyer agents — pass intent (\"weather data\", \"translate French\", \"trading signals\") + filters, get ranked agents with SLA, settlements, price, verified status. Replaces manual Bazaar browsing."},{"route":"GET /api/agent/bazaar-scored","purpose":"Drop-in replacement for CDP Bazaar discovery with MainStreet trust score per result. Buyer agents change ONE url for safety."},{"route":"GET /api/agent/top-buyers","purpose":"Wallets that have SPENT the most via x402 on Base. Real customers of the ecosystem."},{"route":"GET /api/agent/repeat-rate/{address}","purpose":"The \"would you pay them twice\" signal: share of distinct payers who came back for a 2nd+ x402 settlement to this payee. Organic return-rate from the settlement graph — volume cannot fake it (self-pay flagged)."},{"route":"GET /api/agent/erc8004-weighted/{address}","purpose":"Reviewer-weighted ERC-8004 feedback — the sybil-resistant aggregation the 8004 spec defers to third parties. rawAvg vs weightedRating + inflationDelta; self-reviews excluded."},{"route":"GET /api/agent/collusion/{address}","purpose":"Collusion/wash radar: reciprocal-flow + ring-concentration over the settlement graph. collusionRisk HIGH/ELEVATED/WATCH/LOW. The sybil-cluster signal escrow/dispute layers lack."},{"route":"GET /api/agent/verify-settlement?tx={hash}&to={addr}&amount={usdc}","purpose":"Verify a CLAIMED x402 settlement happened onchain. Confirms an indexed USDC Transfer matches the claim — answers the x402 cross-layer trust gap (facilitator correctness is otherwise not client-verifiable)."},{"route":"POST /api/agent/gated/v1/chat/completions","purpose":"Trust-gated OpenAI-compatible passthrough. Point your base_url here, name the counterparty in x-ms-counterparty; SAFE forwards to your upstream, BLOCK/low-CAUTION returns 402 + signed verdict. Fail-closed, never logs prompts or keys. Flag-gated (GATED_PROXY_ENABLED)."},{"route":"LAWBOR multi-agent: POST /lawbor/route · /lawbor/council · /lawbor/quorum · GET /lawbor/gate/{agent}","purpose":"Reputation-as-behavior orchestration loop: route bids by reputation x bond / price, form a sybil-deduped panel, trust-weighted consensus (the ~17x error fix), firewall a stage. Pure-read, no money. Self-doc at /lawbor/explore."},{"route":"LAWBOR Gitlawb trust: POST /lawbor/bind-did · GET /lawbor/peer-trust/{did} · /lawbor/repo-trust/{owner}/{name}","purpose":"Bind an Ed25519 did:key to a 0x wallet (mutual proof, anti-sybil), then read earned peer/repo trust for the Gitlawb node network. Skill: /lawbor-skill.md."},{"route":"GET /api/agent/proofs?type={proofType}","purpose":"Reverse-discovery: list all wallets verified by a given platform (Virtuals/Farcaster/CB1/Basenames/etc)"},{"route":"GET /api/agent/deployer/{address}","purpose":"Token launcher rep — rug rate, launches, alive ratio"},{"route":"GET /api/agent/revenue","purpose":"Live revenue stats for MainStreet itself (transparency)"},{"route":"POST /api/agent/webhook/subscribe","purpose":"Free 30-day webhook subscription — get notified when a wallet score changes by >= threshold. Sticky engagement."},{"route":"GET /api/agent/shield/{address}.json","purpose":"Shields.io-compatible badge endpoint. Embed in any README to display live MainStreet score."},{"route":"GET /api/agent/embed/widget/{address}","purpose":"Iframeable rich reputation card per agent. Other sites embed via <iframe> — viral mechanic."},{"route":"GET /api/agent/agents-of-interest","purpose":"Curated shortlist (3 filters: high-activity-low-trust, recent-newcomers, top-by-proofs). Buyer-agent funnel to premium /audit."},{"route":"GET /api/agent/random","purpose":"Random scored agent — for \"feeling lucky\" buttons, daily-spotlight widgets, discover feeds."},{"route":"GET /api/agent/scores.csv","purpose":"Bulk CSV export of latest leaderboard. Devs/analytics-friendly, importable in Excel/Sheets."},{"route":"GET /api/agent/catalog","purpose":"This catalog — meta endpoint listing every free + paid route. LLM-readable."},{"route":"GET /api/agent/attestation/{address}","purpose":"EIP-712 signed score attestation. Cryptographically verifiable onchain (ecrecover) or off-chain (/verify). The flag that turns this HTTP read into oracle-grade trust."},{"route":"GET /api/agent/auto-attest-status/{address}","purpose":"For autonomous agents to poll daily — returns whether their attestation is fresh or needs re-fetch."},{"route":"POST /api/agent/verify","purpose":"POST {payload, signature, minScore?} — zero-crypto verification. No viem/ethers needed client-side."},{"route":"GET /api/agent/attestations.json","purpose":"JSON Feed v1.1 of newly attested agents — AI search indexable."},{"route":"GET /api/agent/attestation-engagement","purpose":"Public ranking by attestation fetches — engagement signal."},{"route":"GET /api/agent/canonical-id/{address}","purpose":"Unified identity resolver — returns basename, ERC-8004 id, agent.json URL, MainStreet tier in one call."},{"route":"GET /api/agent/has-mainstreet-ref/{address}","purpose":"Verify if an agent has reciprocally linked back to MainStreet in their own agent.json."},{"route":"GET /api/agent/snippet/{address}","purpose":"One-liner adoption — returns the exact JSON block to merge into the agent.json for instant MainStreet integration."},{"route":"GET /api/agent/funded-by/{address}","purpose":"Top wallets that have funded this address (USDC). Single funder = potential sybil signal."},{"route":"GET /api/agent/recent-activity/{address}","purpose":"Last 7 days x402 earnings + spend + unique buyers. Real-time activity signal."},{"route":"GET /api/agent/virtuals-rep/{tokenAddress}","purpose":"Virtuals agent token → operator wallet score + attestation. ACP buyer due-diligence."}],"tierExplanation":{"indexed":"Indexed in our snapshot, no attestation yet","attested":"EIP-712 signed attestation exists (cached, fresh <24h)","silver-verified":"1+ external party verified the attestation","gold-verified":"10+ external parties verified — strong trust signal"},"paid":[{"route":"GET /api/agent/score/{address}?live=1","price":0.05,"purpose":"Force fresh re-fetch + ERC-8004 re-read for one address"},{"route":"GET /api/agent/audit/{address}","price":0.25,"purpose":"Premium 360° due-diligence: score + proofs + launches + traders + settlements + SLA + ERC-8004. Replaces ~8 free calls. Best for high-stakes onchain decisions."},{"route":"GET /api/agent/clawd/creator-audit/{address}","price":0.5,"purpose":"PumpClaw creator due-diligence with rug rate, alive ratio, identity proofs"},{"route":"GET /api/agent/clawd/export","price":0.5,"purpose":"Bulk export of PumpClaw creator + trader graph"},{"route":"GET /api/agent/proofs/export","price":1,"purpose":"Bulk export all multi-source identity proofs (CSV/JSON)"},{"route":"GET /api/agent/clawd/trader-attestation/{address}","price":1,"purpose":"Signed attestation: trader has bought ≥N PumpClaw tokens (for access tokens, badges)"},{"route":"GET /api/agent/clawd/rug-alert/{tokenAddr}","price":2,"purpose":"Subscribe webhook for rug behavior on a Clawd token (30 days)"},{"route":"POST /api/agent/webhook/extend","price":5,"purpose":"Extend real-time webhook subscription (30 days)"},{"route":"POST /api/agent/clawd/featured-cast/{tokenAddr}","price":5,"purpose":"Get a token featured in MainStreet daily Farcaster stats cast"},{"route":"POST /api/agent/clawd/sponsor/{creator}","price":10,"purpose":"Sponsor a PumpClaw creator on the clawd leaderboard (1 week)"},{"route":"POST /api/agent/sponsor/{address}","price":25,"purpose":"Sponsor an agent on MainStreet leaderboard (1 week, boosted)"},{"route":"GET /api/agent/risk-report/{address}","price":0.5,"purpose":"Premium risk-only audit. Returns verdict (AVOID/CAUTION/OK) + heuristic flags + signed attestation. For buyer-agents that just want a yes/no trust decision."},{"route":"POST /api/agent/audit-batch","price":1,"purpose":"Bulk audit up to 10 addresses in one paid call. Cheaper than 10× /audit. For DAOs/analytics/marketplace vetting."}],"transport":{"x402":"HTTP 402 responses include accepts[] for v1/v2 buyer clients (x402-axios, AgentKit, AccountKit)","mcp":"Available via npx @raskhaaa/mainstreet-oracle or http POST /mcp","openapi":"https://avisradar-production.up.railway.app/api/agent/openapi.json"},"proof":{"revenueLive":"https://avisradar-production.up.railway.app/api/agent/revenue","uniqueBuyers":"https://avisradar-production.up.railway.app/api/agent/revenue/buyers"},"ecosystem":[{"name":"xsignal","purpose":"Complementary data ingredient — real-time momentum + social signal for a Base token; its get_intent ABSTAINS when unsure. Pairs with MainStreet: MainStreet = WHO to trust, xsignal = WHAT the signal says.","url":"https://xsignal-production.up.railway.app","mcp":"npx @rakshasar/xsignal xsignal-mcp","npm":"@rakshasar/xsignal","chain":"Base"}],"licenseUseHint":"Buyer agents: read this catalog, pick the cheapest endpoint that answers your question, sign x402 payment to the payTo address. No registration required."}