Operate
Security model
Peribolos minimizes agent authority, keeps owner powers in the browser wallet, and fails closed when durable state or chain proof is unavailable.
Trust boundary
Enforced on Arc
Recipient allowlist, action bitmap, caps, expiry, pause, signer authorization, balance, withdrawals, and treasury behavior.
Enforced by the hosted service
Workspace access, API-key scope, idempotency records, signer provider access, audit indexing, and offline preflight.
Hosted checks improve usability and reduce failed transactions, but the vault contract remains the final spending authority.
Credentials
- Agent API keys are hashed at rest and scoped to one agent. Raw keys are returned once.
- Circle Developer-Controlled Wallet credentials remain server-side; they are never delivered to the dashboard or model process.
- Owner actions require a connected browser wallet whose address matches the contract owner.
- Operator endpoints require an owner/admin user session or an operator-role API key.
Durable persistence
Production startup requires Supabase state storage. Every API JSON response waits for queued state snapshots to finish. If persistence cannot confirm the current snapshot, the API returns 503 PERSISTENCE_UNAVAILABLE instead of acknowledging a one-time key, payment record, or configuration change that may be lost.
Operational checklist
- Restrict CORS to the deployed dashboard origin.
- Store Circle, Supabase service-role, bootstrap, and signer-encryption values only in the host secret manager.
- Use a long unique bootstrap key once, then issue narrower agent keys.
- Monitor
/ready; remove unhealthy instances from traffic. - When revoking a live signer during an incident, also pause or rotate on-chain from the owner wallet.