Quickstart
From zero to a governed agent — then approve a held action from your wallet.
Install Warden, seal a vault, and issue your agent a warrant. The vault holds the keys; the agent only ever gets the warrant token.
curl -LsSf https://warden.ws/install.sh | sh
warden init --mode password+seal --owner <sui-wallet-address>
warden wallet create --name my-wallet --words 24
warden warrant issue --mode token+onchain --name my-agent --wallets my-wallet --policy spend-limits.json
The installer drops a prebuilt warden binary into ~/.local/bin — no Rust toolchain needed
(set WARDEN_INSTALL_DIR to install elsewhere). Prefer to build from source? Rust users can
cargo install --git https://github.com/thithiri/warden warden-cli instead.
The last command prints a bearer token (shown only once). Hand that to your agent — never the wallet.
Or launch a wired agent directly: warden run --warrant warden2_… -- claude starts the
gateway and exports the token, so the agent makes credentialed HTTP through
Warden and signs by running warden sign — no token persisted to disk. See warden run.
What each step does
warden initcreates a local vault, sealed with Seal and registered on Sui.--owner(required) is the wallet that approves high-risk actions, revokes, and signs the unlock for seal modes — use--owner keystorefor yoursuikeystore address.warden wallet creategenerates a wallet the vault custodies; the key never leaves the machine.warden warrant issuemints a scoped, on-chain warrant bound to a policy — the capability your agent carries instead of the key.
The on-chain steps are gas-sponsored by default — no SUI and no sui
CLI needed (on testnet).
Run the Warden UI
warden ui serves a local console — your vault, warrants, and the approvals queue — in the browser.
It's a single binary: no Node, no separate server.
warden ui # serves + opens http://localhost:8787
Connect your owner wallet and you'll see the local vault and any pending approvals.
Approve a held action
Pick how the owner signs off (an off-chain signature is gas-free):
warden config set --approval-method owner-wallet-offchain
The approver defaults to the vault owner you set at init (override with --approval-owner if it
differs).
Now when the agent does something over a policy threshold — a warden sign
above its limit, or a manual_approval route through the gateway — Warden
holds it. On the Warden UI's Approvals page the hold shows up with a live countdown; approve it
from your wallet and the waiting agent proceeds. The decision is recorded in the audit trail.
Holds are action-bound and fail-closed: past approval.timeout_secs (default 300s), even a valid
signature is refused. To cut an agent off entirely, revoke its warrant — or the whole vault — from
the Warden UI's Registries page.
Next
- Approve from your wallet — the sign-off flow in detail.
- Govern a coding agent or a trading agent.
- Concepts and the CLI reference.