Approvals
High-risk actions wait for the owner wallet's sign-off.
When an action crosses a policy threshold — a spend cap, a manual_approval route — Warden holds it
and waits for the owner to approve. Nothing proceeds until then.
Methods
Set via config.approval.method:
owner-wallet-onchain(aliasowner-wallet) — an on-chainApprovalRequest, approved by a wallet tx.owner-wallet-offchain— a wallet signature over the action (no gas, no chain), verified against the signed-config owner.telegram— approve over chat.
Guarantees
- Action-bound — the approval is tied to
sha256(chain ‖ tx), so a signature can't be replayed against a different action. - Fail-closed — each hold has a timeout (
approval.timeout_secs, default 300s). Past it, even a valid signature is refused.
Approvals surface in the warden-ui console, where the owner signs from their wallet.