Per-agent budgets
A budget is a hard wall, not a suggestion. Each agent carries a daily limit and a per-transaction cap — €500.00 a day, €150.00 a payment in the demo policy — enforced by the platform before money moves. The travel bot's €640.00 charter attempt was denied on the spot: over-cap.
Monthly ceilings
Above the daily limit sits a monthly ceiling — €6,000.00 in the demo policy. An agent that behaves every single day still cannot drift past what the month allows.
Budget resets on the clock
Daily budgets reset at a stated time — 00:00 CET in the demo — visible on the agent's wallet. Spend accumulates against a window everyone can see, not a rolling mystery.
Merchant allowlists
Agents pay only merchants you listed in advance. The demo Ops Agent knows exactly four — and a €180.00 attempt at an unlisted vendor was denied as not-listed. Adding a merchant is one click; removing one takes effect immediately.
Approval thresholds
Set the line above which a human must say yes. The demo policy escalates anything over €100.00: the agent pauses, a person gets the proposal, and nothing moves until they answer. Below the line, the agent runs free — inside its budget and allowlist.
Signed human approvals
An approval is not a checkbox — it is recorded with who approved, on which device, at what time, with a signature attached. The demo decision shows it: approved in app, phone key, 09:41:12.
The escalation trail
Propose, escalate, approve, allow — each step timestamped in the decision record. When someone asks why a payment happened, the answer is a sequence, not a shrug.
Immutable audit log
Every decision is on the record: what the agent tried, what policy said, who approved what — down to key rotations. Entries are append-only and exportable. When something looks wrong, the log shows exactly what happened and when.
Hash-chained integrity
Each audit record carries its own hash, the previous record's hash, and its chain position — #4,471 in the demo. Verify the chain on demand; any edit anywhere breaks everything after it.
Export as JSON
Any decision exports as JSON, hash included — ready for your own archive, your auditor, or your incident review. The log is yours to take, not ours to keep.
Kill-switch
One tap pauses an agent and halts all agent-initiated payments instantly. Keys stay valid, so nothing else breaks — the agent simply cannot spend until a human turns it back on. In the demo fleet, the travel bot sits paused at €0.00 spent.
Frozen, not lost
Pausing an agent freezes its pending proposals rather than discarding them. Un-pause and the queue is exactly where it was — no proposal silently dies because a human hit the brakes.
Scoped keys
An agent's credentials grant capabilities, not blanket access. Scopes like payments.send and refunds.issue toggle independently — the demo agent has subscriptions.manage switched off. Revoke or rotate a key without touching the policy underneath it.
Keys issued once
Agent keys are shown a single time at issuance and never again. What the platform cannot re-display, an attacker cannot re-request.
Policy hash in every signature
Every payment is signed with the agent key and the hash of the policy that allowed it. A payment does not just say what happened — it proves which rules were in force when it did.
Policy versioning
Policies carry a version, a hash, an author, and a timestamp — v14, updated 17 Jul at 09:12 in the demo. Every decision references the exact policy version that judged it.
Replay before you commit
The editor replays the last 24 hours of decisions against your draft: what was allowed, what was denied, what would change. Policy mistakes surface in the preview, not in production.
Settlement on real rails
An approved proposal becomes a real payment — the demo's €120.00 settled by SEPA Instant with reference 9F21-0716, minutes after approval. Agents spend from the same core the rest of the family runs on.
MCP endpoint
Agents connect over MCP at mcp.protocore.io/agents — any framework that speaks the protocol can hold a Protocore wallet. The integration surface stays small: propose a payment, receive a decision. Policy lives on the platform, not in the prompt.
Fleet of agents
Run one agent or many. The demo runs three — ops, procurement, a travel bot — each with its own budget, allowlist, and threshold. Pause one and the others keep working; policy never bleeds across agents.