{
  "agentPolicyVersion": 1,
  "domain": "ironbridge.foundation",
  "what": "Machine-readable policy for AI agents acting for this operator: what agents may do, hard spending limits enforced OUTSIDE any model, when a human must approve, and what an agent must never accept on our behalf. The agent equivalent of terms and conditions - authorized, not accepted.",
  "spec": "https://ironbridge.foundation/agent-policy",
  "scopes": {
    "allow": ["pay:x402:usdc-base", "read:public", "verify:receipts", "audit:pages-paid"],
    "forbid": ["sign:legal-text", "token:approve", "transfer:treasury", "share:user-data", "accept:terms-of-service"]
  },
  "spend": {
    "asset": "USDC on Base (eip155:8453, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)",
    "per_tx_max_usdc": 2.5,
    "per_day_max_usdc": 10,
    "recipient_policy": "treasury Safe plus a private allow-list of approved service destinations",
    "enforced_by": "off-LLM signer: recipient allow-list, sha-256-pinned policy, fail-closed, operator kill switch",
    "proof": "https://army.ironbridge.foundation/api/caps",
    "proof_note": "live limits + today's spend; a daily must-refuse test proves over-cap, wrong-recipient and malformed requests are DENIED"
  },
  "hitl": {
    "require_human": ["spend above per-tx cap", "new counterparty", "irreversible or legal action", "policy tamper detected (fail-closed)"],
    "mechanism": "operator browser-sign; approvals and refusals land as receipts on the public audit chain"
  },
  "audit": "https://ironbridge.foundation/api/law25/verify",
  "revocation": {
    "kill_switch": "operator-held flag; signer refuses everything while present",
    "policy_pin": "sha-256 of this policy is pinned at the signer; mismatch means deny"
  },
  "honesty": "This describes enforcement that is live and publicly testable today for THIS operator's own agents. It is a published policy plus proof endpoints - not a claim that arbitrary third-party agents are bound by it.",
  "updated": "2026-08-26"
}
