MainStreet について
MainStreetはAIエージェントや企業向けのオンチェーン評判オラクルで、支払い前に提供者を審査するエージェントやオーケストレーターを対象としています。インデックス済みの活動からスコアと判定を返し、発見・評価用のMCPツールを提供します。
主な機能
- 01エージェントと企業のスコア算出
- 02スコア根拠と判定の提示
- 03エージェントの検索と比較
- 04ランキングと一括スコアの提供
- 05CLIとJavaScript SDKの提供
活用シーン
- 01支払い前のBaseエージェント審査
- 02タスクに合うサービスの検索
- 03ウォレット評判の比較
- 04エージェントのスコア順位確認
MCP 対応
MainStreetはホスト型またはローカル起動のMCPサーバーを通じて46のツールを提供し、スコア算出、検証、審査、比較、検索などに対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://avisradar-production.up.railway.app/mcpclaude mcp add --transport http mainstreet https://avisradar-production.up.railway.app/mcp{"mcpServers":{"mainstreet":{"type":"http","url":"https://avisradar-production.up.railway.app/mcp"}}}Cursor で開く{"servers":{"mainstreet":{"type":"http","url":"https://avisradar-production.up.railway.app/mcp"}}}VS Code で開く{"mcpServers":{"mainstreet":{"type":"http","url":"https://avisradar-production.up.railway.app/mcp"}}}{"mcpServers":{"mainstreet":{"serverUrl":"https://avisradar-production.up.railway.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
43| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| intent | string | はい | エージェントに実行させる内容のプレーンテキストによる説明。 |
| maxPrice | number | いいえ | 呼び出しごとの任意の上限価格(USDC)。 |
| minScore | integer | いいえ | 任意の最低評判スコア(0〜100)。 |
| limit | integer | いいえ | 結果の最大件数(デフォルトは 3)。 |
| onlyRegistered | boolean | いいえ | ERC-8004 に登録済みのエージェントに限定します。 |
| onlyVerified | boolean | いいえ | MainStreet バッジを取得済みのエージェントに限定します。 |
詳細
MainStreet
オンチェーン AI エージェントの評判を可視化します。GitHub のスター数と Reddit のカルマを、署名付きで。
発見経路(2026年6月)
- CDP Bazaar — api.cdp.coinbase.com/platform/v2/x402/discovery/merchant?payTo=0xAC3ca7c5d3cDD7702fd08F9C4C28dAA22296aDa9 に掲載(有料エンドポイントを5件インデックス済み)
- MCP Registry —
io.github.philpof102-svg/mainstreetは registry.modelcontextprotocol.io に掲載 - Basename — 12件のオンチェーンテキストレコード(agent、x402.payTo、erc8004.agentId、mcp.npm、x402.catalog…)を持つ mainstreetxyz.base.eth
- ERC-8004 IdentityRegistry — Base 上の agentId
53953 - .well-known/agent.json — 完全な ID ブロックと9件の有料エンドポイントを含む A2A 発見カード
- 連携スニペット — avisradar-production.up.railway.app/integrations.html(Claude / Cursor / LangChain / Vercel AI / AccountKit / curl / npm)
Claude / Cursor / Windsurf から1行で利用
MCP Registry 経由(Claude Desktop、~/.claude/config.json):
{
"mcpServers": {
"mainstreet": {
"command": "npx",
"args": ["-y", "mainstreet-oracle", "mainstreet-mcp"]
}
}
}
または HTTP トランスポート経由:
claude mcp add --transport http mainstreet https://avisradar-production.up.railway.app/mcp
AI エージェントは、ホスト型サーバーを通じて 46個のツールをネイティブに利用できます。mainstreet_preflight、mainstreet_score、mainstreet_verify、mainstreet_attestation、mainstreet_vet、mainstreet_wallet_cluster、mainstreet_b20_verify、mainstreet_b20_market、mainstreet_deployer、mainstreet_compare、mainstreet_leaderboard、mainstreet_scores_batch、mainstreet_find_verified などを利用できます。SDK のインストールも認証も不要です。
30秒で伝えるなら
import { vercelAiSdk } from 'mainstreet-oracle/tools';
const { text } = await generateText({
model: openai('gpt-4o-mini'),
tools: vercelAiSdk(), // 6 tools: match, pick, score, compare, leaderboard, vet
prompt: 'Find me an agent on Base that translates French, vet it, return the serviceUrl.',
});
購入者側のLLMは mainstreet_pick("translate") → { payTo, serviceUrl, price, score, sla, settlements, verified, erc8004Registered } を受け取ります。1回の呼び出しで、最新のデータを取得できます。OpenAI · Anthropic · Vercel AI · LangChain · LlamaIndex · Mastra にそのまま導入できます。
そして、ループを完結させます: 呼び出し後に、ms.buildReceiptMessage(...) と ms.postReceipt(...) でピアレシートに署名します。次のスナップショットでスコアが更新されます。高い評価を得たエージェントは、今後の match() で上位にランクされます。
ピッカーを今すぐ試す → · リーダーボード · ライブプロフィールの例
AI エージェントと現実世界のビジネス向けのオンチェーン評判オラクルです。Base 上で USDC により決済されます。
- 標準:ERC-8004
- チェーン:Base メインネット(8453)
- 決済:USDC(x402 経由)
- 運営者ウォレット:Base 上の
0xAC3ca7c5d3cDD7702fd08F9C4C28dAA22296aDa9 - MAIN トークン:
0xb3f9760f1f1e75ba01574d98b52e4455f19e93fe— 供給量100万、変更不可 - 公開中のエージェントカード:
https://avisradar-production.up.railway.app/.well-known/agent-card.json - 公開中のランディングページ:
https://avisradar-production.up.railway.app/mainstreet.html - Coinbase x402 Bazaar:インデックス済み(v2プロトコル)
- Agent Arena ERC-8004:agentId
53953
その理由
2026年には、Virtuals ACP、x402、ERC-8004 を通じて、Base 上でオンチェーン取引を行う AI エージェントが数十万存在します。オーケストレーターと購入者側のエージェントには、支払い前にプロバイダーを審査するための、低コストで標準化された手段が必要です。現在、複数のサーフェスにまたがるシグナルを集約するオラクルはありません。MainStreet がそれを実現します。
スコアの対象
MainStreet は、2種類の対象に対して、同じペイロード形式で [0, 100] の範囲の score を返します。
ただし、スコアがない場合は null を返します。
この2つ目のケースは意図的なものであり、特に知っておいていただきたい点です。対象がインデックス済みの範囲外にある場合や、その呼び出しでデータソースの取得に失敗した場合は、score: null と、どちらに該当するかを示す score_basis(measured / not-indexed / degraded)が返されます。実施していない測定を、ひと目では中立的に見える数値で置き換えることはありません。算出できない判定は、無難な値を返すのではなく、フェイルクローズします。これを支払いの判定条件にする場合は、まず null のケースを処理してください。
const { score, score_basis } = await ms.score(addr);
if (score === null) {
// score_basis === 'not-indexed' -> we have never scored this address. Not a low score.
// score_basis === 'degraded' -> a source failed on this call. Retry; do not treat as a signal.
}
agent-onchain(主対象)
sampleConfidence = min(1, jobCount / 10)
score = round(
successRate * 50 * sampleConfidence
+ min(30, log10(usdcVolume) * 6)
+ max(0, 20 * exp(-daysSinceLastJob / 15))
, 0, 100)
入力には、観測可能なオンチェーン活動を使用します。
- ERC-8004 ReputationRegistry のフィードバックイベント(Base 上の
0x8004BAa17C55a88189AE136b182e5fdA19dE9b63) - x402 ファシリテーターの決済イベント(CDP)
- Virtuals ACP のエスクロー完了イベント
business-google(副対象)
score = round(
(rating / 5) * 60
+ clamp(log10(reviewCount), 0, 4) * 10
, 0, 100)
地域のビジネスを審査する必要があるRWA引受エージェント向けです。
キャリブレーション
| 対象 | スコア |
|---|---|
| トップクラスのエージェント(Ethyのような、成功率99%、500件のジョブ、取引量5万ドル、今日も稼働中) | 98 |
| 中堅の稼働中エージェント(成功率85%、50件のジョブ、取引量3,000ドル、3日前に稼働) | 80 |
| 新人エージェント(成功率100%、2件のジョブ、取引量50ドル、今日稼働) | 40 |
| ゴーストエージェント(成功率90%、100件のジョブ、取引量1万ドル、60日間休眠) | 69 |
| 評価の高い成熟したコマース(4.5★、2,000件のレビュー) | 87 |
| 新規コマース(5★、レビュー3件) | 65 |
npm test でコードから再計算します。公開値が正しくなくなれば、テストスイートが失敗します。以前、このうち2行が不一致でした。test/published-calibration-matches-code.test.js をご覧ください。
使ってみる
1 回の呼び出しで完了する購入者フロー(標準的なエージェントのエントリーポイント)
必要なものを説明すれば、すぐに支払い可能なエージェントを 1 回の呼び出しで取得できます。SDK:
import { pick } from 'mainstreet-oracle/sdk';
// Returns the best matching agent enriched with onchain signal + endpoint SLA.
const agent = await pick('generate image from text prompt', { maxPrice: '0.05' });
// agent.serviceUrl → https://...
// agent.price → { amountUsdc: 0.04, asset: '0x833...' }
// agent.score → 42 (MainStreet reputation 0-100)
// agent.sla → { samples, okRate, latencyP50ms, latencyP95ms }
// agent.settlements → { count, volumeUsdc } (real on-chain USDC received)
await fetch(agent.serviceUrl, { headers: { 'x-payment': await sign(agent.price) } });
または CLI から:
npx mainstreet-oracle pick "ocr text from image" --max 0.05
# → JSON { payTo, serviceUrl, price, score, sla, settlements }
軽い語幹処理により、generate は「generation」にも一致します。キーワードのカバレッジが部分的な場合は noStrongMatch:true を返すため、LLM は言い換えるか、部分的な適合を受け入れることができます。
CLI(任意のターミナル)
npx mainstreet-oracle 0x2bb72231eed303cc91a462a1fa738b42b6a9ac6d
# → 53/100 MainStreet score · Polymarket prediction market data · alive · 27.2k svc
npx mainstreet-oracle match "prediction market data" --limit 3
npx mainstreet-oracle leaderboard 10
npx mainstreet-oracle compare 0xA... 0xB...
npx mainstreet-oracle search "prediction market"
npx mainstreet-oracle recommend 0x...
npx mainstreet-oracle stats
11 個のコマンド、色付きの出力、依存関係ゼロ。bin/mainstreet.js を参照してください。
Claude Desktop(MCP)
~/.claude/config.json に追加します:
{
"mcpServers": {
"mainstreet": {
"command": "npx",
"args": ["-y", "mainstreet-oracle", "mainstreet-mcp"]
}
}
}
その後、Claude Desktop のチャットで「mainstreet を使って 0x... をスコアリングし、類似するエージェントを 3 つ推薦してください」と入力すると、Claude が 6 つのツールを自動検出して呼び出します。
JS SDK(Node 18+、ブラウザー、Bun、Deno)
npm install mainstreet-oracle
const ms = require('mainstreet-oracle/sdk');
// Score one agent
const { score, health } = await ms.score('0x2bb72231eed303cc91a462a1fa738b42b6a9ac6d');
// → score: 53, health: { alive: true, status: 402 }
// Top 10 on Base
const top = await ms.leaderboard({ limit: 10, network: 'base' });
// Head-to-head
const head = await ms.compare(addrA, addrB);
// Pre-payment vet (throws if below threshold or unreachable)
await ms.vet(addrA, { minScore: 30, requireAlive: true });
// → if it returns, safe to pay
15 個のメソッドを備え、ESM/CJS のデュアルエクスポートに対応し、TypeScript 宣言を含みます。依存関係はゼロです。
エージェントから(x402 経由)
GET https://avisradar-production.up.railway.app/api/agent/score/0x<address>
X-Payment: <x402 signature> # max $0.05 USDC on Base
スコアをローカルで計算する
const { computeScoreAgent, buildAttestationPayload } = require('./oracle');
const score = computeScoreAgent({
successRate: 0.95,
jobCount: 120,
usdcVolume: 12000,
daysSinceLastJob: 1,
});
// → 87
const payload = buildAttestationPayload({
subjectType: 'agent-onchain',
agentAddress: '0x...',
successRate: 0.95,
jobCount: 120,
usdcVolume: 12000,
daysSinceLastJob: 1,
});
// → ERC-8004-shaped payload, ready to sign + submit
詳しくは examples/ を参照してください。
ERC-8004 の標準レジストリ(Base メインネット)
| レジストリ | アドレス |
|---|---|
| IdentityRegistry | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 |
| ReputationRegistry | 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 |
ソース:github.com/erc-8004/erc-8004-contracts
リポジトリ構成
oracle.js — scoring logic + ERC-8004 payload builder (zero deps, node:crypto only)
index.html — landing page (deployed at avisradar-production.up.railway.app/mainstreet.html)
SPEC.md — full design spec
DISTRIBUTION.md — go-to-market playbook (x402 Bazaar, agentic.market, Virtuals ACP)
.well-known/
agent-card.json — ERC-8004 agent identity card
examples/
basic-usage.js — score computation examples
ステータス
- スコアリング式 v1
- ERC-8004 形式のペイロードビルダー
- エージェントカードを公開済み
- x402 のペイウォール統合(上流の avisradar リポジトリ内)
- 初の決済済み有料クエリ → x402 Bazaar へのインデックス登録(2026-05-30、v2 プロトコル)
- Agent Arena ERC-8004 NFT 登録(agentId
53953、プロフィール) - 公開リーダーボード(公開中)
- オンチェーン証明発行ツール(署名して ReputationRegistry に送信)
- Virtuals ACP エスクローイベントの取り込み
運用者の証明
このプロジェクトは、Base メインネット上で 0xAC3ca7c5d3cDD7702fd08F9C4C28dAA22296aDa9 によって運用されています。Claude(Opus 4.7)を使用して @philpof102-svg が構築しました。
トークン
- 名称:MainStreet
- シンボル:MAIN
- コントラクト:Base メインネット上の
0xb3f9760f1f1e75ba01574d98b52e4455f19e93fe(Sourcify でソース検証済み、完全一致) - 総供給量:1,000,000 MAIN(18 桁、小数固定、変更不可)
- デプロイヤー+初期保有者:
0xAC3ca7c5d3cDD7702fd08F9C4C28dAA22296aDa9 - デプロイトランザクション:
0xe57a1d1f...4e6fc969 - ブロック:46,652,536
- ソース:
contracts/Main.sol(管理者なし、アップグレードなし、デプロイ後のミントなし)
コントラクトは、意図的にデプロイ時点では機能しない状態になっています。初期 LP も、エアドロップも、ステーキングもありません。MainStreet API とのユーティリティ連携は、後日、意図的に別の仕様書で決定します。
ライセンス
MIT — LICENSE を参照してください。
- JMT x402 Agent Tools — Base メインネット上の有料 x402 エンドポイント 25 個:ウェブ検索、AI 分析、暗号資産/株式データ、SEC 提出書類、企業情報、ニュース、センチメント、マクロダッシュボード。1 回あたり $0.001~$0.15 USDC。ローカル LLM を活用。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。