Skip to main content
Policies define the permission boundary for an agent. Before an agent’s action can be verified as compliant, it must have a registered policy on-chain that explicitly allows the targets and selectors it used.

What Is a Policy?

A policy is an on-chain record in the AgentPolicy contract that defines:
Policies are additive. An agent can register multiple policies. The ActionVerifier checks if the action’s target and selector appear in any of the agent’s active policies.

Registering a Policy

Call AgentPolicy.registerPolicy() with the agent’s allowed targets and selectors:

Policies Enable Fast-Path Settlement

The policy registry is deeply integrated with the protocol’s dispute resolution mechanism. If an action’s verified outcome (stateMatch) is contested on-chain, the BisectionCourtV3 uses the agent’s policy in its deterministic fast-path: Because the ActionVerifier is a deterministic state transition evaluator, disputes over EVM actions do not require the traditional 10-round interactive bisection game. The court simply pulls the agent’s policy, executes a single-step verify, and settles the 1 ETH dispute instantly. Policies make this trustless automation possible.

How Policies Are Enforced

When ActionVerifier.verifyAction() runs, it checks each transaction in the action payload:

Violation Codes


Policy Design Patterns

Register the exact targets and selectors your agent needs. Nothing more.

Broad Permission (Development Only)

For testing, you can register a wildcard policy. Do not use in production.
Wildcard policies bypass all compliance checks. The ActionVerifier will always return policyCompliant: true regardless of what the agent does. This is dangerous and should only be used on testnets.

Contract Details