FabTally Decode MCP
Provides tools for decoding Ethereum on-chain data, including transaction logs, calldata, and function selectors, and fetching contract ABIs.
Provides tools for decoding Optimism on-chain data, including transaction logs, calldata, and function selectors, and fetching contract ABIs.
Provides tools for decoding Polygon on-chain data, including transaction logs, calldata, and function selectors, and fetching contract ABIs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FabTally Decode MCPDecode the logs for transaction 0x1234... on ethereum"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FabTally Decode — MCP server
Developer on-chain decoding reads that turn raw EVM bytes into human-readable JSON — the capability buried inside $49-999/mo RPC plans. Fronts the Decode HTTP API at https://decode.fabtally.com. Holds no private key.
Tools (all paid; a call with no payment returns the decoded x402 402 challenge)
Tool | Price | What it does |
| $0.003 | Flagship. Decode event LOGS to JSON. |
| $0.002 | Decode a function call. |
| $0.001 | Resolve a 4-byte function selector ( |
| $0.002 | Fetch a contract's verified ABI + metadata (Sourcify/Blockscout) + verification status + full proxy-implementation resolution (EIP-1967/1822/OZ-legacy/beacon) — returns the implementation ABI for proxies. Args: |
Chains: ethereum, base, arbitrum, optimism, polygon, bsc.
Every tool also accepts an optional x_payment (base64 x402 payload) that is
forwarded as the X-PAYMENT header to settle the call and return the real result.
Humans can instead prepay by card and use an X-FabTally-Key credit key against
the HTTP API.
Related MCP server: gulltoppr
Transports
stdio (portable):
npx fabtally-decode-mcp(bin:fabtally-decode-mcp)streamable-http (hosted):
https://decode.fabtally.com/mcp
Config: FABTALLY_DECODE_BASE (default https://decode.fabtally.com).
Read-only, keyless, stateless, descriptive. Operated by Sunstone Soft (fabtally.com). Not a security guarantee or financial advice.
Available Tools
4 toolsabi_fetchFetch a contract's verified ABI + proxy resolution (paid $0.002)AInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc. | |
| address | Yes | Contract address (0x + 40 hex). | |
| x_payment | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the paid nature ($0.002 USDC on Base), the x402 challenge when payment is omitted, the need to pass x_payment to settle, and the proxy-resolution behavior returning implementation ABI. It also lists verification sources (Sourcify/Blockscout). This is comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the critical payment notice, then delivers the purpose and output summary in a compact, well-organized manner. Every sentence contributes meaningful information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even with no output schema, the description enumerates what will be returned (ABI JSON, verification status/source, signatures, proxy implementation) and explains the 402 challenge flow. This gives the agent a full picture of expected behavior and edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with detailed descriptions for chain, address, and x_payment. The description adds context about proxy resolution and verification metadata but does not introduce new parameter meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch the verified ABI + metadata for a contract' with a specific verb and resource. It also explicitly lists expected outputs (ABI JSON, verification status, function/event signatures, proxy resolution), distinguishing it from sibling decode/selector tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: provide {address, chain} to get the ABI. It explains the payment flow and challenge behavior. However, it does not explicitly mention when not to use this tool versus the decode or selector siblings, though the purpose is distinct enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decode_calldataDecode a function call's calldata (paid $0.002)AInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Contract address the call targets (optional; enables verified-ABI resolution). | |
| abi | No | Optional contract ABI (JSON array or JSON string). If omitted, the ABI is resolved from the verified source (Sourcify/Blockscout) or 4byte.directory. | |
| data | Yes | Calldata (0x hex, at least the 4-byte selector). | |
| chain | Yes | EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc. | |
| x_payment | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the paid nature ($0.002), the x402 challenge when unpaid, and the resolution order (ABI, verified source, 4byte.directory). It also highlights nested argument support, which is behavioral context beyond a simple decode.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. The payment warning is front-loaded, followed by purpose and behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description explains the result includes selector signature and typed arguments. It covers payment behavior and resolution order but does not explicitly describe the response JSON shape or error cases, which would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have schema descriptions (100% coverage), so the baseline is 3. The description adds a compact input template ('Give {chain, to?, data, abi?}') but does not substantively explain parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool decodes a contract function call, resolving the 4-byte selector and producing typed arguments. It distinguishes itself from siblings like decode_log (events) and selector_lookup by focusing on calldata decoding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this vs sibling tools is given. The description implies usage by explaining input format and payment behavior, but does not mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decode_logDecode event logs to typed JSON (paid $0.003)AInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| abi | No | Optional contract ABI (JSON array or JSON string). If omitted, the ABI is resolved from the verified source (Sourcify/Blockscout) or 4byte.directory. | |
| data | No | Log data field (0x hex) holding the non-indexed args. | |
| chain | Yes | EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc. | |
| topics | No | Log topics array (topic0 is the event signature hash for non-anonymous events). | |
| address | No | Contract address of a single log (used with topics + data). | |
| tx_hash | No | Transaction hash (0x + 64 hex) — decodes every event log in the tx. | |
| x_payment | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It thoroughly discloses payment requirements (x402 challenge, x_payment settlement), ABI resolution behavior (Sourcify/Blockscout + 4byte), and edge-case handling (tuples, arrays, anonymous events, indexed vs non-indexed). This is exceptionally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with the crucial 'PAID' flag. Each sentence adds necessary information: payment, input modes, return details, ABI resolution, and 402 behavior. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must fully explain behavior and return values. It does so: it describes the return fields (name, canonical signature, named/typed args), covers complex ABI cases, explains payment flow, and identifies the ABI resolution path. This is complete for a moderately complex paid tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining how parameters combine (tx_hash vs address+topics+data), what 'data' means (non-indexed args), and the x_payment flow (omitting returns 402 challenge, supplying settles via X-PAYMENT header). This goes beyond schema descriptions without being redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: decode EVM event logs into typed JSON. It specifies two input modes (tx_hash or address+topics+data) and what it returns (event name, signature, args), distinguishing it from sibling tools like decode_calldata by explicitly targeting event logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is clear: it tells you exactly when to pass tx_hash vs address/topics/data, and when abi is optional. It does not explicitly mention alternatives or exclusion cases, but the 'FLAGSHIP' framing and event-log focus imply when to choose it over decode_calldata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
selector_lookupResolve a selector or event topic to a signature (paid $0.001)AInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | A 4-byte function selector (0x + 8 hex) or a 32-byte event topic hash (0x + 64 hex). | |
| x_payment | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden. It transparently covers the paid nature ($0.001, x402, USDC), external data sources (4byte.directory + openchain.xyz), collision behavior ('all matches (selectors can collide)'), and the verified flag. It does not describe failure modes or rate limits, but key behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the cost and payment context, followed by operation and output/payment behavior. It is efficient and every sentence earns its place, though it is slightly dense with technical details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers input formats, external services, collision handling, verified flag, and the two-step payment challenge flow. Since there is no output schema, it gives a sufficient sense of what is returned. It omits the exact response shape and edge-case handling, but is adequate given the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for both 'selector' and 'x_payment'. The description restates the payment flow but adds no unique parameter semantics beyond what the schema already provides. Baseline 3 is appropriate because the schema handles the parameter documentation fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the action ('Resolve') and the exact resource ('4-byte function selector (0x + 8 hex) OR a 32-byte event topic hash (0x + 64 hex)') to 'human-readable signature(s)'. This distinguishes it from sibling decoder tools like decode_calldata or decode_log by focusing on hash-to-signature lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use the tool (you have a selector or event topic hash) and explains the payment workflow ('Without payment returns the x402 challenge; pass x_payment to settle'). However, it does not explicitly mention alternatives or when not to use it, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.0.0- First observed
abi_fetch - First observed
decode_calldata - First observed
decode_log - First observed
selector_lookup
TDQS
Each tool targets a distinct operation: log decoding, calldata decoding, selector/topic resolution, and ABI fetching. The inputs and outputs are clearly differentiated, so an agent would have no trouble selecting the right tool for a given task.
All tool names use lowercase snake_case, but the verb/noun order is inconsistent: decode_log and decode_calldata are verb_noun, while selector_lookup and abi_fetch are noun_verb. This is a minor deviation from a uniform pattern, but the names still read predictably.
With 4 tools, the server is well-scoped for its purpose of decoding EVM data. Each tool covers a distinct aspect of the decoding workflow, and there is no redundancy or bloat.
The tool set covers the full decoding lifecycle: fetching ABIs, resolving selectors/topics, decoding calldata, and decoding event logs. There are no obvious gaps for typical EVM decoding tasks, and the tools work together as a complete pipeline.
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 Connectors
Decode any Base tx: plain English, strict JSON, risk flags, no LLM. 50 free/day per IP, then $0.02.
Pay-per-call (x402/USDC-Base) web + crypto data tools for AI agents: audit, extract, crypto, DeFi.
Free token-safety scans + paid x402 verdicts, signals, radar & EVM swap quotes for AI agents.
Free token-safety scans + paid x402 verdicts, signals, radar & EVM swap quotes for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceThe x402 ecosystem's read MCP for Base. Verify on-chain USDC settlements, parse publisher manifests, and audit x402 payment receipts from any MCP-compatible AI agent.111562MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to resolve smart contract ABIs, read, encode, simulate, and prepare transactions across multiple blockchains via a REST API or MCP server, with no signing required.-
- 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
- AlicenseAqualityCmaintenanceEnables AI agents to access crypto/web3 data across 5 chains with pay-per-call billing in USDC via x402, no API key required, and built-in spend caps.3647MIT
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/zvmzaretsky/onchain-decode-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server