Skip to main content
Glama

Decode calldata: function and arguments of an EVM call

evm_decode_calldata
Read-only

Decode EVM transaction calldata into the function and its arguments with viem: give the function signature (transfer(address,uint256)), or leave it out to try common ERC-20, ERC-721, ERC-1155, WETH, permit and multicall functions by selector. Numbers come back as decimal strings. Use to read what a pending or past transaction does before signing; get calldata from eth_tx. A selector that does not match is 422, uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

Input Schema

NameRequiredDescriptionDefault
dataYes0x calldata (selector plus ABI-encoded arguments), up to 8 KB
signatureNoOptional function signature such as transfer(address,uint256)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses the 422 error for unmatched selectors, that failed calls are uncharged, per-call pricing ($0.01 via x402 USDC or card key with 25 free), and that repeats are billed because the call is non-idempotent — consistent with idempotentHint=false. Also notes how numbers are returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and the signature-optional behavior, and every sentence carries information. Slightly overpacked, with the billing point restated ('each call is charged, so repeats are not free') after the free-failure clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by explaining the returned function/arguments and decimal-string number formatting, plus error and billing semantics. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains the optional signature's role and gives the selector-matching fallback behavior for ERC-20/721/1155/WETH/permit/multicall when it is omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('decode EVM transaction calldata into the function and its arguments') and names the underlying library, which distinguishes it clearly from sibling helpers like evm_checksum and evm_verify_signature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use context ('read what a pending or past transaction does before signing') and points to the upstream source of the input ('get calldata from eth_tx'). No explicit exclusion against a sibling, but the domain is narrow enough that guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.