What does validate do?
Thevalidate command checks a transaction against the policy engine before your agent signs anything. If the policy allows it, you get an intentId. If it blocks, you get a blockReason. If it requires approval, you get an intentId and a prompt to wait.
Preflight mode (default, recommended)
Preflight validation is action-based. You describe what you want to do, and the policy engine evaluates it. No gas parameters, no calldata, no intentHash computation.Options
| Flag | Required | Description |
|---|---|---|
--action | Yes | Action type: transfer, approve, swap, or custom |
--reason | Yes | Plain-language explanation of why the agent is transacting |
--amount | No | Amount in token units |
--to | No | Destination address (0x…) |
--token | No | Token symbol (e.g. USDC) or contract address |
--chain | No | Chain name or chain ID |
Success output
Blocked output
blockReason code tells you exactly which policy check failed. See the block reasons reference for the full list.
Approval required
When the transaction triggers an approval workflow, the response includes theintentId and a next step:
mandate approve <intentId> to poll until the owner approves or rejects in the dashboard.
The reason field
Every validation requires a--reason. This is not optional decoration. The policy engine scans the reason for prompt injection patterns, anomalous behavior, and policy violations. A clear, specific reason (“Payment for March invoice from Acme Corp”) is more likely to pass than a vague one (“sending money”).
Raw mode (legacy)
Raw mode sends full EVM transaction parameters and computes anintentHash locally. Use this only for self-custodial flows where you build the transaction yourself.
Deprecated. Use preflight mode instead. Raw validation is kept for legacy self-custodial flows but will be removed in a future version.
Raw mode required flags
| Flag | Description |
|---|---|
--raw | Enable raw EVM validation |
--to | Contract or recipient address |
--nonce | Transaction nonce |
--gasLimit | Gas limit |
--maxFeePerGas | Max fee per gas (wei) |
--maxPriorityFeePerGas | Max priority fee per gas (wei) |
--reason | Why this transaction is being sent |
Raw mode optional flags
| Flag | Default | Description |
|---|---|---|
--calldata | 0x | Transaction calldata |
--valueWei | 0 | Value in wei |
--chainId | From credentials | Chain ID |
--txType | 2 | Transaction type |
--accessList | [] | Access list (JSON string) |
next field pointing to the event command for posting the txHash after broadcast.
Next Steps
Transfer Command
Shorthand for ERC20 transfers with automatic action mapping.
Wait for Approval
Poll until the owner approves a pending intent.
Validate Guide
End-to-end walkthrough of the validation flow.