DJD Agent Score について
DJD Agent Scoreは、Base上のAIエージェントウォレット向けに評判スコアとガバナンスAPIを提供します。支払い前や業務の受諾前に相手を評価するサービス提供者やエージェント開発者を対象とし、5つの軸で採点します。REST API、SDK、MCPサーバーから利用できます。
主な機能
- 01Baseウォレットの0~100評判スコア
- 025つの評価軸と信頼度
- 03有料x402ルートの評判判定
- 04エージェントウォレット登録とプロフィール
- 05履歴・不正・紛争関連のエンドポイント
活用シーン
- 01送金前のエージェントウォレット評価
- 02有料Honoルートでの支払者審査
- 03エージェントウォレットへの本人情報追加
- 04取引後の不正や紛争の調査
MCP 対応
Claude、Cursor、Windsurf、CodexなどのMCPクライアント向けにMCPサーバーを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
DJD Agent Score
資金が移動する前、移動中、移動後に、Base 上のエージェント間取引を統制します。
DJD Agent Score は、Base 上のエージェントウォレット向けの信頼・ガバナンスレイヤーです。現在、最も明確な導入方法はシンプルです。エージェントが資金を送金したり、有料の x402 リクエストに応じたりする前に、取引相手を審査します。
ライブ API · API ドキュメント · OpenAPI 仕様 · リーダーボード
まずはここから:x402 ルートを制御する
有料の Hono エンドポイントを運用している場合、まずはこちらの統合がおすすめです。
import { Hono } from 'hono'
import { agentScoreGate } from 'x402-agent-score'
const app = new Hono()
app.use(
'/premium/*',
agentScoreGate({
minScore: 60,
onUnknown: 'reject',
}),
)
app.post('/premium/search', async (c) => {
return c.json({ ok: true })
})
インストール:
npm i x402-agent-score
無料の照会を試す
登録、API キー、支払いなしで、任意のウォレットをスコアリングできます。無料プランでは、1 日あたり 10 回の基本照会を利用できます。
curl "https://djdagentscore.dev/v1/score/basic?wallet=0x3E4Ef1f774857C69E33ddDC471e110C7Ac7bB528"
戻り値:
{
"wallet": "0x3E4Ef1f774857C69E33ddDC471e110C7Ac7bB528",
"score": 39,
"tier": "Emerging",
"confidence": 0.16,
"recommendation": "insufficient_history",
"modelVersion": "2.5.0",
"lastUpdated": "2026-02-25T04:12:50.000Z",
"computedAt": "2026-02-25T04:12:50.000Z",
"dataSource": "cached",
"scoreFreshness": 0.85,
"freeTier": true,
"freeQueriesRemainingToday": 9
}
score は 0~100 です。confidence は、スコアの根拠となるオンチェーンデータの量を示します。dataSource は live、cached、unavailable のいずれかで、スコアが新たに計算されたのか、キャッシュから提供されたのか、オンチェーンデータを取得できなかったのかを示します。USDC の取引履歴が多く、本人確認済みのウォレットほど高いスコアになります。
ライブスコアバッジを自分の README に埋め込めます:

任意のウォレットのプロフィールページを表示:djdagentscore.dev/agent/{wallet}
できること
- 有料の x402 ルートが実行される前に、信頼性の低い支払者を拒否します。
- エージェントが USDC を送金したり、作業を割り当てたりする前に、ウォレットをスコアリングします。
- 自分のエージェントを登録し、そのウォレットに識別情報のメタデータと公開プロフィールを設定します。
- より詳細な履歴、整合性シグナル、評価、または強制更新が必要な場合は、有料エンドポイントを利用します。
- 評価、不正報告、紛争、DJD Forensics フィードを利用して、事後に問題を調査します。
まずは一つの切り口から始めるガバナンスレイヤー
DJD は、有料のエージェント間取引向けのガバナンスインフラとして開発されていますが、最初の目的はより限定的で、導入しやすいものです。有料ルートに到達する前に、不正なウォレットを阻止します。
x402 サービスプロバイダー — 支払者の評判に基づいて有料ルートを制御します。これは最も明確な課題であり、最も簡単に統合できます。
エージェント開発者 — エージェントが送金したり、リクエストを受け入れたり、有料のやり取りを開始したりする前に、ウォレットをスコアリングします。
ディレクトリとプロトコル — ウォレットプロフィール、バッジ、アクセス制御ポリシーに公開の信頼レイヤーを追加します。
エージェントとのやり取りの前、最中、後
- 資金が移動する前 — ウォレットをスコアリングし、x402 ルートを制御して、ウォレットに識別情報と認証情報があるかを確認します。
- 作業の実行中 — 稼働中の関係や有料エンドポイントに、モニタリング、Webhook アラート、ウォレットのメタデータを追加します。
- 問題が発生した後 — 評価、不正報告、紛争、フォレンジックのタイムラインを記録し、問題のあるやり取りを再利用可能なガバナンスデータにします。
ロードマップ:governance-roadmap.md
利用方法を選択
| 方法 | 用途 | インストール/ドキュメント |
|---|---|---|
| x402 middleware | 有料の Hono ルートを連携する際に最適です | npm: x402-agent-score · リファレンス例 |
| REST API | 送金前にウォレットをスコアリングする最速の方法です | API ドキュメント |
| TypeScript SDK | 型付きの JS/TS 連携に使用します | npm: djd-agent-score |
| MCP server | Claude、Cursor、Windsurf、Codex、または任意の MCP クライアントで使用します | npm: djd-agent-score-mcp |
エージェントを登録する
ウォレットのメタデータを公開するのは無料で、プロフィールとスコアにアイデンティティ情報が追加されます。
curl -X POST https://djdagentscore.dev/v1/agent/register \
-H 'Content-Type: application/json' \
-d '{
"wallet": "0xYourAgentWallet",
"name": "My Agent",
"description": "What your agent does",
"github_url": "https://github.com/you/your-agent",
"website_url": "https://your-agent.com"
}'
3 行で連携
JavaScript
// Free tier: 10 calls/day, no payment needed
const response = await fetch(
"https://djdagentscore.dev/v1/score/basic?wallet=" + agentWallet
);
const { score, tier, confidence } = await response.json();
// Gate interactions based on trust
if (score < 50 || confidence < 0.3) {
console.log("Wallet has insufficient reputation. Declining interaction.");
return;
}
// Proceed with transaction
Python
import requests
resp = requests.get(
"https://djdagentscore.dev/v1/score/basic",
params={"wallet": agent_wallet}
)
data = resp.json()
if data["score"] >= 75 and data["confidence"] >= 0.5:
# Trusted wallet, proceed
execute_transaction(agent_wallet)
else:
# Require additional verification
flag_for_review(agent_wallet)
curl(x402 を使用する有料エンドポイント)
# Full score breakdown for production checks
# x402-compatible clients attach the payment header automatically
curl "https://djdagentscore.dev/v1/score/full?wallet=0x…" \
-H "X-PAYMENT: <payment_proof>"
スコアリングの仕組み
モデル v2.5.0 — インテリジェントなスコアリング・フライホイール。母集団の統計情報に基づく適応型のディメンションしきい値。結果から学習したディメンションの重み。スコア推移の分析(速度、勢い、方向)。スコアの安定性を保つ信頼度重み付けの減衰。パーセンタイル順位。
すべてのウォレットは、Base 上での USDC トランザクション履歴に基づいて、重み付けされた 5 つのディメンションで評価されます。
| ディメンション | 基本の重み | 測定内容 |
|---|---|---|
| 支払いの信頼性 | 30% | Base 上のトランザクション履歴と一貫性 |
| 経済的実行可能性 | 25% | USDC のアクティビティから得られる財務健全性のシグナル |
| アイデンティティ | 20% | 検証可能なアイデンティティの指標(Basename、GitHub、登録、Insumer によるトークンゲーティング) |
| 行動 | 15% | トランザクションのタイミングパターンと異常検知 |
| 能力 | 10% | サービス提供の実績とエコシステムへの参加 |
ディメンションの重みは、結果との相関データに基づいて時間とともに適応します。実際のウォレットの行動をより的確に予測するディメンションほど、実効的な重みが高くなります。
スコアの階層: エリート(90 以上)· 信頼済み(75~89)· 確立済み(50~74)· 新興(25~49)· 未検証(0~24)。階層のしきい値は、結果のキャリブレーションデータに基づいて自動調整されます。
スコアリングエンジンは、EIP-3009 の AuthorizationUsed イベントを使用して、オンチェーンの x402 決済をインデックス化します。x402 でサービスの支払いを行うエージェントは、検証可能な支払い履歴を蓄積し、その履歴がスコアに直接反映されます。エージェントが x402 で取引するほど、そのレピュテーションはより有意義なものになります。
適応型スコアリング: v2.5 のフライホイールにより、時間とともにスコアがより賢くなります。母集団から導き出されたしきい値によって、エコシステム内でのウォレットの相対的な位置がディメンションスコアに反映されます。スコア推移の分析では、ウォレットのレピュテーションが向上しているか低下しているかに応じて、±5 ポイントの補正が適用されます。信頼度重み付けの減衰により、新しいデータが限られている場合に確立済みのスコアが大きく変動するのを防ぎます。
整合性レイヤー: Sybil 検知、不正操作の検知、不正報告によるペナルティが乗算的に適用されます。スコアは 1 時間キャッシュされ、アクティブなウォレットはバックグラウンドで更新されます。
API リファレンス
無料エンドポイント
| エンドポイント | メソッド | 説明 |
|---|---|---|
/v1/score/basic?wallet=0x… | GET | スコア、ティア、信頼度。1日10回まで無料です。 |
/v1/score/erc8004?wallet=0x… | GET | スコア、アイデンティティ、認証、公開ステータスを含む、ERC-8004 互換の評判ドキュメントです。 |
/v1/certification/readiness?wallet=0x… | GET | ウォレットが認証を申請できるかを確認し、申請を妨げる要因を把握して、支払い前に次のステップを確認できます。 |
/v1/certification/review | GET / POST | 認証レビューリクエストを送信するか、ウォレットの最新のレビューステータスを確認します。 |
/v1/certification/directory?limit=&tier=&search=&sort= | GET | スコアのコンテキスト、信頼性を示すリンク、検索・並べ替えフィルターを備えた、有効な認証の公開ディレクトリです。 |
/directory | GET | 認証済みエージェントをブラウザーで閲覧するための Trusted Endpoint Directory ページです。 |
/v1/agent/register | POST | ウォレットを登録します。アイデンティティボーナスが+10されます。 |
/v1/score/compute | POST | バックグラウンドでのスコア計算をキューに追加します。jobId をすぐに返します。 |
/v1/score/job/:jobId | GET | 非同期ジョブのステータスをポーリングします(pending → complete)。 |
/v1/leaderboard | GET | スコア順の上位ウォレットです。 |
/v1/certification/:wallet | GET | 認証ステータスを確認します。 |
/agent/{wallet} | GET | プロフィールページ(HTML)です。 |
/v1/badge/{wallet}.svg | GET | 埋め込み可能な SVG スコアバッジです。 |
/health | GET | サービスの健全性とインデクサーのステータスです。 |
有料エンドポイント(Base 上の x402 USDC)
| エンドポイント | メソッド | 価格 | 説明 |
|---|---|---|---|
/v1/score/full?wallet=0x… | GET | $0.10 | 次元ごとのスコア、生データ、履歴、不正フラグ |
/v1/score/evaluator?wallet=0x… | GET | $0.35 | スコア、認証、リスク、市場シグナルを使用する ERC-8183 評価者プロトタイプ |
/v1/score/refresh?wallet=0x… | GET | $0.25 | ライブで再計算します(1時間のキャッシュを回避)。 |
/v1/score/history?wallet=0x… | GET | $0.15 | トレンド分析付きの過去のスコアデータです。 |
/v1/report | POST | $0.02 | ウォレットに対する不正行為・不適切行為の報告を送信します。 |
/v1/data/fraud/blacklist?wallet=0x… | GET | $0.05 | ウォレットが不正ブラックリストに登録されているか確認します。 |
/v1/certification/apply | POST | $99.00 | 認定エージェントバッジ(年次)を申請します。 |
API キーによるアクセス
リクエストごとの x402 支払いなしで大量に利用する場合は、API キーを利用できます。Authorization: Bearer djd_live_… で認証すると、個別の支払いは不要になり、リクエストは月間クォータに対してカウントされます。
有効な支払い証明または API キーがない場合、有料エンドポイントは 402 Payment Required を返します。証明は X-PAYMENT ヘッダーに含めるか、API キーを使用してください。x402 互換クライアントであれば、支払いは自動的に処理されます。x402 による支払いの仕組み →
パイロット導入の方法が必要ですか?
DJD Agent Score を本番環境で使用する予定があり、スコアのしきい値や展開ポリシーの選定についてサポートが必要な場合は、[email protected] までご連絡ください。
不正行為を報告する
不適切な行為を行ったウォレットを報告できます。スパム防止のため、1件あたり$0.02です。検証済みの報告にはスコアのペナルティが適用されます。
curl -X POST https://djdagentscore.dev/v1/report \
-H 'Content-Type: application/json' \
-H 'X-PAYMENT: <payment_proof>' \
-d '{
"target": "0xSuspiciousWallet",
"reporter": "0xYourWallet",
"reason": "payment_fraud",
"details": "Agent accepted payment but never delivered the service."
}'
理由:failed_delivery · payment_fraud · impersonation · malicious_behavior · other
ローカル開発
git clone https://github.com/jacobsd32-cpu/djdagentscore
cd djdagentscore
npm install
npm run dev
Node.js v22 が必要です。npm run dev は従来の統合ランタイムを維持します。http://localhost:3000 で起動します。
分割されたランタイムを個別に実行するには:
npm run dev:api
npm run dev:worker
ビルド後は、本番環境向けのエントリーポイントも利用できます:
npm run start:api
npm run start:worker
ランタイムの構成
src/app.tsでは、ルート、ミドルウェア、課金、x402 を含む共有 Hono アプリを構築します。src/api.tsでは、HTTP API のみを実行します。src/worker.tsでは、インデクサー、リフレッシャー、異常検知、Webhook 配信、公開ジョブを実行します。src/index.tsはレガシーな統合ランタイムであり、引き続きデフォルトのnpm run dev/npm startの実行経路です。
推奨されるデプロイ構成:
- API プロセス:
npm run start:api - ワーカープロセス:
npm run start:worker - 統合ランタイム:ローカル開発、または後方互換性のために単一プロセスでデプロイする場合のみ
現在の本番環境に関する注意:
- ストレージを変更するまでは、Fly のデプロイを統合ランタイムのままにしてください。
- このアプリは Fly ボリューム上の SQLite を引き続き使用しており、このストレージモデルでは、同じデータベースファイルを共有する API とワーカーのマシンを安全に分割できません。
デプロイのスモークチェック
デプロイワークフローでは、/health が稼働していることと、応答したアプリが想定されるランタイムモードおよびリリース SHA を報告することの両方を検証するようになりました。
管理者向けの /health では、ワーカージョブの有効化状況に加え、GitHub 検証および ERC-8004 公開の準備状況に関する連携警告も確認できます。
GitHub Actions では、本番環境のスモーク検証に DJD_ADMIN_KEY またはレガシーの ADMIN_KEY シークレットを使用できます。プレビュー環境では、まず FLY_PREVIEW_ADMIN_KEY を使用し、未設定の場合は DJD_ADMIN_KEY / ADMIN_KEY にフォールバックします。
DJD_HEALTHCHECK_URL=https://djdagentscore.dev/health \
DJD_EXPECT_RUNTIME_MODE=combined \
DJD_EXPECT_RELEASE_SHA=<git_sha> \
DJD_ADMIN_KEY=<admin_key> \
npm run smoke:deploy
プレビューデプロイの手順
codex/runtime-split-entrypoints から、.github/workflows/fly-preview.yml を通じて本番以外の Fly プレビューアプリにデプロイできるようになりました。
- 必須の GitHub 変数:
FLY_PREVIEW_APP - 任意の GitHub 変数:
FLY_PREVIEW_PUBLIC_BASE_URL - 任意の GitHub シークレット:
FLY_PREVIEW_API_TOKEN(既存のFLY_API_TOKENが本番アプリのみにスコープされている場合に使用します) - 任意の GitHub シークレット:
FLY_PREVIEW_ADMIN_KEY(DJD_ADMIN_KEY、次にADMIN_KEYにフォールバックします)
FLY_PREVIEW_PUBLIC_BASE_URL が設定されていない場合、ワークフローは https://<FLY_PREVIEW_APP>.fly.dev をデフォルトとして使用します。
プレビュー用 Fly 設定は、fly.toml から PAY_TO やその他の共有環境変数を継承し、CORS_ORIGINS をプレビューの公開ベース URL に自動設定します。そのため、新しいプレビューアプリは別途 CORS シークレットを用意しなくても起動できます。
プレビューのデプロイでは Fly の immediate 戦略を使用します。プレビューアプリは、アタッチされたボリュームが 1 つの SQLite サービスとして単一マシンで稼働するため、ローリング置換よりもインプレース更新のほうが確実です。
プレビューアプリは本番環境とは別にプロビジョニングし、このサービスは引き続き単一の SQLite ファイルを使用するため、djd_agent_score_data という名前の専用 Fly ボリュームをマウントしてください。
昇格前に、src/ と index.html にあるプレビュー環境で安全でないハードコードされた本番 URL を検出するには、npm run audit:promotion を使用します。
本番環境の設定をリポジトリ内で変更せずに、fly.toml からプレビューに適した Fly 設定を出力するには、npm run render:fly-config -- --app <preview-app> --public-base-url <preview-url> --output .fly/preview.toml を使用します。
環境変数
| 変数 | デフォルト値 | 説明 |
|---|---|---|
PORT | 3000 | HTTP ポート |
DJD_RUNTIME_MODE | combined | 起動するビルド済みエントリーポイント:combined、api、または worker |
DJD_RELEASE_SHA | unset | コンテナイメージに埋め込まれ、/health で公開されるリリースコミット |
DJD_BUILD_TIMESTAMP | unset | コンテナイメージに埋め込まれ、/health で公開される UTC ビルドタイムスタンプ |
PAY_TO | 0x3E4Ef1f774857C69E33ddDC471e110C7Ac7bB528 | x402 決済の USDC 受取先 |
FACILITATOR_URL | https://x402.org/facilitator | x402 ファシリテーターのエンドポイント |
BASE_RPC_URL | https://base-mainnet.public.blastapi.io | Base RPC(BlastAPI を推奨) |
GITHUB_TOKEN | unset | オプションの GitHub API トークン。未設定の場合、管理者向け /health には未認証モードと毎時 60 リクエストのフォールバックが報告されます |
ENABLE_BLOCKCHAIN_INDEXER | true | worker/combined ランタイムでの x402 決済インデックス作成を有効にします |
ENABLE_USDC_INDEXER | true | worker/combined ランタイムでの USDC 転送インデックス作成を有効にします |
ENABLE_HOURLY_REFRESH | true | worker/combined ランタイムでのスコアの毎時更新を有効にします |
PUBLISHER_PRIVATE_KEY | unset | ERC-8004 公開用のオプションの Base ウォレットキー。未設定の場合、管理者向け /health には公開が無効であることが報告されます |
DJD_HEALTHCHECK_URL | https://djdagentscore.dev/health | npm run smoke:deploy が使用するヘルスエンドポイント |
DJD_EXPECT_RUNTIME_MODE | combined | デプロイのスモーク検証で想定するランタイムモード |
DJD_EXPECT_RELEASE_SHA | unset | デプロイのスモーク検証で想定するリリース SHA |
DJD_ADMIN_KEY | unset | デプロイのスモーク検証で詳細なランタイムヘルスを確認するためのオプションの管理者キー |
技術的な注意事項
スタック: Hono + SQLite + viem を使用し、Fly.io にデプロイされています。アーキテクチャの詳細は docs/architecture.md をご覧ください。
ブロックチェーンインデクサー: 12 秒ごとに Base の USDC をポーリングし、AuthorizationUsed と Transfer のイベントを取得します。2 層のフィルター(EIP-3009 イベント + $1 の USDC 金額上限)により、通常の DeFi アクティビティから x402 決済を切り分けます。適応型のチャンクサイズ調整により、BlastAPI の 20k 件の結果上限に対応します。
データベース: DELETE ジャーナルモードの SQLite を使用します(Fly.io のネットワーク接続型ボリュームとの互換性を考慮し、WAL ではなくこちらを選択しています)。スコア、履歴、不正利用レポート、登録、クエリログ、インデクサーの状態、API キー、Webhook、認定、ジョブ統計、結果のキャリブレーション、異常検知を対象とする 31 のテーブルがあります。
RPC プロバイダー: デフォルトでは BlastAPI の Base パブリックエンドポイントを使用します。大量のインデックス作成には、BASE_RPC_URL で専用プロバイダーを指定してください。publicnode.com は避けてください(10k ブロック範囲の eth_getLogs リクエストを拒否します)。
ERC-8004: ERC-8004(AI エージェントレジストリ)との互換性を /v1/score/erc8004 で利用できます。また、設定されている場合、オンチェーン公開ジョブは信頼度の高い DJD スコアをレピュテーションレジストリに書き込みます。
スコアのキャッシュ: キャッシュ時間は 1 時間です。バックグラウンドで、期限切れのスコアを最大 50 件ずつ更新します。/v1/score/refresh($0.25)で強制的に再計算できます。管理者向けのフラッシュエンドポイントは、キャッシュ済みスコアをすべて期限切れにし、モデル更新後のエコシステム全体の再スコアリングを開始します。
自動再キャリブレーション: システムは実際の結果データに基づいてスコアリングのしきい値を継続的に調整し、予測された信頼性と実際のウォレットの挙動との間のフィードバックループを形成します。
エージェントの自動検出
x402 対応エージェントは、すべての DJD エンドポイントを自動的に検出できます。
curl https://djdagentscore.dev/.well-known/x402
すべてのエンドポイント、その価格、入力スキーマ、統合オプションを機械可読なマニフェストとして返します。
x402 決済の仕組み
x402 は、HTTP 402 を基盤とするオープンな決済プロトコルです。決済なしで有料エンドポイントにアクセスすると、決済手順(金額、受取先、ネットワーク)を含む 402 レスポンスが返されます。x402 クライアントは Base 上の USDC 決済に署名し、その証明を X-PAYMENT に添付してリクエストを再送します。追加のラウンドトリップは 1 回だけで、クライアントライブラリが自動的に処理します。
API キーは不要です。サブスクリプションもアカウントも不要です。リクエストごとのマイクロペイメントです。
License
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。