Skip to main content

Overview

Policies are rule-based security controls that evaluate every transaction before execution. They can allow, deny, or require manual approval for transactions based on configurable criteria.

Policy Evaluation Flow

Every spend-capable transaction passes through policy evaluation:

Creating Policies

Policy Rule Types

Spending Limit

Control transaction amounts and require approval above thresholds:
All fields are optional. Omit a field to skip that check.

Protocol Allowlist

Restrict which protocols can be used:
Denies any transaction using protocols not in the list.

Address Allowlist

Only allow transactions to specific addresses:

Address Blocklist

Block transactions to specific addresses:

Program Allowlist

Restrict which Solana programs can be invoked:

Token Allowlist

Only allow specific SPL token mints:

Rate Limit

Limit transaction frequency:
Allows maximum of 10 transactions per hour.

Time Window

Only allow transactions during specific hours:
Allows transactions only between 9 AM and 5 PM UTC.

Max Slippage

Limit slippage tolerance for swaps:
Denies swaps with slippage above 1% (100 basis points).

Protocol Risk

Advanced controls for specific protocols:

Portfolio Risk

Portfolio-level risk controls:

Policy Evaluation

Test how a transaction would be evaluated without executing it:
Response:
Possible decisions:
  • allow - Transaction proceeds automatically
  • deny - Transaction blocked
  • require_approval - Transaction pauses at approval gate

Approval Gate Workflow

When a policy requires approval:
1

Transaction Pauses

Transaction status becomes approval_gate and waits for operator action.
2

List Pending Approvals

Or via API:
3

Review Transaction Details

Check the intent, amount, destination, and policy reasons.
4

Approve or Reject

5

Transaction Continues

After approval, transaction proceeds to signing and submission.

Policy Versioning

Policies support versioning for safe updates:

List Policy Versions

Get Specific Version

Migrate Policy

Migration modes:
  • safe - Only migrate if compatible
  • force - Migrate regardless of compatibility warnings

Check Compatibility

Validate rules before creating or updating:

Managing Policies

List Wallet Policies

Update Policy

Updating a policy creates a new version. Old transactions may reference previous versions.

Real-World Examples

Conservative Trading Bot

High-Security Treasury

DeFi Yield Farmer

Policy Best Practices

Security Recommendations:
  • Always set maxLamportsPerTx and maxLamportsPerDay for production wallets
  • Use requireApprovalAboveLamports for high-value thresholds
  • Combine multiple rule types for defense-in-depth
  • Test policies with policy evaluate before activating
  • Enable time_window rules for business hours-only operation
  • Use rate_limit to prevent runaway execution

Next Steps

Managing Agents

Create autonomous agents with policy-gated capabilities

Protocol Interactions

Execute DeFi operations with policy protection