assay について
Assayはx402サービスに有料プローブを行い、決済、応答スキーマ、データの正確性、サービスの品質を評価します。機械決済APIを選ぶエージェントや開発者向けで、決済レシートとBitcoinにアンカーされた証拠に基づいてスコアを公開します。
主な機能
- 01定期的な有料サービスプローブ
- 02決済、スキーマ、データ品質の評価
- 03サービスのティアとランキング公開
- 04プローブ記録のBitcoinへのアンカー
- 05低評価サービスへのエージェント決済を防止
活用シーン
- 01支払い前のサービス確認
- 02ランキングによるx402サービス比較
- 03低評価サービスへのエージェント決済の防止
MCP 対応
リポジトリにはassay-oracle-mcpが含まれ、MCPクライアントにcheck_service、get_score、top_servicesを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y assay-oracle-mcpASSAY_URLAssay instance to query (default: https://assay.nominal-labs.com)ASSAY_WALLET_KEYシークレットOptional Base wallet private key; when set, get_score auto-purchases full reports ($0.005, hard-capped 0.01 USDC/call)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
4掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | x402 サービスのリソース URL |
詳細
Assay
x402エージェント経済圏の品質オラクル — x402は、マシンがステーブルコインによる少額決済でHTTP APIを利用できるようにするオープンプロトコルです。 Assayは実際にUSDCを支払ってマシン決済可能なサービスを調査し、実際に返された内容を検証して、その品質スコアを販売します。各評価はオンチェーンの支払いレシートと、Bitcoinにアンカーされた証拠の記録によって裏付けられています。
公開中: assay.nominal-labs.com · ランキング · エージェントガイド(SKILL.md)
問題
エージェントはx402を介して、他のマシンからAPIレスポンスを購入し始めています。これは、Base(CoinbaseのEthereum L2)上でUSDCにより決済されるHTTP 402の支払い要求で、アカウントも請求書も必要ありません。Coinbase x402 Bazaarのようなディスカバリーカタログでは、すでに数万ものサービスが掲載されています。しかし、ウォレットを持つエージェントには、実際にサービスを提供するのがどれかを知る方法がありません。支払いが決済されるか、レスポンスが提示されたスキーマと一致するか、データがそもそも正しいかが分からないのです。既存の信頼性指標が評価するのは、稼働状況、応答時間、支払いのテレメトリーといった稼働性です。サービスに支払い、実際に返される内容を検証するものはありません。実際に支払って確かめることだけが本当のテストです。だからこそAssayは、エージェントにその手間をかけさせないよう、独自の資金を使って定期的に検証します。
スコアの仕組み
Assayは1日に数回、時間をランダムに選び、実際に支払いを行って、厳選したx402サービスを検証します。各検証は、次の4つの独立した項目でスコアリングされます。
| 項目 | 重み | 評価する内容 |
|---|---|---|
| 決済 | 40% | 支払いが決済され、レスポンスが返ってきたか(トランザクションハッシュを記録) |
| スキーマ | 30% | レスポンスが、サービスの提示する出力スキーマと一致しているか |
| グラウンドトゥルース | 20% | データが独立した参照ソースと一致しているか |
| LLM判定 | 10% | レスポンスが、サービスの販売内容を実際に提供しているか |
重みは、サービスのデータがある項目について再正規化されます。サービスの総合スコア(0~100)は、直近30日間の検証結果に基づいて算出され、複数日にわたる20回以上の検証がある場合にのみ公開されます。証拠が不十分な状態でスコアが出ることはありません。ランクは、goldが85以上、okが60以上、それ以外はavoidです。
履歴を密かに書き換えられない理由
スコアの信頼性は、その根拠となる証拠の信頼性に左右されるため、検証データは追記専用で、公開アンカーされています。
- 検証データの各行(決済結果、レスポンスハッシュ、支払い額、トランザクションハッシュ)は日ごとのマークルツリーのリーフとなり、安全のための待機期間を経て、OpenTimestamps(OTS)を通じてそのルートがBitcoinにアンカーされます。
- 日ごとのマークルルートとOTS証明は、
/api/digestsで公開されています。 - 記録済みの履歴に影響するもの(マイグレーション、再アンカーなど)はすべて、docs/CORPUS-LOG.mdで公開記録されます。
蓄積されるデータが重要なのです。誰でもコードをコピーできますが、証拠の日付を遡らせることはできません。アンカーによって、各日の記録がいつ存在していたかが証明されます。
Assay の使用
HTTP — オラクル自体は、https://assay.nominal-labs.com にある x402 サービスです。
有料エンドポイントは HTTP 402 の支払いチャレンジを返し、任意の x402 クライアントが自動的に支払いを完了します。
| エンドポイント | 価格 | 返される内容 |
|---|---|---|
GET /score/{url-encoded service URL} | $0.005 USDC (Base) | 総合スコア、コンポーネント別内訳、推移、プローブ数 |
GET /tier/{url-encoded service URL} | 無料 | gold / ok / avoid / unrated の判定 |
GET /leaderboard | 無料 | スコアを算出した全サービスのランキング |
GET /api/digests | 無料 | 日次の Merkle ルートと OTS 証明 |
MCP サーバー(Model Context Protocol — AI アシスタントが外部ツールを呼び出す方法)— npm と公式 MCP レジストリで公開されている assay-oracle-mcp です。
Claude Code の場合:
claude mcp add assay -- npx -y assay-oracle-mcp
支出ガード — assay-x402-guard はエージェントによる支払いを伴う fetch をラップし、avoid と評価されたサービスへの送金が行われる前にエラーをスローします:
import { wrapFetchWithAssay } from "assay-x402-guard";
// payFetch = your x402-paying fetch (e.g. wrapFetchWithPayment from @x402/fetch)
const safeFetch = wrapFetchWithAssay(payFetch);
詳しくは、SUMMARY.md(概要と理由)および docs/specs/(設計)をご覧ください。
開発(任意の OS)
cp .env.example .envを実行し、値を設定します(すべての変数については例に記載されています)。PROBE_WALLET_KEY:新しく用意した専用ウォレット。Base メインネットで USDC を ≤ $50 保有してください(ETH は不要です。x402 の「exact」は EIP-3009 署名を使用してファシリテーター経由で決済されます)ANTHROPIC_API_KEY:LLM 判定役
npm install && npm testを実行します(テスト一式にネットワーク接続やウォレットは不要です)。npx tsx scripts/verify-env.mts— 事前チェックを実行します。設定に問題があると明確なエラーを出します。npm run dev— :3402 でサーバーを起動します(デフォルトでは localhost にバインド)。加えて、カタログの取り込み(6 時間ごと)、プローブの一括実行(4 時間ごとに :15 から開始し、ジッターあり)、日次ダイジェストのアンカリングも実行します。- プローブ対象のサービスを選定します:
npm run curate -- list- テンプレート JSON を作成し(docs/templates/ を参照)、
npm run curate -- add <serviceUrl> <template.json>を実行します。
- 運用ダッシュボード: http://127.0.0.1:3402/dashboard(一時停止/再開、プローブの即時実行、停止/復元)
支払い処理は意図的に厳格にしています。支払いごとの上限、実際に決済された金額を合計する日次予算、解析できない支払い要件に対するフェイルクローズのガードを備えており、すべて注入したフェイクを使って単体テスト済みです。
新規デプロイではコーパスが空の状態から始まる点に注意してください。スコアの精度は、基盤となるプローブ履歴に左右されます。
本番環境へのデプロイ
assay.nominal-labs.com の参照インスタンスの運用方法です(ご自身の環境に合わせて調整してください)。
main にコミットし、git bundle として VPS に転送してから、git reset --hard と systemctl restart assay で適用します(プロビジョニングと更新手順についてはdeploy/README.mdを参照してください)。data/assay.db の SQLite ファイルが製品そのものです。決して作り直さないでください。VPS では /etc/cron.daily/assay-backup により、毎日オンボックスのスナップショットが保持されます。
支払いを有効にするには、PAYMENTS_ENABLED=true と RECEIVE_WALLET_ADDRESS を設定し、
Coinbase Developer Platform (CDP) の API キー(CDP_API_KEY_ID/CDP_API_KEY_SECRET)を用意します。両方が設定されると、サーバーは Base メインネット用の CDP ファシリテーターを自動選択します。
構成
src/— システム全体:サーバーと API、プローバー、スコアリング、ダイジェスト、取り込み、ページmcp/—assay-oracle-mcp:MCP サーバー(check_service、get_score、top_services)middleware/—assay-x402-guard:エージェント向けの支出ガード wrapFetchWithAssaytests/— vitest。支払い処理のロジックは、注入したフェイクを使って単体テスト済みscripts/— 事前チェック、ウォレットのローテーション、スモークテスト。start-assay.*は以前の自宅 PC へのデプロイ時に使用していたレガシーランチャーで、systemd に置き換えられていますdeploy/— Caddyfile、systemd ユニット、プロビジョニング手順docs/— CORPUS-LOG.md(公開インテグリティログ)、仕様、テンプレート
ライセンス
MIT — npm パッケージ(mcp/ と
middleware/)を含むリポジトリ全体が対象です。コードは自由に再利用できますが、エビデンスコーパスとその Bitcoin にアンカーされた履歴は、新たにデプロイしてもコピーできません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。