base-tx-explain
base-tx-explain
Una herramienta MCP: explain_transaction(tx_hash) → explicación JSON estricta de cualquier transacción de la red principal de Base.
Pásale un hash de transacción. Obtén qué ocurrió, en lenguaje sencillo, además de los datos estructurados: qué se movió, quién participó, qué debes tener en cuenta y cuánto costó. Decodificación onchain determinista — sin LLM en ningún punto de la ruta de respuesta, por lo que la misma entrada siempre produce la misma salida, no hay nada que alucinar y el contrato JSON es lo bastante estable como para analizarlo a ciegas.
Solo red principal de Base (chain id 8453).
Enlaces: Endpoint en vivo · Documentación · OpenAPI · Registro MCP: io.github.0200project/base-tx-explain · Sitio
Para agentes
// tools/call → explain_transaction
{ "tx_hash": "0x0c84b951051f779903b57af9225ca570c77cd5531195968dd78106a69d6c4d8c" }devuelve (tanto como structuredContent como JSON en formato cadena en 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
}Contrato de campos
action_type— uno de: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— uno de:unverified_contract,first_time_counterparty,approval_for_all,unlimited_approval,known_drainer,nonstandard_token_symbol,impersonated_token,transaction_reverted. Una marca siempre significa que se encontró evidencia; una búsqueda fallida nunca genera una marca.status—successoreverted. Las transacciones revertidas se clasifican por intención (lo que se intentó) y llevan una marca de riesgotransaction_reverted.partial: true— no se pudo establecer el significado completo de la transacción;summaryindica exactamente qué se sabe y qué no. En caso de error, la herramienta devuelveisError: truecon{ "error": "...", "code": "invalid_hash" | "not_found" | "pending" | "upstream_error" }.Los importes son cadenas decimales (no flotantes). Las direcciones se emiten tal cual en onchain; compara sin distinguir mayúsculas y minúsculas.
provenance.untrusted_fields— enumera los campos cuyo contenido de cadena proviene de fuentes controlables por el atacante (símbolos de token, nombres de contrato/colección, nombres de eventos/funciones): hoysummary,assets_moved[].tokenycounterparties[].label. Si alimentas esta salida a un LLM, trata esos campos como datos, nunca como instrucciones. Un token que se nombra a sí mismo con texto similar a instrucciones o promocional es una señal de estafa, no un comando. Los símbolos se normalizan (se eliminan caracteres de control, separadores de línea, emojis y homoglifos) y un token cuyo símbolo autodeclarado no es un ticker plausible se muestra como su dirección de contrato en lugar de su nombre elegido — así un nombre hostil no puede suplantar a uno real ni colar texto en el contexto de un agente.
Cómo decodifica
Transacción bruta + recibo del RPC de Base → decodificadores integrados para ~40 formatos de eventos (ERC-20/721/1155, Uniswap V2/V3/V4, Aerodrome/Solidly, Seaport, Aave V3, Compound V3, puentes OP-stack, ERC-4337 EntryPoint, EAS, Basenames, WETH, gestores de posición LP) → clasificación determinista ordenada por reglas → etiquetas de una tabla verificada de contratos principales de Base. Los eventos específicos de aplicaciones se nombran mediante el ABI verificado en Sourcify del contrato cuando está disponible. Las marcas de riesgo provienen del estado de verificación de Sourcify/Basescan, las listas negras públicas de ScamSniffer y MyEtherWallet, y la semántica de aprobaciones. gas_paid_usd incluye la tarifa de datos L1 de OP-stack y valora el ETH a partir del feed Chainlink ETH/USD en el bloque de la transacción.
Related MCP server: Base Network MCP Server
Precios
10 llamadas gratuitas por cliente, sin registro.
Después: $0.02 por llamada en USDC en Base mediante x402 — la respuesta que requiere pago contiene todo lo que un agente compatible con x402 necesita para pagar y reintentar de forma autónoma. Sin cuenta, sin clave API.
También disponible alojado en marketplace (la facturación del marketplace se aplica allí en su lugar).
Conectar
{
"mcpServers": {
"base-tx-explain": {
"type": "streamable-http",
"url": "https://base-tx-explain.fly.dev/mcp"
}
}
}Autohospedaje
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 startEntorno (ver .env.example): PAYMENT_MODE (none | x402), X402_PAY_TO (tu dirección receptora — usa una billetera nueva), X402_PRICE_USD, X402_FACILITATOR_URL (por defecto usa el facilitador PayAI sin clave; el facilitador de Coinbase CDP también funciona y sus claves API no conllevan exposición de gasto), FREE_CALLS_PER_IP, BASE_RPC_URLS, ETHERSCAN_API_KEY opcional.
El servidor no tiene estado (servidor MCP nuevo por solicitud), por lo que escala horizontalmente y se ejecuta en cualquier cosa que soporte Docker — se incluyen un Dockerfile y una configuración de Apify .actor/.
npm test # unit tests
npm run validate # decode 100 recent live Base txs, print grades (ship gate: >=90% clean, 0 crashes)Garantías y límites
Determinista: mismo hash de transacción → misma decodificación. Sin llamadas a modelos, nunca.
Las transferencias ETH internas (movimientos de valor entre contratos) no son visibles sin APIs de rastreo; los eventos WETH cubren los casos comunes. Cuando algo no se puede decodificar, la salida lo indica en lugar de adivinar.
Las listas negras se consumen en tiempo de ejecución desde sus fuentes públicas y se actualizan dos veces al día; la ausencia de una marca
known_drainerno es una garantía de seguridad.No es asesoramiento financiero; esta herramienta informa qué hizo una transacción, no si algo es una buena idea.
This server cannot be deployed
Maintenance
Related MCP Connectors
Base on-chain address labels (eth-labels 104k category tags), tx explainer, clusters, CCTP USDC.
Check a Base contract, transaction or web page before you act. Free pricing, paid per call in USDC.
Base token risk (honeypot sim), prices, balances, Basenames, tx data. Pay-per-call in USDC via x402.
13 free Base tools: address labels, tx explain, balances, receipts, gas, logs, bytecode.
Related MCP Servers
- AlicenseAqualityCmaintenanceSmart contract security scanner for Base. Detect honeypots, rug pulls, hidden mints, proxy dangers, and generate audit reports.825 npm1MIT
- 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