Core Architecture

5 Fiduciary Gates

Every payment through Skalor must pass all 5 sequential gates before clearance. If any gate fails, the transaction is denied with a clear reason and the agent's spend is not recorded.

1
Kill Switch- Is the agent active?
2
Vendor Allowlist- Is the merchant authorized?
3
Per-Transaction Limit- Is this single payment within the cap?
4
Daily Budget- Is the agent within its 24h spend limit?
5
Human-in-the-Loop- Is this below the CFO approval threshold?
CLEARED - Payment authorized, spend recorded, transaction logged

Gate Details

1

Kill Switch

The first and most absolute gate. If the CFO deactivates an agent in the dashboard, every payment is instantly blocked. No exceptions.

Checks

  • Agent is_active must be true
  • Agent status must be 'active' (not paused, suspended, or revoked)

Tip: Use this as an emergency stop. Flip the kill switch in the dashboard to immediately freeze all spending by a compromised or misbehaving agent.

2

Vendor Allowlist

Controls which merchants/APIs the agent is allowed to pay. If the allowlist is empty, all vendors are allowed (open mode). If vendors are configured, only those domains pass.

Checks

  • If allowed_vendors is empty, all merchants pass (open mode)
  • If vendors are configured, the merchant URL hostname must match
  • Subdomain matching is supported (e.g. 'openai.com' matches 'api.openai.com')

Tip: Start with a restrictive allowlist (e.g. just 'api.openai.com' and 'api.anthropic.com') and expand as the agent proves trustworthy.

3

Per-Transaction Limit

Caps the maximum amount for any single payment. Prevents an agent from draining the budget in one transaction.

Checks

  • amount_usd must be <= agent.per_transaction_limit

Tip: Set this to the maximum you'd want a single API call to cost. For most LLM APIs, $1-5 is reasonable. For data purchases, you may want $50-100.

4

Daily Budget

Enforces a rolling 24-hour spend limit. Once the agent hits its daily cap, all further payments are blocked until the window resets.

Checks

  • current_spend + amount_usd must be <= agent.daily_limit
  • The spending window is 24 hours from the first transaction
  • If the window has expired, current_spend resets to $0

Tip: This is the primary budget control. Most enterprises set this to $10-50 for standard agents and $500-1000 for trusted production agents.

5

Human-in-the-Loop

For high-value transactions, requires CFO or human sign-off before the payment clears. This is the final safety net.

Checks

  • If requires_human_approval_above is null, all amounts pass (no threshold)
  • If set, amount_usd must be <= the threshold
  • Payments above the threshold are blocked pending manual approval

Tip: Set this to 80% of the per-transaction limit. This way routine payments go through automatically, but unusually large ones get flagged for review.

Denial Response

When a gate blocks a payment, the response includes:

{
  "status": "DENIED",
  "gate": "daily_limit",
  "code": "EXCEEDS_DAILY_LIMIT",
  "message": "$5.00 would push daily spend to $12.50, exceeding limit of $10.00.",
  "gates_cleared": 3,
  "agent": "Research Assistant",
  "mandate": {
    "daily_limit_usd": 10.00,
    "per_transaction_limit_usd": 1.00,
    "current_daily_spend_usd": 7.50,
    "human_approval_above_usd": 5.00
  }
}

Configuring Gates

All 5 gates are configured per-agent in the Dashboard > Agents page. Click on any agent to edit its mandate:

SettingDB ColumnDefault
Kill Switchis_active / statusactive
Vendor Allowlistallowed_vendors[] (all vendors)
Per-Tx Limitper_transaction_limit$1.00
Daily Budgetdaily_limit$10.00
Human Approvalrequires_human_approval_above$5.00