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
- CLI
- API
- SDK
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: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:Time Window
Only allow transactions during specific hours:Max Slippage
Limit slippage tolerance for swaps: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:allow- Transaction proceeds automaticallydeny- Transaction blockedrequire_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
3
Review Transaction Details
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
safe- Only migrate if compatibleforce- Migrate regardless of compatibility warnings
Check Compatibility
Validate rules before creating or updating:Managing Policies
List Wallet Policies
Update Policy
Real-World Examples
Conservative Trading Bot
High-Security Treasury
DeFi Yield Farmer
Policy Best Practices
Security Recommendations:
- Always set
maxLamportsPerTxandmaxLamportsPerDayfor production wallets - Use
requireApprovalAboveLamportsfor high-value thresholds - Combine multiple rule types for defense-in-depth
- Test policies with
policy evaluatebefore activating - Enable
time_windowrules for business hours-only operation - Use
rate_limitto prevent runaway execution
Next Steps
Managing Agents
Create autonomous agents with policy-gated capabilities
Protocol Interactions
Execute DeFi operations with policy protection