Web3 Systemic Agent について
Web3 Systemic Agentは、BaseおよびEVMネットワーク向けのWeb3セキュリティ・ガバナンス監査ツールです。決定論的なオンチェーン検査とGeminiによる意味評価を組み合わせ、無料スキャンと有料の詳細監査を提供します。
主な機能
- 01コントラクトのセレクターと権限のスキャン
- 02トークンのハニーポット兆候の検出
- 03DAO提案の実行データの確認
- 04オンチェーンルールとLLM評価の併用
- 05x402決済による詳細監査
活用シーン
- 01トークンのハニーポットリスクの確認
- 02コントラクトの特権関数の調査
- 03DAO提案の不審な実行内容の確認
MCP 対応
MCPサーバーは、無料のオンチェーン分析ツール3種と、有料の詳細な意味監査ツール1種を提供します。後者の実行にはx402マイクロペイメントを使います。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://web3-systemic-agent.onrender.com/mcpclaude mcp add --transport http rafacoelho33-web3-systemic-agent https://web3-systemic-agent.onrender.com/mcp{"mcpServers":{"rafacoelho33-web3-systemic-agent":{"type":"http","url":"https://web3-systemic-agent.onrender.com/mcp"}}}Cursor で開く{"servers":{"rafacoelho33-web3-systemic-agent":{"type":"http","url":"https://web3-systemic-agent.onrender.com/mcp"}}}VS Code で開く{"mcpServers":{"rafacoelho33-web3-systemic-agent":{"type":"http","url":"https://web3-systemic-agent.onrender.com/mcp"}}}{"mcpServers":{"rafacoelho33-web3-systemic-agent":{"serverUrl":"https://web3-systemic-agent.onrender.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Web3 条件アクショントリガーエージェント
2段階ハイブリッド LLM パイプラインと x402 Bazaar マイクロペイメントを備えた、自律型 Web3 セキュリティ&ガバナンス監査エージェント
リアルタイムのスマートコントラクト監視、DEX ハニーポット検出、DAO ガバナンスセキュリティのために設計された、自律型 Web3 エージェントです。2段階ハイブリッドアーキテクチャを採用し、コストゼロの決定論的なオンチェーン審査と、構造化された Gemini LLM 評価を組み合わせ、Base 上で x402 によるガス代不要の USDC マイクロペイメントを利用して、エージェント間(A2A)で収益化します。
Claude Desktop、Cursor、Smithery、Glama、Coinbase AgentKit に対応した、高スループットの FastAPI REST サービスおよび Model Context Protocol(MCP)サーバーとしてネイティブに動作します。
🌐 本番稼働中のサービス
このサービスは Render 上で継続的にデプロイされ、本番環境で稼働しています。
- ベース URL:
https://web3-systemic-agent.onrender.com - MCP 検出/Streamable-HTTP:
https://web3-systemic-agent.onrender.com/mcp - 詳細セマンティック監査の価格:
0.05 USDC(EIP-3009 ガス代不要) - 本番環境のデフォルトネットワーク: Base Mainnet(
eip155:8453)および Base Sepolia(eip155:84532) - エージェント受取ウォレット(
PAY_TO_ADDRESS):0x2b7F1fd931f7f28f89e0f688Dd5Bb7a620c24b63
標準 API エンドポイント
| メソッド | ルート | 説明 | x402 マイクロペイメント |
|---|---|---|---|
GET | / | サービスの検出、支払いパラメーター、エンドポイント一覧 | 無料 |
GET | /health | 稼働状況の確認、マルチチェーン RPC 接続、LLM の状態 | 無料 |
GET | /mcp | MCP サーバーの検出、トランスポートメタデータ、ツールマニフェスト | 無料 |
POST | /mcp | MCP JSON-RPC 2.0 実行エンドポイント(streamable-http) | 無料/詳細監査は 402 |
POST | /rules/validate | 静的な決定論的ルールの事前検証と構文チェック | 無料 |
POST | /evaluate | 2段階ハイブリッド評価(決定論的評価+Gemini LLM) | 0.05 USDC |
POST | /rules/evaluate-batch | 最大50件のルールを同期バッチ評価 | 無料/サブルールは課金対象 |
POST | /rules/enqueue | 一意の job_id を返す非同期評価キュー | 無料 |
GET | /jobs/{job_id} | 非同期ジョブの状態確認と結果取得 | 無料 |
🔌 Model Context Protocol(MCP)サーバー
このエージェントは、プロトコル仕様 2024-11-05 を実装した、第一級の Model Context Protocol(MCP) サーバー(src/mcp_server.py)を提供します。脅威を検出して評価するための無料のステージ1オンチェーン分析ツールを3つと、詳細なセマンティック監査を行う有料のステージ2ツールを1つ提供します。
┌───────────────────────────────────────────────┐
│ MCP Server Tools Registry │
└───────────────────────────────────────────────┘
│
┌─────────────────────────────────────┴─────────────────────────────────────┐
▼ ▼
┌───────────────────────────┐ ┌───────────────────────────┐
│ STAGE 1: FREE TOOLS │ │ STAGE 2: PAID AUDIT │
│ (Deterministic / $0.00) │ │ ($0.05 USDC via x402) │
└───────────────────────────┘ └───────────────────────────┘
│ │
├── scan_contract_selectors ───> Discovers EVM selectors & high-risk backdoors │
├── check_token_honeypot ───> Static bytecode analysis for tax & blacklist traps │
└── scan_dao_proposals ───> Ingests Snapshot DAO proposals & calldata payloads │
│
└─── (Upsell Recommendation Triggered) ──────────────────────────┘
▼
deep_semantic_audit
(Two-Stage Gatekeeping + Gemini LLM Reasoning)
1. 無料のステージ1ツール
scan_contract_selectors
- 目的: Base または任意の EVM ネットワーク上で、無料かつ決定的なバイトコード検査を行います。4 バイトの関数セレクターを検出し、権限の強い管理用バックドア(
transferOwnership、upgradeTo、mint、selfdestruct)にフラグを付けます。 - パラメーター:
target_address(string, required):16 進数形式の EVM スマートコントラクトアドレス。chain_id(integer, default 8453):EVM Chain ID(Base Mainnet は 8453、Base Sepolia は 84532)。bytecode_override(string, optional):オフライン分析用の、コントラクトのランタイムバイトコードを表す生の 16 進数文字列。
- 戻り値: コントラクトのステータス、バイトコードサイズ、抽出したセレクター、フラグが付けられた高リスク機能、リスクレベル(
HIGH、LOW、EOA)、および上位プランへの案内を返します。
check_token_honeypot
- 目的: DEX のハニーポット、ラグプルの罠、悪意のあるトークンコントラクトを対象に、無料の静的バイトコード分析を行います。
- ブラックリスト操作(
isBlacklisted、setBlacklist、addToBlacklist) - 任意の送金税と売却手数料 100% の罠(
setTax、setFee、setSellFee) - 取引の凍結および一時停止のバックドア(
pause、setTrading、enableTrading) - EVM の
SELFDESTRUCT(オペコード0xff)による資金流出の罠
- ブラックリスト操作(
- パラメーター:
token_address(string, required):トークンコントラクトの 16 進数形式の EVM アドレス。chain_id(integer, default 8453):EVM Chain ID。bytecode_override(string, optional):オフライン分析用の、トークンのランタイムバイトコードを表す生の文字列。
- 戻り値:
is_honeypot_suspectの真偽値、数値のrisk_score(0.0~10.0)、有効な脅威カテゴリ、詳細なリスクフラグ、および監査の上位プランへの案内を返します。
scan_dao_proposals
- 目的: Snapshot DAO の最近のガバナンス提案(Arbitrum、Aave、ENS など)を対象に、無料のスキャンを行います。提案された実行先、ネイティブ Wei の送金額、4 バイトの calldata を抽出し、ガバナンス乗っ取りの試みを検出します。
- パラメーター:
space_id(string, default "arbitrumfoundation.eth"):Snapshot DAO スペースの ENS ドメイン。limit(integer, default 3):取得する提案の最大数。use_curated_offline(boolean, default false):true の場合、外部ネットワークへの接続なしで、検証済みの現実的な厳選提案を返します。
- 戻り値: 提案 ID、自然言語のタイトル、実行先、calldata ペイロード、および監査の推奨事項を返します。
2. 有料の Stage 2 ツール
deep_semantic_audit
- 目的: 2 段階の自律型セキュリティおよびガバナンス監査を行います。決定的なオンチェーンのゲートチェックに続いて、構造化された Google Gemini LLM の推論を実行し、自然言語の主張と実際のバイトコードおよび calldata の内容を照合します。
- パラメーター:
target_address(string, required):16 進数形式の EVM スマートコントラクトアドレス。proposal_description(string, required):自然言語による主張、またはガバナンス提案の説明。policy_prompt(string, optional):監査対象となるセキュリティポリシーまたは基準。calldata(string, default "0x"):実行されるトランザクションの 16 進数 calldata。chain_id(integer, default 8453):EVM Chain ID。risk_threshold(number, default 7.0):介入が必要となるリスクのしきい値(0.0~10.0)。x402_payment_header(string, optional):0.05 ドルの USDC 支払いを満たす、Base64 エンコードされた EIP-3009 送金承認。
- 料金とマイクロペイメントのフロー:
- 支払い情報なしで呼び出すと、正確な受取人アドレス、金額(0.05 ドルの USDC)、手順を含む、構造化された HTTP 402 支払い要求を返します。
x402_payment_headerが指定されている場合(または環境でX402_BUYER_PRIVATE_KEYが設定されている場合)、監査を直ちに実行し、リスクスコアとフラグが付けられた問題を含む、決定的なポリシー判定(APPROVE、MANUAL_REVIEW、REJECT)を返します。
🛠️ MCP クライアントの設定とインストール
Claude Desktop
claude_desktop_config.json にサーバーを追加します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"web3-systemic-agent": {
"command": "python",
"args": ["-m", "src.mcp_server"],
"cwd": "/path/to/web3-condition-action-trigger-agent",
"env": {
"WEB3_AGENT_URL": "https://web3-systemic-agent.onrender.com",
"X402_BUYER_PRIVATE_KEY": ""
}
}
}
}
Cursor IDE
プロジェクトのルートまたはユーザー設定にある .cursor/mcp.json を作成または編集します。
{
"mcpServers": {
"web3-systemic-agent": {
"command": "python",
"args": ["-m", "src.mcp_server"],
"env": {
"WEB3_AGENT_URL": "https://web3-systemic-agent.onrender.com"
}
}
}
}
Smithery(smithery.yaml)
Smithery.ai から直接インストールします。
smithery run web3-systemic-agent
または、ローカルのマニフェストを参照します。
startCommand:
type: stdio
configSchema:
type: object
properties:
web3AgentUrl:
type: string
default: "https://web3-systemic-agent.onrender.com"
x402BuyerPrivateKey:
type: string
commandFunction:
python: "python -m src.mcp_server"
Glama(glama.json)
Glama MCP Directory で検証済みです。
{
"$schema": "https://glama.ai/mcp/schemas/server.json",
"name": "web3-systemic-agent",
"maintainers": ["RafaCoelho33"],
"homepage": "https://web3-systemic-agent.onrender.com",
"repository": "https://github.com/RafaCoelho33/web3-systemic-agent"
}
Coinbase AgentKit / Streamable-HTTP
ローカルにインストールせず、HTTP ストリーミングでリモート MCP エンドポイントに接続します。
import httpx
# Ingest tools manifest via Streamable-HTTP
async with httpx.AsyncClient() as client:
resp = await client.get("https://web3-systemic-agent.onrender.com/mcp")
tools = resp.json()["tools"]
🏗️ 2 段階アーキテクチャと x402 マイクロペイメント
flowchart TD
Client["Client / Agent / MCP Tool"] -->|POST /evaluate or deep_semantic_audit| Gate["x402 Payment Gatekeeper\n(EIP-3009 Gasless USDC)"]
Gate -->|No / Invalid Payment Header| R402["HTTP 402 Payment Required\n(0.05 USDC -> PAY_TO_ADDRESS)"]
Gate -->|Valid EIP-3009 Authorization| S1["Stage 1: ChainInspector (AsyncWeb3)\nBytecode Cache + Native Balance + Selectors"]
S1 -->|Condition Fails| ShortCircuit["Deterministic Short-Circuit\n(llm_invoked=False, LLM Cost = $0.00)"]
S1 -->|RPC Connectivity Error| Err503["HTTP 503 Unavailable\n(Payment NOT Settled / No Charge)"]
S1 -->|Condition Passes| S2["Stage 2: GeminiSemanticEvaluator\nStructured JSON Schema + Failover Models"]
S2 --> Policy["enforce_decision_policy\nDeterministic Escalation: REJECT / MANUAL / APPROVE"]
ShortCircuit --> Settle["Settle Payment via x402 Facilitator\nLog to SQLite Ledger (data/agent.db)"]
Policy --> Settle
Settle --> Resp["HTTP 200 OK: FinalAgentResponse + PaymentReceipt"]
オンチェーンでの決済実績(Base Sepolia)
EIP-3009(transferWithAuthorization) を使用した x402 A2A 決済サイクルは、買い手またはエージェントがガス代として ETH を消費することなく、Base Sepolia(Chain ID: 84532) 上で検証・決済されています。
| 指標 | トランザクション 1(直接決済) | トランザクション 2(ライブメンプールの捕捉) | トランザクション 3(本番レンダリング) |
|---|---|---|---|
| トランザクションハッシュ | 0xa02872819cef... | 0x6aa7c671469d... | 0x63ea962e6f0d... |
| 決済方法 | 直接 EIP-3009 呼び出し | ライブメンプール/ブロックのスキャン | POST https://web3-systemic-agent.onrender.com/evaluate |
| オンチェーンのステータス | Success(ブロック 54583500) | Success(ブロック 54644484) | Success |
エージェントウォレット(PAY_TO_ADDRESS) | 0x2b7F1fd931... | 0x2b7F1fd931... | 0x2b7F1fd931... |
| 買い手ウォレット(A2A エージェント) | 0x4EbC7529d8... | 0x4EbC7529d8... | 0x4EbC7529d8... |
| x402 ファシリテーター(ガス代スポンサー) | 0xd407e409E3...(https://x402.org/facilitator) | 0xd407e409E3...(https://x402.org/facilitator) | 0xd407e409E3...(https://x402.org/facilitator) |
| USDC トークンコントラクト | 0x036CbD5384... | 0x036CbD5384... | 0x036CbD5384... |
| 決済額 | 0.01 USDC | 0.01 USDC | 0.05 USDC |
| ガス代(買い手/サーバー) | 0.00 ETH(ガスレス EIP-3009) | 0.00 ETH(ガスレス EIP-3009) | 0.00 ETH(ガスレス EIP-3009) |
📁 リポジトリ構成
├── src/
│ ├── api.py # FastAPI service, x402 middleware, REST & MCP endpoints
│ ├── mcp_server.py # MCP server implementation (stdio & HTTP, 4 tools)
│ ├── engine.py # ConditionAgentEngine two-stage orchestrator
│ ├── chain_inspector.py # Stage 1 deterministic on-chain gatekeeper with FIFO cache
│ ├── semantic_evaluator.py # Stage 2 Gemini/OpenAI LLM evaluator with cooldown failovers
│ ├── schemas.py # Pydantic v2 strict schemas and contracts
│ ├── x402_payment.py # x402 protocol, EIP-3009 signatures, replay defense
│ ├── governance_connector.py # Snapshot GraphQL connector & Discord/Slack dispatcher
│ ├── storage.py # Asynchronous SQLite ledger with automatic secret redaction
│ ├── task_worker.py # In-memory background task worker pool
│ └── report.py # Telemetry CLI reporting token costs, revenue, net profit
├── scripts/
│ ├── block_contract_scanner.py # Autonomous Base Mainnet block deployment scanner
│ ├── dex_pool_monitor.py # Uniswap v3 & Aerodrome pool event monitor & honeypot engine
│ ├── governance_listener.py # Snapshot DAO sentinel bot
│ ├── client_agent_x402.py # Standalone A2A client with real on-chain settlement
│ └── setup_buyer_wallet.py # Wallet generation and USDC balance inspection utility
├── tests/ # 460+ automated unit, security, and integration tests
├── smithery.yaml # Smithery MCP registry manifest
├── glama.json # Glama MCP directory configuration
├── Dockerfile # Production Docker container definition
├── docker-compose.yml # Local containerized orchestration
└── .env.example # Environment configuration template
⚡ クイックスタートとセットアップ
1. インストール
git clone https://github.com/RafaCoelho33/web3-condition-action-trigger-agent.git
cd web3-condition-action-trigger-agent
# Install core and development dependencies
pip install -r requirements-dev.txt
2. 設定(.env)
テンプレートをコピーし、API キーを設定します。
cp .env.example .env
主な環境変数:
# Server
PORT=8000
PUBLIC_EVALUATE_ONLY=true
# Google Gemini API
GEMINI_API_KEY=your_gemini_api_key_here
GEMINI_MODEL=gemini-3.5-flash-lite
GEMINI_FAILOVER_MODELS=gemini-3.5-flash-lite,gemini-3.1-flash-lite,gemini-2.5-flash-lite,gemini-2.0-flash
# x402 Micropayment Protocol
PAY_TO_ADDRESS=0x2b7F1fd931f7f28f89e0f688Dd5Bb7a620c24b63
X402_ENABLED=true
X402_NETWORK=eip155:8453
X402_PRICE_EVALUATE=0.05
X402_USE_LIVE_FACILITATOR=true
3. MCP サーバーをオフラインで検証
python src/mcp_server.py --dry-run
想定される出力:
=== Web3 Systemic Agent MCP Server Self-Test ===
[1/5] Registered 4 MCP tools: scan_contract_selectors, check_token_honeypot, scan_dao_proposals, deep_semantic_audit
[2/5] Tool 'scan_contract_selectors' OK: risk_level=LOW, selectors=1, cost=$0.00
[3/5] Tool 'check_token_honeypot' OK: is_honeypot=True, score=7.5, cost=$0.00
[4/5] Tool 'scan_dao_proposals' OK: count=1, cost=$0.00
[5/5] Tool 'deep_semantic_audit' OK: status=payment_required, status_code=402, price_usdc=0.05
=== All MCP self-tests PASSED successfully ===
4. テストスイート全体を実行
pytest
📜 ライセンス
このプロジェクトは、PolyForm Noncommercial License 1.0.0 の下でライセンスされています。
- 許可される用途: 非商用利用、研究、教育目的の学習、および個人的な実験。
- 禁止される用途: 商用利用、有料の商用サービスとしてのホスティング、または商用ライセンスなしでの独自のエンタープライズ向けサービスへの組み込み。
- 商用ライセンスに関するお問い合わせ: 商用ライセンス契約については、https://github.com/RafaCoelho33 までお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。