| to | No | transaction: the target contract | |
| tx | No | xrpl: the unsigned transaction JSON (TransactionType, Account, Destination, Amount, …) | |
| data | No | transaction: 0x-prefixed calldata | |
| from | No | transaction or message, optional: your wallet address; the transaction is then simulated (what really leaves and arrives; orange HIDDEN_APPROVAL, SIMULATION_NFT_OUT, SIMULATION_FAILS) and its recipients are compared with who this wallet paid before (red ADDRESS_POISONING for a look-alike) | |
| type | Yes | What the agent is about to sign; message = a plain personal_sign / eth_sign message in message; solana = a Solana transaction in transaction; xrpl = an unsigned XRP Ledger transaction in tx; algorand = an Algorand transaction in transaction, or a group in transactions | |
| x402 | No | optional, EIP-3009 payments only: the x402 payment requirements you are paying ({ accepted: { scheme, network, amount, asset, payTo, maxTimeoutSeconds, extra } }, one entry of the 402's accepts); red when the signature pays more, someone else, another token or chain | |
| token | No | approval: the token contract | |
| value | No | transaction: native value in wei | |
| amount | No | approval: amount in base units (0 = revoke) | |
| intent | No | optional: what you are trying to do, in one sentence (e.g. "swap 10 USDC for ETH on Uniswap"); orange INTENT_MISMATCH when signing would do more or something else | |
| method | No | message: how it is signed (default personal_sign); eth_sign is always red | |
| origin | No | optional: the site asking for the signature or transaction (URL or hostname); a domain under 30 days old is orange | |
| chainId | No | EVM chain id, required for approval, transaction and signature: 1, 10, 56, 137, 8453, 42161 (8453 = Base); optional for message | |
| message | No | message: the text or 0x-hex about to be signed; a Sign-In with Ethereum message for another site than origin is red, unreadable bytes are orange | |
| network | No | xrpl: xrpl:0 (mainnet, default) or xrpl:1 (testnet) | |
| spender | No | approval: who gets the allowance | |
| typedData | No | signature: the exact eth_signTypedData_v4 payload (Permit, Permit2, EIP-3009 x402 payment, Seaport) | |
| transaction | No | solana: the base64 wire transaction about to be signed; decoded and simulated (red SOLANA_TOKEN_ACCOUNT_TAKEOVER, SOLANA_ACCOUNT_ASSIGN; orange SOLANA_UNLIMITED_DELEGATE, SOLANA_DURABLE_NONCE, HIDDEN_APPROVAL, SIMULATION_FAILS). algorand: one base64 msgpack transaction (unsigned or signed); red ALGORAND_REKEY, ALGORAND_CLOSE_ACCOUNT, ALGORAND_ASSET_CLOSE, ALGORAND_FAKE_STABLECOIN; simulated | |
| transactions | No | algorand: an atomic group, each a base64 msgpack transaction; send the whole group so every transaction is checked | |