Skip to main content
Glama
clear-signing-mcp

clear-signing-mcp

Official
by B3Pay

Explain a transaction

explain_transaction
Read-onlyIdempotent

Explains EVM calls the way a wallet shows them: intent, filled-in sentence, labeled values, and attestation status. Use before proposing a transaction to preview what the person will see.

Instructions

Explain one EVM call, or an EIP-5792 batch of calls run in order, the way an ERC-7730 wallet shows it to a person: the intent, a sentence with the values filled in, and each labeled value, with the descriptor's attestation status. A call no descriptor covers is decoded with the contract's verified ABI from Sourcify where possible and marked NOT CLEAR-SIGNED. Use it before proposing any transaction, and show the person the result. Read-only: it signs and sends nothing.

Input Schema

NameRequiredDescriptionDefault
fromNoThe account that would send the calls
callsYesOne call, or a batch run in order
chainIdYesEIP-155 chain ID: 1 Ethereum, 8453 Base, 42161 Arbitrum One, 10 OP Mainnet, 11155111 Sepolia, 84532 Base Sepolia

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive, so safety is covered. Beyond that, the description discloses a genuinely non-obvious behavior: calls with no descriptor fall back to the contract's Sourcify-verified ABI and are marked NOT CLEAR-SIGNED. That fallback path and the attestation status materially shape how an agent should interpret and relay results.

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?

Two dense sentences with the core purpose front-loaded and no filler. The clause about Sourcify fallback is long but carries real information, so the density is justified rather than padded.

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?

There is no output schema, and the description compensates by describing exactly what comes back (intent, a filled-in sentence, labeled values, attestation status). Combined with the fallback-decoding caveat, an agent has everything needed to call this and present the result correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds a little meaning the schema doesn't: that the calls array is an EIP-5792 batch executed in order, which matters for interpreting multi-call input. It adds nothing for from or chainId beyond what the schema states.

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

Purpose4/5

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

States a specific verb and resource: explaining one EVM call or an EIP-5792 batch, rendered the way an ERC-7730 wallet shows it. It even sketches the output (intent, filled-in sentence, labeled values, attestation status). It does not explicitly name how it differs from simulate_transaction or explain_signature, so an agent must infer the boundary.

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?

'Use it before proposing any transaction, and show the person the result' gives a clear when-to-use trigger and even a workflow instruction. It stops short of exclusions or naming alternatives (e.g. use simulate_transaction when you only need success/failure), so the agent must reason about sibling selection itself.

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