base-tx-explain
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. Наличие флага всегда означает, что найдено подтверждающее свидетельство; неудачный поиск никогда не создаёт флаг.status—successили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не является гарантией безопасности.Не является финансовой рекомендацией; этот инструмент сообщает, что сделала транзакция, а не то, является ли какое-либо действие хорошей идеей.
This server cannot be installed
Maintenance
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
- AlicenseAqualityDmaintenanceSmart contract security scanner for Base. Detect honeypots, rug pulls, hidden mints, proxy dangers, and generate audit reports.8411MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying Base Network blockchain data including blocks, transactions, balances, and smart contracts on mainnet and testnet.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying Base Network blockchain data including blocks, transactions, balances, and smart contracts on mainnet and testnet.MIT
- AlicenseAqualityCmaintenanceDecodes Ethereum calldata and returns a safety verdict with plain-English explanations of what the transaction does, flagging dangerous actions like unlimited approvals or gasless permits.2MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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