Skip to main content
Glama
0200project

base-tx-explain

by 0200project

base-tx-explain

Один MCP-инструмент: explain_transaction(tx_hash) → строгое JSON-объяснение любой транзакции Base mainnet.

Передайте ему хеш транзакции. В ответ вы получите описание произошедшего простым языком, а также структурированные факты: что перемещалось, кто участвовал, на что обратить внимание и сколько это стоило. Детерминированная ончейн-расшифровка — никакого LLM на пути формирования ответа, поэтому один и тот же вход всегда даёт один и тот же результат, галлюцинировать нечему, а JSON-контракт достаточно стабилен, чтобы парсить его вслепую.

Только Base mainnet (chain id 8453).

Ссылки: Рабочий endpoint · Документация · OpenAPI · MCP-реестр: io.github.0200project/base-tx-explain · Сайт

Для агентов

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

возвращает (и как structuredContent, и как строковый JSON в content[0].text):

{
  "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. Наличие флага всегда означает, что найдено подтверждающее свидетельство; неудачный поиск никогда не создаёт флаг.

  • statussuccess или reverted. Транзакции со статусом reverted классифицируются по намерению (что пытались сделать) и несут флаг риска transaction_reverted.

  • partial: true — полный смысл транзакции установить не удалось; summary точно указывает, что известно, а что нет. При ошибках инструмент возвращает isError: true с { "error": "...", "code": "invalid_hash" | "not_found" | "pending" | "upstream_error" }.

  • Суммы — это десятичные строки (не числа с плавающей запятой). Адреса указаны в исходном ончейн-виде; сравнивайте их без учёта регистра.

  • provenance.untrusted_fields — перечисляет поля, строковое содержимое которых поступает из источников, контролируемых атакующим (символы токенов, названия контрактов/коллекций, имена событий/функций): на сегодня это summary, assets_moved[].token и counterparties[].label. Если вы передаёте этот вывод LLM, относитесь к этим полям как к данным, а не как к инструкциям. Токен, называющий себя текстом, похожим на инструкцию или рекламу, — это сигнал скама, а не команда. Символы нормализуются (управляющие символы, разделители строк, эмодзи и гомоглифы удаляются), а токен, чей заявленный им самим символ не является правдоподобным тикером, отображается по адресу своего контракта, а не по выбранному имени — поэтому враждебное имя не может выдать себя за настоящее или протащить текст в контекст агента.

Как выполняется декодирование

Сырая транзакция + receipt из Base RPC → встроенные декодеры для ~40 форматов событий (ERC-20/721/1155, Uniswap V2/V3/V4, Aerodrome/Solidly, Seaport, Aave V3, Compound V3, OP-stack bridges, ERC-4337 EntryPoint, EAS, Basenames, WETH, LP position managers) → детерминированная классификация по упорядоченным правилам → метки из проверенной таблицы основных контрактов Base. События, специфичные для приложения, получают названия через подтверждённый ABI контракта на Sourcify, когда он доступен. Флаги риска формируются на основе статуса верификации Sourcify/Basescan, публичных блок-листов ScamSniffer и MyEtherWallet и семантики approval. gas_paid_usd включает комиссию за данные L1 в OP-stack, а цена ETH берётся из фида Chainlink ETH/USD в блоке транзакции.

Related MCP server: Base Network MCP Server

Цены

  • 10 бесплатных вызовов на клиента, без регистрации.

  • Далее: $0.02 за вызов в USDC на Base через x402 — ответ с требованием оплаты содержит всё, что нужно 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.

Сервер не хранит состояние (на каждый запрос создаётся новый 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)

Гарантии и ограничения

  • Детерминированность: один и тот же хеш транзакции → одна и та же расшифровка. Никаких вызовов моделей, никогда.

  • Внутренние ETH-переводы (перемещение ценности между контрактами) не видны без trace API; типичные случаи покрываются событиями WETH. Когда что-то не удаётся декодировать, вывод сообщает об этом, а не догадывается.

  • Блок-листы загружаются во время выполнения из публичных источников и обновляются дважды в день; отсутствие флага known_drainer не является гарантией безопасности.

  • Не является финансовой рекомендацией; этот инструмент сообщает, что сделала транзакция, а не то, является ли какое-либо действие хорошей идеей.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Check a Base contract, transaction or web page before you act. Free pricing, paid per call in USDC.

  • Decode EVM bytes to JSON: event-log decoder, calldata explainer, selector lookup, ABI fetch.

  • Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/0200project/base-tx-explain'

If you have feedback or need assistance with the MCP directory API, please join our Discord server