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
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
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
Velocity
Limit transaction frequency to prevent rapid drain
Whitelist
Only allow specific pre-approved addresses
x402 Controls
Price ceilings, service allowlists, and 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
Card Payment
MCC restrictions, merchant filtering, and amount limits for card payments
Policy Evaluation
Policies are evaluated in a fixed order. When multiple policies are assigned, all must pass — the first DENY stops evaluation immediately.Evaluation Order
- Pre-checks — Agent must be ACTIVE with linked wallets
- 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, time windows (timezone-aware), and database policy rules
- Counterparty Rules — Block list, trust requirements, network intelligence
- Relationship Limits — Per-counterparty spend limits from
AgentRelationshiprecords - Final Decision — Aggregate results
| Outcome | Condition |
|---|---|
| DENIED | Any check denies |
| REQUIRES_APPROVAL | All pass but one requires approval |
| APPROVED | All checks pass |
Creating Policies
Via Dashboard
Configure Policy
| Field | Description |
|---|---|
| Name | Human-readable name |
| Type | Policy type (spend limit, time window, etc.) |
| Priority | 0-100 (higher = evaluated first) |
| Description | What this policy does |
Via API
Policy Properties
| Property | Type | Description |
|---|---|---|
name | string | Human-readable name |
description | string | Detailed description |
policyType | enum | Type of policy |
priority | number | Evaluation order (0-100) |
isActive | boolean | Whether policy is enforced |
rules | array | Specific rules for this policy |
Assigning Policies
Policies can be assigned to:- Agents - Apply to specific agents
- Wallets - Apply to specific wallets
- Cards - Apply to specific payment cards
Assign to Card
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:
- 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
Each policy type supports specific rule types. Here is the complete set:Spend Limits
Spend Limits
| Rule Type | Description |
|---|---|
MAX_AMOUNT | Per-transaction limit |
DAILY_LIMIT | Daily cumulative spend |
WEEKLY_LIMIT | Weekly cumulative spend |
MONTHLY_LIMIT | Monthly cumulative spend |
BUDGET_CAP | Budget allocation with period |
Time Controls
Time Controls
| Rule Type | Description |
|---|---|
TIME_WINDOW | Allowed hours (start/end) |
DAY_OF_WEEK | Allowed days |
DATE_RANGE | Valid date range |
BLACKOUT_PERIOD | Block during maintenance/holidays |
MAINTENANCE_WINDOW | Alias for blackout period |
BLOCKED_TIME_WINDOW | Alias for blackout period |
Counterparty & Address
Counterparty & Address
| Rule Type | Description |
|---|---|
ALLOWED_COUNTERPARTIES | Whitelist recipient addresses |
BLOCKED_COUNTERPARTIES | Blacklist recipient addresses |
TRUST_SCORE | Minimum trust score threshold |
COUNTERPARTY_STATUS | Required trust level |
Category & Contract
Category & Contract
| Rule Type | Description |
|---|---|
ALLOWED_CATEGORIES | Whitelist spending categories |
BLOCKED_CATEGORIES | Blacklist spending categories |
CONTRACT_ALLOWLIST | Whitelist smart contracts, protocols, categories, and function selectors |
ALLOWED_CONTRACTS | Alias for contract allowlist |
PROTOCOL_ALLOWLIST | Alias for contract allowlist |
Geographic & Compliance
Geographic & Compliance
| Rule Type | Description |
|---|---|
GEOGRAPHIC_RESTRICTION | Country restrictions (OFAC) |
VELOCITY_LIMIT | Transaction frequency limits |
REQUIRE_APPROVAL_ABOVE | Approval threshold for high-value transactions |
FAIRSCALE_MIN_SCORE | Minimum Fairscale reputation score (Solana) |
OFAC sanctions screening and address sanctions checks run automatically — no policy rule needed.
GEOGRAPHIC_RESTRICTION rules add configurable country allow/block lists on top of the built-in checks.Card Payment
Card Payment
| Rule Type | Description |
|---|---|
CARD_ALLOWED_MCCS | Whitelist merchant category codes |
CARD_BLOCKED_MCCS | Blocklist merchant category codes |
CARD_ALLOWED_MERCHANTS | Whitelist merchant names |
CARD_BLOCKED_MERCHANTS | Blocklist merchant names |
CARD_MAX_AMOUNT | Maximum card payment amount |
x402 Protocol
x402 Protocol
| Rule Type | Description |
|---|---|
X402_PRICE_CEILING | Max amount per API call |
X402_MAX_PER_ENDPOINT | Max spend per endpoint per period |
X402_MAX_PER_SERVICE | Max spend per service domain per period |
X402_ALLOWED_SERVICES | Whitelist service domains |
X402_BLOCKED_SERVICES | Blocklist service domains |
X402_ALLOWED_FACILITATORS | Whitelist facilitator addresses |
X402_VELOCITY_PER_ENDPOINT | Rate limit per endpoint |
X402_SESSION_BUDGET | Max spend per session |
MPP Protocol
MPP Protocol
| Rule Type | Description |
|---|---|
MPP_PRICE_CEILING | Max amount per MPP call |
MPP_MAX_PER_ENDPOINT | Max spend per endpoint per period |
MPP_MAX_PER_SERVICE | Max spend per service domain per period |
MPP_ALLOWED_SERVICES | Whitelist service domains |
MPP_BLOCKED_SERVICES | Blocklist service domains |
MPP_VELOCITY_PER_ENDPOINT | Rate limit per endpoint |
MPP_SESSION_BUDGET | Max spend per session |
MPP_MAX_SESSION_DEPOSIT | Max deposit per session |
MPP_MAX_CONCURRENT_SESSIONS | Max concurrent sessions |
MPP_MAX_SESSION_DURATION | Max session duration (hours) |
MPP_BLOCK_SESSION_INTENT | Block session intent (one-time only) |
MPP_ALLOWED_METHODS | Whitelist payment methods |
Violation Details
When a payment is denied, detailed violation info is returned:source field indicating whether the denial came from a wallet-level limit ("wallet_limit") or a policy rule ("policy_rule"). Policy rule violations also include policyName.
Next Steps
Spend Limits
Configure amount-based limits
Time Windows
Set up time-based restrictions