Configuration

The fields in ~/.warden/config.json.

config.json is public vault metadata, signed by the vault key — a tamper of any field fails closed on open. Change fields with warden config set (it re-signs); never hand-edit.

FieldMeaning
ownerOwner Sui address — the revoke/approve identity; warrants inherit it. Set at init via --owner.
rpc_urlSui JSON-RPC endpoint for on-chain reads + pricing. Unset → the Mysten public fullnode.
unlock_modepassword, password+seal, or seal.
approval.methodowner-wallet-onchain (alias owner-wallet), owner-wallet-offchain, or telegram.
approval.ownerApprover address for owner-wallet-offchain (anchored in the signed config).
approval.timeout_secsHow long a hold waits before failing closed. Default 300.
pricingHow to value coins for notional_usd (static per-coin or a Pyth feed). Unpriceable coins fail closed.
vault_sealSeal binding (network, package, registry, owner) for seal / password+seal modes.
warden config set --approval-method owner-wallet-offchain   # owner is fixed at init — only rpc_url / approval are mutable
# run `warden config set --help` for the mutable fields

The config is verified token-only against the cached vault public key on every open, so tampering with rpc_url, pricing, or approval is detected and rejected.