The Financial pack provides critical guardrails for AI agents that handle payments, wire transfers, or any financial operations. It enforces transaction limits, currency restrictions, and cumulative spending caps to prevent unauthorized or excessive money movement.Use this pack for:
Rule ID:financial-transfer-limit-per-transactionWhat it does: Requires human approval for any single transaction over $10,000.Why it’s important: Large individual transactions represent significant financial risk. Even if an AI agent is authorized to make payments, transactions above a threshold should be reviewed by a human to prevent:
// This requires human approval:await transferFunds({ amount: 15000, currency: "USD", recipient: "vendor@example.com"});// User sees: "Approve transfer of $15,000 USD to vendor@example.com?"
Rule ID:financial-currency-allowlistWhat it does: Blocks transfers in currencies other than USD, EUR, and GBP.Why it’s important:
Prevents accidental transfers in wrong currencies
Reduces risk of currency conversion errors
Blocks potential money laundering through obscure currencies
Ensures compliance with your organization’s supported payment methods
Example blocked call:
// This is blocked:await transferFunds({ amount: 5000, currency: "BTC", // Cryptocurrency not in allowlist recipient: "wallet-address"});// Error: Unsupported currency BTC
Adding more currencies:
rules: - id: financial-currency-allowlist conditions: - field: arguments.currency operator: not_in value: - USD - EUR - GBP - JPY # Add Japanese Yen - CAD # Add Canadian Dollar
Rule ID:financial-cumulative-transfer-capWhat it does: Requires approval for additional transfers after a high-value transfer ($5,000+) within a 24-hour window.Why it’s important: An AI agent might be compromised or misused to drain accounts via multiple smaller transactions. This rule detects unusual spending velocity.How it works:
First transfer of $6,000: Allowed (if under per-transaction limit)
Second transfer attempt (same day): Requires approval
Window resets after 86,400 seconds (24 hours)
Example scenario:
// 10:00 AM - First transfer succeedsawait transferFunds({ amount: 6000, currency: "USD", recipient: "A" });// ✓ Allowed// 2:00 PM - Second transfer requires approvalawait transferFunds({ amount: 3000, currency: "USD", recipient: "B" });// ⏳ Requires approval (cumulative cap triggered)// Next day at 10:01 AM - Window reset, allowed againawait transferFunds({ amount: 6000, currency: "USD", recipient: "C" });// ✓ Allowed (new 24-hour window)