Decode calldata and compare with declared intent (free)
check_calldata_intentAnti blind-signing. EVM: decodes what a transaction's calldata will actually do (ERC-20 transfer/approve/permit, setApprovalForAll, ownership transfer, native transfer). Solana: decodes a whole base64 transaction (SPL Token / Token-2022 Transfer, TransferChecked, Approve, SetAuthority, CloseAccount, Burn; System Transfer / Assign; ATA creation). Compares it with what you believe you are doing. EVM: pass intent:{action:'pay', to, amount} plus contract (the transaction's to) and data (hex calldata). Solana: pass network:'solana' and transaction (base64) instead of data. decision match = does what you declared; mismatch = different recipient/amount/asset, or an approval / authority change instead of a payment — do not sign; unknown = could not decode (including address-lookup-table accounts), which is not the same as safe.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | EVM only: 0x-prefixed hex calldata. | |
| value | No | EVM only: native value in wei (optional). | |
| intent | No | ||
| network | No | 'solana' to decode a Solana transaction; EVM chain name or CAIP-2 id otherwise (optional). | |
| contract | No | EVM only: the transaction's `to` field (token contract for ERC-20 payments, or the recipient for native transfers). | |
| transaction | No | Solana only: base64-serialized transaction or message. |