mcpField
M
Magneta Contract Risk

Magneta Contract Risk

リモート
x402.magneta.financeセキュリティ0今日更新
リポジトリ公式サイト

Magneta Contract Risk について

Magneta Contract Riskは、EVMスマートコントラクトのオンチェーンリスクレポートをAIエージェント向けに提供し、初期スクリーニングやリスクの振り分けに使えます。公開データ、ソース検証、静的解析を組み合わせ、有料レポートはx402で呼び出しごとに決済します。

主な機能

  1. 01複数のEVMチェーンに対応
  2. 02プロキシ、所有権、トークン状態を確認
  3. 03リスクのあるオペコードと関数セレクターを検出
  4. 04ソース検証とAderynの検出結果を活用
  5. 05無料の簡易フラグと有料レポート

活用シーン

  1. 01デプロイ前のコントラクトの初期確認
  2. 02プロキシと実装のリスク比較
  3. 03エージェントへのコントラクトリスク情報の提供

MCP 対応

MCP サーバーはStreamable HTTP経由で、有料の`contract_risk_summary`ツール、`supported_chains`、無料の`contract_quick_flags`を公開します。有料ツールは呼び出しごとにx402で決済します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://x402.magneta.finance/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

2
パラメーター型必須説明
addressstringはいコントラクトアドレス(0x...)
chainIdintegerはいEVM チェーン ID

詳細

Magneta Contract Risk (x402)

AI エージェント向けにオンチェーンのスマートコントラクトリスクレポートを販売する、小規模な本番運用向けサービスです。呼び出しごとに x402 のマイクロペイメント(USDC、EIP-3009 の exact スキーム)で支払います。Express プロセスは 1 つで、有料の提供面は 2 つです。

提供面ルート価格
HTTPGET /v1/risk/:chainId/:address$0.02
MCP(Streamable HTTP、ステートレス)POST /mcp、ツール contract_risk_summary(chainId, address)$0.02
MCPツール supported_chains無料
ヘルスGET /health無料

どちらの有料提供面も、src/risk/analyze.ts の同じ analyzeContract(chainId, address) を呼び出します。分析は決定的で、公開データのみ(RPC、Blockscout、Sourcify、ローカルの aderyn バイナリ)を使用します。分析に LLM や API キーは不要です。 不明なチェーンまたは形式が正しくないアドレスの場合、支払いを要求する前に 400 を返します。分析自体が失敗した場合(コントラクトではない、上流エラー、タイムアウト)、レスポンスはエラーステータスとなり、購入者に請求されません(x402 は成功したレスポンスのみ決済します)。

対応チェーン(v1、src/chains.ts):Base 8453、Base Sepolia 84532、Ethereum 1、Arbitrum One 42161。RPC_URL_<chainId> で RPC を上書きできます。

レポート

{ chainId, address, analyzedAt, isContract, bytecodeSize, proxy, erc20, opcodes, selectors: { found },
  blockscout, sourcify?, aderyn, score, level, flags, notes }
  • proxy:EIP-1967(implementation/admin/beacon)、旧 zeppelinos スロット、EIP-1822、EIP-1167 クローン、または Blockscout の検出結果に基づく { type, implementation, admin? }。implementation のバイトコードも分析されます。
  • erc20:name、symbol、decimals、totalSupply、owner()(ゼロアドレスかどうかも含む)、paused()。各プローブは個別に try/catch されます。
  • opcodes:PUSH データをスキップする実際のオペコード走査による SELFDESTRUCT/DELEGATECALL の有無(部分文字列の照合は行いません)。
  • selectors.found:リスクのあるシグネチャ(mint、pause、blacklist、手数料/税の設定、アップグレード、所有権など)のうち、4 バイトのセレクターがバイトコード内に PUSH4 として現れるもの。ヒューリスティックです:存在することは到達可能である証明ではありません(notes にも記載されています)。
  • blockscout/sourcify:検証ステータス、コンパイラー、コントラクト名、作成者、作成トランザクション。Blockscout は 5 秒でタイムアウトし、失敗時は blockscout: { available: false } となります。Sourcify への問い合わせは、Blockscout に到達できない場合、または「未検証」と報告された場合にのみ、フォールバックとして行われます。プロキシでは、implementation の検証結果が判定に使われます。
  • aderyn:検証済み Solidity ソースが利用可能な場合、ソースを一時ディレクトリ(パスをサニタイズ済み)に書き込み、aderyn を 15 秒のタイムアウト付きで実行します:{ ran, counts: { high, low }, top: [{ title, severity, instances }] }。それ以外の場合は { ran: false, reason } となります。リクエストが失敗することはありません。
  • 合計処理時間の上限:分析ごとに厳格な期限を 24 秒に設定しています。結果はチェーン ID とアドレスごとにメモリ内で 10 分間キャッシュされます(支払いは呼び出しごとに発生します)。
スコアの基準(src/risk/score.ts)

スコアは 0~100 で、数値が高いほどリスクが高くなります。加算方式で、上限は 100 です。

点数条件
+25ロジックコントラクトのソースが未検証(Blockscout、次に Sourcify)
+0(フラグあり)すべてのプロバイダーに到達できず、検証状況が不明
+15プロキシ/アップグレード可能
+10owner() が存在し、ゼロアドレスではない
+15mint セレクター
+15blacklist/bot-list セレクター
+10手数料/税/上限/取引切り替えの設定関数
+5(現在 pause 中なら +5)pause セレクター
+10SELFDESTRUCT オペコード
1 件につき +5、最大 +20aderyn の重大度 high の検出結果

レベル:0~24 は low、25~49 は medium、50~74 は high、75~100 は critical。コントラクトではないアドレスはエラーとなり、スコアは算出されません。このスコアは一次選別の指標であり、監査ではありません。

対応チェーン

メインネット:Ethereum(1)、OP Mainnet(10)、BNB Smart Chain(56)、Gnosis(100)、Unichain(130)、Polygon(137)、Sonic(146)、 World Chain(480)、Mantle(5000)、Base(8453)、Arbitrum One(42161)、Celo(42220)、Avalanche C-Chain(43114)、Linea(59144)、 Blast(81457)、Scroll(534352)。テストネット:Base Sepolia(84532)、Sepolia(11155111)、OP Sepolia(11155420)、Arbitrum Sepolia(421614)。 Blockscout のインスタンスがないチェーン(BNB、Sonic、Mantle、Avalanche)では、検証済みソースに Sourcify を使用します。zkSync Era は意図的に対象外です。EraVM のバイトコードは、オペコードとセレクターのヒューリスティクスを機能させないためです。Blockscout または Sourcify から取得したコンパイラーのリマッピングは remappings.txt に書き込まれ、aderyn が @openzeppelin/... 形式のインポートを解決できるようにします。

決済ネットワーク

購入者は Base(eip155:8453)上の USDC で支払います。SOLANA_PAY_TO を設定すると、同じルートとツールで Solana メインネット(solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)上の USDC も受け付けます。決済には同じ Coinbase CDP ファシリテーターを使用し、 Solana の手数料も負担します。Solana の受取アドレスには、あらかじめ USDC トークンアカウントを作成しておく必要があります(SDK は作成しません)。 pnpm buy-once-svm は Solana のキーペア(SVM_PRIVATE_KEY、base58 形式の 64 バイトの秘密鍵)を使って、1 回分の呼び出し料金を支払います。

無料枠、エージェントスキル、クライアントパッケージ

  • 無料プレビュー:GET /v1/flags/:chainId/:address と MCP ツール contract_quick_flags は、レポートのバイトコードのみを使用する部分(プロキシ、所有者/一時停止状態、リスクのあるセレクター、オペコード、部分スコア)を、支払いなしで返します。IP ごとに 1 分あたり 30 件に制限されます。ソースの検証と aderyn の検出結果は有料レポートにのみ含まれます。
  • エージェントスキル:npx skills add Bosacks/magneta-risk-x402 --skill magneta-contract-risk を実行すると、 HTTP、MCP、または Coinbase Agentic Wallet 経由でレポートを購入するタイミングと方法をエージェントに教える skills/magneta-contract-risk/SKILL.md がインストールされます。skills.sh
  • クライアントパッケージ:@magnetafinance/contract-risk (npm i @magnetafinance/contract-risk @x402/[email protected] @x402/[email protected] @x402/[email protected] [email protected]。ソースは packages/contract-risk-client)は、x402 の決済フローを型付きクライアントでラップし、LangChain.js、Vercel AI SDK、 OpenAI/Anthropic の関数呼び出し用ツールアダプターを提供します。
  • ElizaOS プラグイン:packages/plugin-elizaos(@magnetafinance/plugin-contract-risk)は、 アクション CONTRACT_QUICK_FLAGS(無料)と CONTRACT_RISK_REPORT(有料、決済ごとに上限あり)を Eliza エージェントに追加します。
  • ERC-8004 ID:登録ファイル erc8004/agent-registration.json は /.well-known/agent-registration.json で提供されます。scripts/erc8004-register.ts は Base IdentityRegistry 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 の register(string) 呼び出しを出力します。

実行

pnpm install --ignore-scripts
cp .env.example .env.local      # fill PAY_TO, X402_NETWORK, FACILITATOR_URL (+ CDP keys if cdp)
pnpm dev                        # tsx, or: pnpm build && pnpm start
pnpm type-check && pnpm test    # unit tests, no network
pnpm analyze 84532 0x036CbD53842c5426634e7929541eC2318f3dCF7e   # free local run, prints the report

購入(資金を入金した購入者キーが必要です。支出上限は $0.05 です。このキーをサーバーに置かないでください):

BUYER_PRIVATE_KEY=0x... pnpm buy-once        # HTTP; prints the report and the PAYMENT-RESPONSE tx hash
BUYER_PRIVATE_KEY=0x... pnpm buy-once-mcp    # same through the MCP tool

環境

  • PUBLIC_URL(https、末尾にスラッシュなし):Bazaar の検出用 MCP リソース URL として通知されます。リバースプロキシの背後では、サーバーはループバックプロキシ(trust proxy = loopback)を信頼するため、HTTP リソース URL は https:// として通知されます。そうでない場合、ファシリテーターは「resource must start with https://」として検出を拒否します。
Var意味
PORTリッスンポート(デフォルトは 3011)
PAY_TO受取アドレス(必須)
X402_NETWORKCAIP-2 ネットワーク。デフォルトは eip155:84532(Base Sepolia)。本番環境では eip155:8453
FACILITATOR_URLcdp(Coinbase CDP ファシリテーター。CDP_API_KEY_ID と CDP_API_KEY_SECRET が必要)または https://x402.org/facilitator などの HTTP ファシリテーター URL(テストネット)
ADERYN_BINaderyn 0.6.8 バイナリ。デフォルトは /home/dominique/bin/aderyn
RPC_URL_<chainId>チェーンごとの任意の RPC オーバーライド
BUYER_PRIVATE_KEY、TARGET_URL、MCP_URL、CHAIN_ID、ADDRESSバイヤースクリプト専用

デプロイ(systemd + Caddy)

pnpm install --ignore-scripts && pnpm build
rsync -a --exclude node_modules --exclude .env.local --exclude 'scripts/logs' ./ server:/srv/magneta/risk-x402/    # never overwrite the server's .env.local; then pnpm install --prod --ignore-scripts there
sudo cp deploy/magneta-risk-x402.service /etc/systemd/system/ && sudo systemctl enable --now magneta-risk-x402
# add deploy/Caddyfile.snippet to the Caddyfile (vhost x402.magneta.finance -> 127.0.0.1:3011), reload Caddy

ユニットは /srv/magneta/risk-x402/.env.local を読み込みます。メインネットでは X402_NETWORK=eip155:8453 と FACILITATOR_URL=cdp を設定してください。 Aderyn が使用する solc のダウンロード先/キャッシュは、サービスユーザーから利用できる必要があります(HOME に書き込み可能であること)。

Bazaar の検出

どちらの有料サーフェスも、@x402/extensions/bazaar の declareDiscoveryExtension を使用して x402 Bazaar の検出メタデータを宣言します(HTTP ルートにはパスパラメータのスキーマと出力例、MCP ツールには入力スキーマを指定)。また、bazaarResourceServerExtension はリソースサーバーに登録されています。このメタデータは PAYMENT-REQUIRED ヘッダー(extensions.bazaar)に表示されます。実際にカタログへ登録されるかどうかはファシリテーターによります。ファシリテーターは支払いの決済時にリソースをインデックス化するため、Bazaar 対応ファシリテーター(CDP)経由で最初の実際の有料呼び出しが行われた後にのみ、掲載されます。公開されている x402.org のテストネットファシリテーターでは、掲載は想定されていません。

本番環境の状況(2026-10-16)

Base メインネット(eip155:8453)上の https://x402.magneta.finance で稼働中です。Coinbase CDP ファシリテーターを使用し、呼び出しごとに $0.02 で、x402 Bazaar に掲載されています(ルート /v1/risk/:chainId/:address)。購入者は Base 上の USDC が必要で、ETH は不要です。ファシリテーターは、支払者が payTo と同じ場合、支払いを拒否します(self_send_not_allowed)。

ライセンス

MIT、Copyright (c) 2026 Magneta Finance。詳細は LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。