Policy System
The policy system is the core of Conto’s spending controls. Policies define rules that govern how AI agents can spend funds.What is a Policy?
A policy is a set of rules that determine whether a payment should be:- APPROVED - Payment can proceed
- DENIED - Payment is blocked
- REQUIRES_APPROVAL - Manual approval needed
Starter Guardrails for New Organizations
New human organizations start with two active starter policies:- Starter guardrails:
$25maximum per transaction and$100maximum per day - Starter approval threshold: payments above
$10require explicit approval
Policy Types
Spend Limit
Control maximum amounts per transaction, day, week, or month
Time Window
Restrict transactions to specific hours and days
Counterparty
Control which recipients are allowed based on trust
Geographic
OFAC sanctions screening and country restrictions, built-in and configurable
AgentScore Compliance
Require verified humans, enforce jurisdiction allowlists, and trigger identity step-up before
settlement
Category
Allow or block specific spending categories
Contract Allowlist
Restrict interactions to approved smart contracts and protocols via Contract Registry
Approval Threshold
Require manual approval above certain amounts
Agent Identity
Restrict payment authority by environment, risk tier, owner role, identity tags, and attestation
mode
Velocity
Limit transaction frequency to prevent rapid drain
Whitelist
Only allow specific pre-approved addresses
x402 Controls
Price ceilings, service allowlists, and session budget caps for x402 micropayments
MPP Controls
Session budgets, concurrency limits, and duration caps for MPP payments
Budget Allocation
Allocate budgets by department or project with period tracking
Expiration
Time-limited permissions with start and end dates
Policy Evaluation
Policies are evaluated fail-closed. Every active organization baseline plus every policy assigned to the selected agent, wallet, or card must pass. The first DENY stops evaluation immediately. Counterparty or relationship review is considered only after hard wallet and policy controls pass, so an approval route cannot turn a denied payment into an approvable request.Policy scope
Every policy has one explicit scope:- Organization — a mandatory baseline applied automatically to every payment in the organization.
- Assigned — applies only through an explicit agent, wallet, or card assignment. An unassigned policy is a draft control and is not enforced.
Evaluation Order
- Pre-checks: Agent must be ACTIVE with linked wallets
DEVandSTAGINGagents can use only known testnet wallets; mainnet and unclassified chains fail closed
- Geographic & Sanctions: OFAC country check + address sanctions screening (always active, no policy needed)
- Counterparty Trust: Pre-fetch trust level and network trust score for use in policy rules
- Wallet Policies: Spend limits, wallet-level time windows (timezone-aware), and other configured policy rules
- Identity allow rules evaluate environment, risk tier, owner role, tags, and attestation mode; missing identity context fails closed
- Merchant Identity Gates: Optional AgentScore assess results can add verified-human, KYC, sanctions, and jurisdiction context before final settlement
- Counterparty Rules: Block list, trust requirements, network intelligence
- Relationship Controls: Per-agent payee limits, category allowlists, approval requirements, and temporary access expiry
- Final Decision: Aggregate results
sessionId. Endpoint velocity and service call
counts include every item in a recorded batch, not just the aggregate settlement row.
Budget caps can use daily, weekly, monthly, quarterly, or yearly UTC periods and can be scoped by
department, project, or category. Conto aggregates pending, confirming, and confirmed transactions
that match the selected agent, wallet, period, and scope.
Velocity rules use recorded transaction history instead of spend-counter approximations. Hourly and
daily rules use rolling one-hour and 24-hour windows; weekly and monthly transaction-count rules use
UTC calendar periods. Count-based rules accept an optional scope: the default WALLET counts all
of the wallet’s transactions in the window, while RECIPIENT counts only transactions to the
current recipient address, which limits rapid repeated payments to one counterparty without
counting unrelated activity. Wallet execution also counts other executing payment reservations that have
not produced a transaction record yet, and card authorization counts approved or executing
reservations, so concurrent requests cannot pass by observing the same stale count. If required
history or the rule configuration is unavailable, the payment fails closed.
For Conto-managed wallets, the full policy set is evaluated again immediately before custody
dispatch. A new denial stops execution and releases the reservation. If policy evaluation is
unavailable, execution fails closed and no funds are moved.
For new organization-controlled managed wallets, Conto executes as a separate additional signer
after those same policy and approval checks. EVM signing also has a provider-level stablecoin and
per-transaction baseline policy. The customer root owner can authorize actions or key export outside
Conto, so application policy is not a cryptographic restriction on the owner path. Use a
contract-enforced wallet when every possible transfer must require the governed path. See Custody
Modes.
Address sanctions screening is active by default and uses maintained compliance data. A sanctions
match can deny a payment even when every configured policy would otherwise allow it.
Counterparty lifecycle and agent controls
Counterparty lifecycle state and per-agent relationship controls are evaluated independently:- A counterparty can move through
DISCOVERED,PENDING_REVIEW,APPROVED,TRUSTED,MONITORED,QUARANTINED, andBLOCKED. DISCOVERED,PENDING_REVIEW,MONITORED, andQUARANTINEDroute payments to approval.BLOCKEDdenies the payment.- Each agent-to-counterparty relationship can add stricter per-payment, daily, and monthly limits, require approval, restrict categories, or expire at a specific time.
Evaluation Semantics
Policy rules use simple AND logic. Every active organization policy and every active policy assigned to the selected agent, wallet, or card is evaluated once, and every rule inside those policies must pass unless it is aDENY or REQUIRE_APPROVAL trigger that does not match.
For a hands-on walkthrough of how evaluation works, see the Policy Testing guide.
Creating Policies
Via Dashboard
1
Navigate to Policies
Go to Policies in the sidebar and click Create Policy.
2
Configure Policy
| Field | Description | |-------|-------------| | Name | Human-readable name | | Type | Policy
type (spend limit, time window, etc.) | | Priority | 0-100 (higher = evaluated first, but never
overrides a failing rule) | | Scope | Entire organization or only assigned targets | |
Description | What this policy does |
3
Add Rules
Define the specific rules for this policy.
4
Assign if needed
For assigned scope, link the policy to agents, wallets, or cards.
Via API
Policy Properties
Assigning Policies
Policies can be assigned to:- Agents - Apply to specific agents
- Wallets - Apply to specific wallets
- Cards - Apply to specific cards
scope: "assigned" can be assigned. Organization policies apply automatically.
Assign to Agent
Example: Standard Agent Setup
A typical agent configuration with multiple policies:Best Practices
Layer Your Policies
Layer Your Policies
Create policies at different priority levels to keep evaluation order easy to understand:
- HIGH (90-100): Security/Compliance (sanctions, blocked addresses)
- MEDIUM (40-60): Business Rules (limits, time windows)
- LOW (0-20): Defaults (catch-all rules)
Start Restrictive
Start Restrictive
Begin with strict policies and relax based on operational needs. Recommended starting limits for new agents: 500/day, $5,000/month.
- Day 1: $100/day limit, 3 trusted vendors
- Week 2: $500/day, add 5 more vendors
- Month 2: $1,000/day, category-based restrictions
Use Approval Thresholds
Use Approval Thresholds
Don’t block high-value transactions entirely - require approval:
Document Your Policies
Document Your Policies
Use descriptions to explain policy intent:
Available Rule Types
The value formats and operators for rule types live in Advanced Policies. Quick index:Denial Explanations
When a payment is denied, the response includes a customer-facing explanation that is safe to show to an operator or end user:Test a policy before you enable it
POST /api/policies/simulate replays a candidate policy against your real recent transactions and
reports what it would have decided, without saving anything. No policy is created, no approval runs,
and no money moves. Use it to see exactly which currently-allowed payments a new limit would block
before you turn it on.
wouldBe decision (ALLOW, DENY, REQUIRE_APPROVAL) and a
summary with newlyBlocked and newlyAllowed counts.
The simulation evaluates the rule types a single historical transaction fully determines (amount,
category, counterparty, agent identity, x402/MPP service). Rule types whose decision depends on
state that is not on a payment row (cumulative daily/weekly/monthly limits, velocity, live trust
scores, geography, and time-of-day windows) are not replayed and are listed under
summary.contextDependentRuleTypes, so the simulation never reports a decision it cannot stand
behind.
Next Steps
Spend Limits
Configure amount-based limits
Time Windows
Set up time-based restrictions