FabTally Decode
Decode EVM bytes to JSON: event-log decoder, calldata explainer, selector lookup, ABI fetch.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"onchain-decode": {
"url": "https://decode.fabtally.com/mcp"
}
}
}Puntos de conexión remotos
https://decode.fabtally.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (4)
⚪decode_log(chain, tx_hash, address, topics, data, ...)
PAID $0.003 (x402, USDC on Base). FLAGSHIP: decode EVM event LOGS to human-readable JSON. Give {chain, tx_hash} to decode every log in a transaction, OR {chain, address, topics[], data} for a single log; optional {abi}. Returns each event's name, canonical signature and named/typed args — correctly handling tuple/array/nested params, anonymous events, and indexed vs non-indexed. Resolves the ABI via Sourcify/Blockscout + 4byte event signatures when none is supplied. Without payment returns the x402 challenge; pass x_payment to settle.
Esquema de entrada
{
"type": "object",
"properties": {
"chain": {
"type": "string",
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc"
],
"description": "EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc."
},
"tx_hash": {
"type": "string",
"description": "Transaction hash (0x + 64 hex) — decodes every event log in the tx."
},
"address": {
"type": "string",
"description": "Contract address of a single log (used with topics + data)."
},
"topics": {
"type": "array",
"items": {
"type": "string"
},
"description": "Log topics array (topic0 is the event signature hash for non-anonymous events)."
},
"data": {
"type": "string",
"description": "Log data field (0x hex) holding the non-indexed args."
},
"abi": {
"anyOf": [
{
"type": "array"
},
{
"type": "string"
}
],
"description": "Optional contract ABI (JSON array or JSON string). If omitted, the ABI is resolved from the verified source (Sourcify/Blockscout) or 4byte.directory."
},
"x_payment": {
"type": "string",
"description": "x402 payment payload (base64) for this PAID decode. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
}
},
"required": [
"chain"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢decode_calldata(chain, to, data, abi, x_payment)
PAID $0.002 (x402, USDC on Base). Decode a contract function call. Give {chain, to?, data, abi?}; get the 4-byte selector resolved to a function signature (via provided ABI, the verified contract source, or 4byte.directory) plus fully decoded, typed arguments (tuples/arrays/nested included). Without payment returns the x402 challenge.
Esquema de entrada
{
"type": "object",
"properties": {
"chain": {
"type": "string",
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc"
],
"description": "EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc."
},
"to": {
"type": "string",
"description": "Contract address the call targets (optional; enables verified-ABI resolution)."
},
"data": {
"type": "string",
"description": "Calldata (0x hex, at least the 4-byte selector)."
},
"abi": {
"anyOf": [
{
"type": "array"
},
{
"type": "string"
}
],
"description": "Optional contract ABI (JSON array or JSON string). If omitted, the ABI is resolved from the verified source (Sourcify/Blockscout) or 4byte.directory."
},
"x_payment": {
"type": "string",
"description": "x402 payment payload (base64) for this PAID decode. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
}
},
"required": [
"chain",
"data"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪selector_lookup(selector, x_payment)
PAID $0.001 (x402, USDC on Base). Resolve a 4-byte function selector (0x + 8 hex) OR a 32-byte event topic hash (0x + 64 hex) to its human-readable signature(s) via 4byte.directory + openchain.xyz. Returns all matches (selectors can collide) with a verified flag. Without payment returns the x402 challenge; pass x_payment to settle.
Esquema de entrada
{
"type": "object",
"properties": {
"selector": {
"type": "string",
"description": "A 4-byte function selector (0x + 8 hex) or a 32-byte event topic hash (0x + 64 hex)."
},
"x_payment": {
"type": "string",
"description": "x402 payment payload (base64) for this PAID decode. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
}
},
"required": [
"selector"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢abi_fetch(chain, address, x_payment)
PAID $0.002 (x402, USDC on Base). Fetch the verified ABI + metadata for a contract. Give {address, chain}; get the ABI JSON, verification status/source (Sourcify or Blockscout), the callable function/event signatures, and full proxy-implementation resolution (EIP-1967/1822/OZ-legacy/beacon) — returning the implementation's ABI when it's a proxy. Without payment returns the x402 challenge; pass x_payment to settle.
Esquema de entrada
{
"type": "object",
"properties": {
"chain": {
"type": "string",
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc"
],
"description": "EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc."
},
"address": {
"type": "string",
"description": "Contract address (0x + 40 hex)."
},
"x_payment": {
"type": "string",
"description": "x402 payment payload (base64) for this PAID decode. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
}
},
"required": [
"chain",
"address"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia