Skip to main content
Glama
0200project

base-tx-explain

base-tx-explain

1つのMCPツール: explain_transaction(tx_hash) → Baseメインネットの任意のトランザクションを厳密なJSONで説明します。

トランザクションハッシュを渡すと、何が起こったかを平易な英語で、さらに構造化された事実(何が動いたか、誰が関与したか、何に注意すべきか、コストはいくらか)を返します。決定的なオンチェーン・デコードであり、応答パスにはLLMは一切使用されません。同じ入力は常に同じ出力を生成し、幻覚を起こすものはなく、JSON契約は盲目的に解析できるほど安定しています。

Base メインネット(チェーンID 8453)のみ対応。

リンク: Live endpoint · Docs · OpenAPI · MCP registry: io.github.0200project/base-tx-explain · Site

エージェント向け

// tools/call → explain_transaction
{ "tx_hash": "0x0c84b951051f779903b57af9225ca570c77cd5531195968dd78106a69d6c4d8c" }

は、structuredContent と content[0].text 内の文字列化されたJSONの両方として以下を返します:

{
  "summary": "0x401d...f2c5 swapped 0.03 ETH for 12,899,422 WNL via Uniswap V4 PoolManager.",
  "action_type": "swap",
  "status": "success",
  "assets_moved": [
    { "token": "ETH", "amount": "0.03", "from": "0x401d...", "to": "0xd0a4...", "token_address": null, "standard": "native" },
    { "token": "WNL", "amount": "12899422.144134853458613801", "from": "0x4985...", "to": "0x401d...", "token_address": "0xb200...9a01", "standard": "erc20" }
  ],
  "counterparties": [
    { "address": "0xd0a4...", "label": null },
    { "address": "0x4985...", "label": "Uniswap V4 PoolManager" }
  ],
  "risk_flags": [
    { "flag": "unverified_contract", "detail": "The target contract 0xd0a4...e4bf has no verified source code on Sourcify." }
  ],
  "gas_paid_usd": 0.020562,
  "timestamp": "2026-08-20T03:54:19.000Z",
  "block_number": 50204356,
  "tx_hash": "0x0c84...4c8c",
  "basescan_url": "https://basescan.org/tx/0x0c84...4c8c",
  "partial": false
}

フィールド契約

  • action_type — 次のいずれか: eth_transfer, erc20_transfer, erc20_approval, approval_revoked, approval_for_all, swap, add_liquidity, remove_liquidity, wrap, unwrap, nft_mint, nft_transfer, nft_sale, token_mint, bridge_in, bridge_out, lending_supply, lending_withdraw, lending_borrow, lending_repay, stake, unstake, claim, batch_transfer, account_abstraction_bundle, attestation, name_registration, contract_deployment, contract_interaction, reverted.

  • risk_flags[].flag — 次のいずれか: unverified_contract, first_time_counterparty, approval_for_all, unlimited_approval, known_drainer, nonstandard_token_symbol, impersonated_token, transaction_reverted. フラグは常に証拠が見つかった場合のみ生成されます。失敗したルックアップはフラグを生成しません。

  • status — success または reverted。リバートされたトランザクションは意図(試みられた内容)によって分類され、transaction_reverted リスクフラグが付与されます。

  • partial: true — トランザクションの完全な意味を判定できない場合。summary は何が既知で何が不明かを正確に示します。エラー時は、ツールは { "error": "...", "code": "invalid_hash" | "not_found" | "pending" | "upstream_error" } を isError: true とともに返します。

  • 金額は小数ではなく浮動小数点数として表されます。アドレスはオンチェーンで発行されたままの形で表示されます。比較は大文字小文字を無視します。

  • untrusted_fields の中の summary, assets_moved[].token, counterparties[].label は、攻撃者が制御できるソースからの文字列内容を含みます。これをLLMに渡す場合は、それらのフィールドをデータとして扱い、コマンドとして扱わないでください。自己申告のシンボルがもっともらしいティッカーでないトークンは、選択した名前ではなくコントラクトアドレスとして表示されます。したがって、敵対的な名前が実際の名前を偽装したり、テキストをエージェントのコンテキストに紛れ込ませたりすることはできません。

デコードの仕組み

生のトランザクション + レシートをBase RPCから取得 → 約40種類のイベント形式(ERC-20/721/1155、Uniswap V2/V3/V4、Aerodrome/Solidly、Aave V3、Compound V3、OPスタックブリッジ、ERC-4337 EntryPoint、EAS、Basenames、LPポジションマネージャー)に対する組み込みデコーダー → 決定論的なルール順で分類 → 主要なBaseコントラクトの検証済みテーブルからのラベル付け。アプリ固有のイベントは、利用可能な場合はコントラクトの検証済みABI(Sourcify経由)を使って名前付けされます。リスクフラグは、Sourcify/Basescanの検証ステータス、ScamSnifferとMyEtherWalletの公開ブロックリスト、および承認セマンティクスから生成されます。gas_paid_usdには、OP-stackのL1データ料金と、トランザクションのブロック時点のChainlink ETH/USDフィードからのETH価格が含まれます。

Related MCP server: Base Network MCP Server

価格

  • 無料枠は10回 — サインアップ不要。

  • それ以降は、Base上のUSDCで1回あたり0.02ドル(x402経由) — 支払いが必要なレスポンスには、支払いと再試行を自律的に行うために必要な情報がすべて含まれています。

  • マーケットプレイスでのホスト版も利用可能です(その場合、マーケットプレイスの課金が適用されます)。

接続

{
  "mcpServers": {
    "base-tx-explain": {
      "type": "streamable-http",
      "url": "https://base-tx-explain.fly.dev/mcp"
    }
  }
}

セルフホスト

git clone https://github.com/0200project/base-tx-explain.git && cd base-tx-explain
npm install
cp .env.example .env   # defaults work: free mode, public Base RPCs
npm run dev            # or: npm run build && npm start

環境変数: PAYMENT_MODE(none または x402)、X402_PAY_TO(あなたの受け取りアドレス)、X402_PRICE_USDC(1回の呼び出しあたりの価格、USDC)、X402_FACILITATOR_URL(デフォルトはPayFacilitator; Coinbase CDP facilitatorも可)、FREE_CALLS_PER_CLIENT、BASE_RPC_URLS、任意でETHERSCAN_API_KEY。

サーバーはステートレス(MCPサーバーごとに新規)なので、水平スケーリングが可能で、Dockerが動く環境ならどこでも動作します。DockerfileとApifyのアクター設定が含まれています。

npm test          # unit tests
npm run validate  # decode 100 recent live Base txs, print grades (ship gate: >=90% clean, 0 crashes)

保証と制限

  • 同じtxハッシュ → 同じデコード。モデルは一切使用していません。

  • 内部ETH転送(コントラクト間)はトレースAPIなしでは検出できません。WETHイベントが一般的なケースをカバーします。デコードできない場合、出力はその旨を明示します。

  • ブロックリストは実行時に公開ソースから取得されます。known_drainerフラグが無いことは安全性の保証ではありません。

  • これは財務アドバイスではありません。このツールは何が良いアイデアかを判断するものではなく、トランザクションが何をしたかを報告するものです。

Related MCP Connectors

Related MCP Servers