Independent server-side cross-check of a prepared EVM tx's calldata. Fetches the function signature(s) registered for the 4-byte selector on 4byte.directory (a public registry), re-decodes the calldata via viem against each candidate, and re-encodes to prove the signature describes the exact call...
AI agents call verify_tx_decode to retrieve information from VaultPilot MCP without modifying anything — typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.
| Parameter | Type | Required | Description |
|---|---|---|---|
handle | string | Yes | Opaque handle returned by any prepare_* tool. Use this when the original prepare_* response (and its VERIFY-BEFORE-SIGNING block) has been dropped from your con |
Parameters from the server's own tool schema.
Even though verify_tx_decode only reads data, uncontrolled read access leaks sensitive information and racks up API costs — an agent caught in a retry loop can make thousands of calls a minute without anyone noticing.
Attacks that exploit this kind of access
Independent server-side cross-check of a prepared EVM tx's calldata. Fetches the function signature(s) registered for the 4-byte selector on 4byte.directory (a public registry), re-decodes the calldata via viem against each candidate, and re-encodes to prove the signature describes the exact calldata bytes losslessly. Returns a VerifyDecodeResult whose summary field is pre-written for end-user consumption — the orchestrator should relay it verbatim. Status values: match (independent decode agrees with local ABI), mismatch (function-name disagreement — DO NOT SEND), no-signature / error / not-applicable (no independent check possible; fall back to the swiss-knife URL). On TRON, returns not-applicable — TRON transactions carry no 4-byte selector so this cross-check doesn't apply. Handle is the same opaque ID returned by any prepare_* tool. NEVER do this check by scripting ad-hoc WebFetches to 4byte or swiss-knife; always call this tool so the check runs through a single auditable code path. This is deliberately more expensive than a 4byte-selector lookup — it proves the FULL calldata (not just the function name) is consistent with the independent signature. It is categorised as a Read tool in the VaultPilot MCP MCP Server, which means it retrieves data without modifying state.
verify_tx_decode accepts 1 parameter: handle. Required: handle. The full parameter table on this page comes from the server's own tool schema.
Register the VaultPilot MCP server in PolicyLayer and add a rule for verify_tx_decode: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches VaultPilot MCP. Nothing to install.
verify_tx_decode is a Read tool with low risk. Read-only tools are generally safe to allow by default.
Yes. Add a rate_limit block to the verify_tx_decode rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for verify_tx_decode. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
verify_tx_decode is provided by the VaultPilot MCP server (vaultpilot-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.