Skip to main content
Glama
0200project

base-tx-explain

base-tx-explain

하나의 MCP 도구: explain_transaction(tx_hash) → 모든 Base 메인넷 트랜잭션에 대한 엄격한 JSON 설명.

트랜잭션 해시를 입력하세요. 무슨 일이 일어났는지 평이한 영어로, 그리고 구조화된 사실(무엇이 이동했는지, 누가 관여했는지, 무엇을 주의해야 하는지, 비용이 얼마인지)을 돌려받습니다. 결정적 온체인 디코드 — 응답 경로 어디에도 LLM이 없으므로 동일한 입력은 항상 동일한 출력을 생성하고, 환각(hallucination)할 내용이 없으며, JSON 계약은 블라인드 파싱이 가능할 정도로 안정적입니다.

Base 메인넷(체인 ID 8453) 전용입니다.

링크: 라이브 엔드포인트 · 문서 · OpenAPI · MCP 레지스트리: io.github.0200project/base-tx-explain · 사이트

에이전트용

// 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, unknown.

  • 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를 반환합니다.

  • 금액은 10진수 문자열입니다(부동소수점이 아님). 주소는 온체인에서 방출된 그대로이며, 대소문자를 구분하지 않고 비교합니다.

  • provenance.untrusted_fields — 문자열 내용이 공격자가 제어할 수 있는 소스(토큰 심볼, 계약/컬렉션 이름, 이벤트/함수 이름)에서 비롯된 필드를 나열합니다: 현재는 summary, assets_moved[].token, counterparties[].label입니다. 이 출력을 LLM에 입력한다면 해당 필드를 데이터로 취급하고, 절대 명령으로 취급하지 마십시오. 명령형 또는 홍보성 텍스트로 스스로를 이름 짓는 토큰은 명령이 아니라 사기 신호입니다. 심볼은 정규화되며(제어 문자, 줄 구분자, 이모지, 호모글리프가 제거됨) 자체 보고된 심볼이 그럴듯한 티커가 아닌 토큰은 선택한 이름 대신 계약 주소로 표시됩니다 — 따라서 적대적인 이름이 실제 이름을 사칭하거나 에이전트의 컨텍스트에 텍스트를 몰래 넣을 수 없습니다.

디코딩 방식

Base RPC의 원시 트랜잭션 + 영수증 → ~40개 이벤트 형식에 대한 내장 디코더(ERC-20/721/1155, Uniswap V2/V3/V4, Aerodrome/Solidly, Seaport, Aave V3, Compound V3, OP-stack 브리지, ERC-4337 EntryPoint, EAS, Basenames, WETH, LP 포지션 매니저) → 결정적 규칙 순서 분류 → 검증된 주요 Base 계약 테이블의 라벨. 앱별 이벤트는 가능한 경우 계약의 Sourcify 검증 ABI를 통해 이름이 지정됩니다. 위험 플래그는 Sourcify/Basescan 검증 상태, ScamSniffer 및 MyEtherWallet 공개 블록리스트, 승인 의미론에서 비롯됩니다. gas_paid_usd에는 OP-stack L1 데이터 수수료가 포함되며 트랜잭션이 포함된 블록의 Chainlink ETH/USD 피드로 ETH 가격을 책정합니다.

Related MCP server: Base Network MCP Server

가격 정책

  • 클라이언트당 무료 호출 10회, 가입 불필요.

  • 이후: x402를 통한 Base의 USDC로 호출당 $0.02 — 결제 필요 응답에는 x402 지원 에이전트가 자율적으로 결제하고 재시도하는 데 필요한 모든 것이 포함됩니다. 계정도, API 키도 필요 없습니다.

  • 마켓플레이스 호스팅도 이용 가능합니다(이 경우 마켓플레이스 결제가 적용됩니다).

연결

{
  "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

환경 변수(.env.example 참조): PAYMENT_MODE (none | x402), X402_PAY_TO (수신 주소 — 새 지갑 사용), X402_PRICE_USD, X402_FACILITATOR_URL (기본값은 키 없는 PayAI 퍼실리테이터; Coinbase CDP 퍼실리테이터도 작동하며 해당 API 키는 지출 노출이 없음), FREE_CALLS_PER_IP, BASE_RPC_URLS, 선택 사항 ETHERSCAN_API_KEY.

서버는 무상태(stateless)입니다(요청당 새 MCP 서버). 따라서 수평 확장이 가능하고 Docker를 실행할 수 있는 모든 환경에서 실행됩니다 — Dockerfile과 Apify .actor/ 구성이 포함되어 있습니다.

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