Skip to content
LogoLogo

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.

CheckWhat it verifies
VenueThe active policy contains a configuration block for the proposed venue.
NetworkThe EVM chain or Hyperliquid network is allowed by the venue policy.
AssetEvery referenced token or resolved market belongs to the policy's asset universe. EVM identity is chain ID plus contract address; Hyperliquid indexes are resolved against the trusted venue catalogue.
Trade sideThe proposed buy or sell side is allowed for the resolved asset when a side constraint is configured.
SanctionsReferenced addresses do not appear on Nava Guardian's active sanctions dataset or the policy's additional denylist.
Per-transaction USD capThe summed input notional of Uniswap swaps and Hyperliquid orders does not exceed perTxCapUsd. Hyperliquid uses the trusted mark conservatively with the order limit; missing or stale prices fail closed.
Rolling 24-hour outflowThe action keeps the agent's rolling outflow, including the proposed Uniswap swap or Hyperliquid order, within max24hOutflowUsd. Accounting is maintained per venue rather than as one cross-venue pool; missing state or price data fails closed.

Guardian prefers the host-mounted sanctions dataset and can fall back to its bundled copy. Verdict evidence records the selected list source, version, and fetch time. If the active list is stale or unusable, the sanctions dependency fails closed as data_unavailable.

asset_identity_unresolved is a cross-cutting decode result. It means Guardian could not establish a trusted asset identity; it does not prove that a resolved asset violated the configured universe.

Uniswap checks

CheckWhat it verifies
Contract and functionFor a target included in contractAllowlist, the decoded selector is allowed by that contract's entry. An unlisted target is not_checked, not rejected by this optional check.
RecipientThe effective recipient is allowed by the policy or is one of the agent's registered wallets.
Slippage protectionThe decoded swap contains a non-zero minimum output or a finite maximum input.
Sink recipientThe effective recipient is not a known zero, burn, or dead address.

Hyperliquid checks

CheckWhat it verifies
Execution price boundA Hyperliquid order carries a finite, positive limit price.
LeverageA Hyperliquid updateLeverage action does not set leverage above maxUpdateLeverage.
Portfolio leverageThe proposed action keeps total Hyperliquid portfolio leverage within maxPortfolioLeverage. Missing or stale position state fails closed.
Protocol exposureWhen configured, the proposed action keeps exposure for each protocol key within maxExposurePerProtocol. Missing or stale position state fails closed.

Reading check results

StatusMeaning
passedThe check ran and the proposed action satisfied it.
failedThe check ran and rejected the proposed action.
not_checkedThe 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. For failure-code definitions and builder recovery behavior, see Failure modes and recovery.