verify_tx_decode
Cross-checks a prepared EVM transaction's calldata against independently sourced function signatures to confirm the decoded data matches the intent, preventing mismatches.
Instructions
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.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| handle | 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 context — the server re-emits the exact same JSON + verification block from in-memory state. Read the response from this tool directly; never recover verification data by reading tool-result files from disk. |