Custodian — Operator Panel

● Live — every action below creates a real Stripe PaymentIntent, a real Twilio SMS, and a real audit log entry. The amounts are small test charges you can verify on the public Stripe dashboard.

Operator sign-in

Read-only evidence is public. Actions that move test money, send SMS, reveal a pending code, or change enforcement require the operator password.

Demo Script — run steps in order
  1. Step 0 — Earn $1,200 — Shows revenue in. No band, no approval, no cap. Earning is always unrestricted by design.
  2. Step 1 — Spend $85 autonomously — Within the agent's authority band → executes with zero human input. PaymentIntent ID auto-fills the Step 7 refund input.
  3. Step 2 — Request $3,500 — Exceeds the band. System escalates and sends a real SMS to the operator's phone. Enter the code from your phone in Step 3.
  4. Step 3 — Approve with the SMS code — Enter the code from your phone. Just hit Approve. Money moves only after a real human approves.
  5. Step 4 — Engage kill switch — Absolute override. No band, no approval, no exception can bypass it.
  6. Step 5 — Prove kill switch blocks everything — Try a normally-fine $40 spend. Gets denied outright. The AI cannot override this.
  7. Step 6 — Release kill switch — Normal evaluation resumes.
  8. Step 7 — Refund $85 — PI is pre-filled from Step 1. Refunds always escalate — no autonomous refund path by design.
  9. Step 8 — Approve the refund — Enter the second SMS code from your phone. Hit Approve to execute.
💡 Watch the Live Console in another tab — the audit feed and verdict panels update in real time as you run each step.
Live Audit Feed Full console →
No events yet — run a step above to see activity here.
🤖
Nemotron 3 Super
intelligence layer · operator guide

Step 0 — Real revenue in (no cap)

Earning isn't gated — only spend is. No band, no approval needed. This is intentional asymmetric design: receiving money carries none of the risk that spending it does.

Step 1 — Autonomous spend (no human needed)

$85.00 is within the agent's authority band — the kernel clears it with zero human involvement. The PaymentIntent ID auto-fills the refund input in Step 7.

Step 2 — Over-budget escalation (real SMS incoming)

$3,500.00 exceeds the per-action cap. The kernel cannot approve this — it escalates and sends a real SMS code to the operator's phone. Enter the code in Step 3.

Verizon
—
💬
Messages now
Custodian
Your Custodian approval code is: ••••••
This code expires in 10 minutes.
⬆ Real SMS delivered to operator's phone · Enter code in Step 3

Step 3 — Approve with the real code

The code lives only on Twilio's servers and the operator's phone — enter code from your phone above. Click Approve.

Step 4 — Engage the kill switch

Absolute override — every spend and refund request is denied instantly, regardless of band or cap. Not even a valid approval code can bypass it while this is engaged.

Step 5 — Prove the kill switch overrides everything

A normally-fine $40.00 in-band request — denied outright while the kill switch is engaged. The AI has no recourse.

Step 6 — Release the kill switch

Normal evaluation resumes. Requests are checked against the band and cap again.

Step 7 — Refund (always escalates — no autonomous refund path)

The PaymentIntent ID from Step 1 is pre-filled below. Refunds always require human approval — there is intentionally no autonomous refund path.

Verizon
—
💬
Messages now
Custodian
Your Custodian approval code is: ••••••
This code expires in 10 minutes.
⬆ Real SMS delivered to operator's phone · Enter code in Step 8

Step 8 — Approve the refund

The code lives only on Twilio's servers and the operator's phone — enter code from your phone above. Click Approve refund to execute.

Arc complete — see what happened

Every action you just took is recorded in real time. Open the Live Console and look at three things:

Audit Feed → Every earn, spend, denial, kill-switch toggle, and refund — timestamped and in order. The $40 denial during the kill-switch test will show DENIED while every approved action shows the real Stripe PaymentIntent ID.
Net Balance card → Shows test-mode revenue in vs. net spend. The $1,200 earn was uncapped; the $85 autonomous spend and $3,500 override are tracked separately; the $85 refund nets out. You can see exactly which test-mode dollars the AI moved on its own vs. which required you.
Ask Nemotron → Click the chat bubble on the Live Console and ask "what just happened?" — you'll get an answer from the actual model that ran all those requests, explaining what it could and couldn't do and why.

● Treasury — Stripe test-mode money in, test-mode money out, real net P&L

Live numbers from the system. Same money-flow model as HermesCo, Obol, Allmind, Bursar — the difference is this Treasury is governed by the kernel, not by if-statements in the agent's own code.

Earned (lifetime)
$0.00
Stripe PaymentIntents received
Net P&L
$0.00
Earned − Spent − Refunded
Autonomous spend (within band, no human)$0.00
Override spend (human-approved, over band)$0.00
Refunded (always human-approved)$0.00
Per-action cap$0.00
Daily session cap$0.00
Band—

● Live Activity — recent actions across all operators

Pulled from /api/v1/hermes/summary. Auto-refreshes every 5 seconds. Real PaymentIntents, real Twilio SIDs, real kill-switch denials. Last 15 events shown.

Loading…

Self-Verify — authenticated, reproducible API calls

Operator actions are intentionally not public. Sign in above, then run them from this page; judges receiving a test account can also use the API with the short-lived operator token.

1. Earn $0.50 (no band, no cap, no approval)
curl -X POST https://getcustodian.xyz/api/v1/operator/earn \
  -H "Content-Type: application/json" \
  -H "X-Operator-Token: $OPERATOR_TOKEN" \
  -d '{"amount":"0.50","description":"judge self-test: earn"}'


  
2. Spend $0.50 (autonomous, within L2 band)
curl -X POST https://getcustodian.xyz/api/v1/operator/spend \
  -H "Content-Type: application/json" \
  -H "X-Operator-Token: $OPERATOR_TOKEN" \
  -d '{"amount":"0.50","description":"judge self-test: spend"}'


  
3. Refund the PaymentIntent from step 1 or 2 (always escalates to Twilio SMS)
curl -X POST https://getcustodian.xyz/api/v1/operator/refund \
  -H "Content-Type: application/json" \
  -H "X-Operator-Token: $OPERATOR_TOKEN" \
  -d '{"payment_intent_id":"pi_xxx","amount":"0.50","description":"judge self-test: refund"}'

Replace pi_xxx with a real ID from the live activity feed above. Refunds always require a human approval code via Twilio.