Bursar gives an AI agent team a job and a budget instead of a wallet, with the rules enforced by a contract on Arc mainnet rather than by a prompt. contracts/src/JobVault.sol holds each job's USDC and enforces its budget, per-payment cap, rolling-window cap, payee allow-list, expiry and once-only operation IDs on-chain, requiring an owner-signed EIP-712 approval above a threshold; only the owner changes the rules, the operator can only release inside them, failed payments refund, and unspent USDC returns to the owner on close. contracts/src/AuditAnchor.sol anchors a hash-chained audit log so records cannot be quietly altered. A 12-rule spending-policy engine in packages/policy checks in the same order as the contract behind shared test vectors so the two cannot drift, and bursar-mcp exposes the whole flow to any MCP agent. JobVault (0xe336…df1b) and AuditAnchor (0x9a21…1a5d) are deployed and verified on Arc mainnet.
| Contract | Address | Proof |
|---|---|---|
| JobVault | 0xe336a0a6a066336a5efbb56542880da2eb87df1b | Blockscout ✓ · deploy tx ↗ · block 23802303 |
| AuditAnchor | 0x9a21afe726894baf84e05b9f46abd902b04b1a5d | Sourcify ✓ · deploy tx ↗ · block 23802308 |
Job-scoped, on-chain spending limits for AI agent teams on Arc: shared USDC budgets, human approvals, x402 payments and a tamper-evident audit log anchored on-chain.