Policy checks
Developer Preview
Nava Guardian applies deterministic checks to the decoded action and the agent's active policy. This catalogue lists the checks available in the Developer Preview.
Available in the preview
Shared checks
These checks apply to Uniswap and Hyperliquid actions.
| Check | What it verifies |
|---|---|
| Venue | The active policy contains a configuration block for the proposed venue. |
| Network | The EVM chain or Hyperliquid network is allowed by the venue policy. |
| Asset | Every referenced token or resolved market belongs to the policy's asset universe. |
| Trade side | The proposed buy or sell side is allowed for the resolved asset when a side constraint is configured. |
| Sanctions | Referenced addresses do not appear on Nava Guardian's sanctions data or the policy's additional denylist. |
Uniswap checks
| Check | What it verifies |
|---|---|
| Contract and function | The target contract and decoded function selector are allowed when the policy configures those allowlists. |
| Recipient | The effective recipient is allowed by the policy or is one of the agent's registered wallets. |
| Slippage protection | The decoded swap contains a non-zero minimum output or a finite maximum input. |
| Sink recipient | The effective recipient is not a known zero, burn, or dead address. |
| Per-transaction USD cap | The Uniswap action's summed input notional does not exceed perTxCapUsd; missing price data fails closed. |
Hyperliquid checks
| Check | What it verifies |
|---|---|
| Execution price bound | A Hyperliquid order carries a finite, positive limit price. |
| Leverage | A Hyperliquid updateLeverage action does not set leverage above maxPortfolioLeverage. This preview check does not evaluate total portfolio leverage across open positions. |
Reading check results
| Status | Meaning |
|---|---|
passed | The check ran and the proposed action satisfied it. |
failed | The check ran and rejected the proposed action. |
not_checked | The check did not apply or the corresponding optional policy constraint was not configured. |
For the wire names returned in checks[], see the Nava Guardian API.