Programmable spending controls for autonomous AI agents.

Create a vault in minutes, fund it, and hand any AI agent a scoped key. The agent holds nothing - a spending policy evaluates every request, and the vault enforces caps, allowlists and receipts on-chain.

The problem

One bad loop and the wallet is empty.

Autonomous agents need to move money to act - pay a vendor, settle a task, swap on a DEX. Hand one an unrestricted key and a single prompt injection, hallucinated action, or runaway loop can drain it.

Humans need caps, allowlists, dedup and receipts - enforced on-chain, not by app-layer goodwill. SpendArc gives the agent a wallet that holds nothing and can only ever move value inside policy.

The architecture

Two independent fences.

Neither substitutes the other. One stops off-policy actions from ever broadcasting; the other polices every spend that does.

Fence 1
Gas layer

It can't even broadcast

The agent's account holds zero gas. Every action is a sponsored UserOp, and the paymaster's off-chain signer only signs calls into the vault. An off-policy action is never sponsored - with no gas, it never enters a bundle.

Fence 2
Contract layer

It only moves inside policy

For any call that does get sponsored, the vault checks the full policy - active, not expired, token allowed, target allowed, per-tx cap, daily cap, dedup - before moving a cent. Blocked actions emit an on-chain record and move nothing.

How it works

Fund the vault. Fence the agent.

A self-serve control plane - anyone gets their own vault in a few minutes. Two independent fences (the app policy gate and the on-chain vault) enforce the leash on every payment.

01

Create your vault

Pick a leash (max per transaction, daily cap) and sign once. The factory deploys a vault owned by your wallet - one vault per wallet, self-configured with the leash you chose.

02

Fund it with USDC

Grab testnet gas and USDC from the faucet, then deposit into the vault. Your agent can only ever spend what is sitting in the vault - it never holds a balance itself.

03

Hand your agent a key

Register the agent and get a one-time API key for any AI agent (opencode, ChatGPT, Claude). It introspects its leash and pays within it - and you can tighten the leash or allow services any time, signed in your wallet.

Built for teams, not just one agent

A control plane for a fleet of agents.

Each wallet gets its own vault and leash. Operators get the whole picture - every agent, every decision, every rule - managed from one place.

Every agent, one console

Operators see every agent wallet in the fleet - live leash, vault balance, and every spending decision, approved or blocked, in one view.

Policy from a central desk

Pick any agent and lower its leash, revoke it, or rebalance the rules from a single control plane. Agents can only ever move value inside policy.

Full audit trail

Every decision is recorded - who requested, what was asked for, and what policy stopped or allowed it. The whole history is one tab away.

Live proof - on-chain

Same agent. One variable.

Two real actions on Arc testnet - an approved spend moved on-chain, then a blocked attempt rejected by the policy. Live reads of the most recent activity from the SpendArc vaults, not a simulation.

executeSpend
Event
Resultnothing moved
Transaction
vs
executeSpend
Event
Resultnothing moved
Transaction

Programmable spending controls for autonomous agents.

Your wallet, your vault, your leash. Create one, fund it, and watch approved and blocked agent payments land live from the deployed contracts on Arc Testnet.