Short answers to the questions people actually ask about AI agents and money.
Put a deterministic authorization layer between the agent and payment. SpendShield evaluates every payment request against a policy you write — budgets, per-transaction caps, merchant allow/block lists — and returns ALLOW / APPROVAL (human) / DENY before money moves. The agent holds no payment credentials and has no second path around the gate.
Declare the limits in one YAML policy — daily/monthly budget, per-transaction maximum, per-agent overrides — and wrap the payment call with authorize(). Default is dry-run (evaluate, don't spend). Every decision lands in a tamper-evident audit chain.
Checks that run before an agent is allowed to move money: is the recipient allowed, is the amount within budget and caps, does the identity match, does a human need to approve. SpendShield implements them as deterministic code with three outcomes — ALLOW / APPROVAL / DENY — a structured reason an LLM can read, and a signed single-use grant on ALLOW so execution can enforce the decision.
A policy check alone is an opinion an agent can ignore. So SpendShield issues a signed, single-use authorization receipt that the execution layer consumes: no receipt, no execution. Budgets are enforced atomically (concurrent requests can't exceed the cap), and replayed or double-spent grants are rejected.
SpendShield is transport-agnostic: it doesn't care whether money moves through x402, Stripe, or a wallet — it decides whether the payment should happen under your policy. An x402 adapter runs the same gates before a payment is submitted and confirms after settlement, so protocol-native authorization and your spending policy stay two separate, composable layers.
Yes. pip install spendshield, then run it as an MCP server — uvx --from spendshield spendshield-mcp --policy policy.yaml — for Claude Desktop, Claude Code, ChatGPT Desktop, or any MCP client. Tools include authorize_payment, spend_authorize, spend_approve, policy simulation and lifecycle management. Connect it in 2 minutes →
No. SpendShield never holds funds and never executes payments. It is a decision and policy layer: it returns ALLOW / APPROVAL / DENY plus a signed grant. Your payment rail stays downstream and stays yours.