Docs — WARDEN · install, policy, the Gate
WARDEN WARDEN docs
quickstart

Two minutes to a running agent.

One package install, no Docker, no repo clone, no wallet. The agent starts on paper — live prices, simulated fills, nothing at stake — and stays there until you decide otherwise and the contract agrees.

macOS
Linux
Windows
signed releases

Install

Everything lands under ~/.warden/. No service, no cloud dependency, nothing phoning home.

{{ b.title }}
{{ b.code }}

Your first agent

01
Create it
warden agent new alpha-01 writes a strategy file, a policy draft, and an empty ledger. Nothing is connected yet.
02
Run it on paper
Live prices in, simulated fills out. You'll see proposals, verdicts, and denials in the terminal within seconds.
03
Read the denials, not the fills
The denial log tells you what your strategy wanted to do. That's the most useful signal you'll get before real money is involved.
04
Only then, the Gate
When the agent has survived its minimum on paper, request shadow. The contract checks; you don't get to skip.

What lives on disk

{{ tree }}

Writing a policy

The policy is declarative. You author it, warden ward compile turns it into on-chain parameters, and from then on the contract — not this file — is what enforces it. Editing the file changes nothing until you compile and commit.

{{ b.title }}
{{ b.code }}
Tightening a bound applies the moment you commit. Loosening one waits out the timelock, including when you are the one asking. That asymmetry is the point — a bad hour shouldn't be able to widen your own wall.

Class A / B / C

Every rule is classified by what actually enforces it. The UI never blurs the difference, and neither should your mental model.

CLASS A

Contract-enforced

Fully decidable from chain state and calldata. Caps, allowlists, budgets, expiry, promotion state. The strongest guarantee we can give.

CLASS B

Contract, with an input

Needs an oracle: volatility, correlation, drawdown in quote currency. Every input carries a staleness bound, and a stale input denies.

CLASS C

Client, reconciled after

For venues a contract cannot see, such as a brokerage bridge. Structurally weaker, always labelled as such, and not shipping in v1.

The intent set

This is the entire vocabulary a strategist can speak. It cannot invent a new verb, it cannot pass an address, and there is no parser anywhere that turns prose into an operation.

{{ i.name }}
{{ i.desc }}

Promotion & demotion

{{ b.title }}
{{ b.code }}

Editing a strategy file changes its hash, and a changed hash sends the agent back down a stage. That is not a bug report we will accept — a modified agent has not proven anything yet.

Verify a denial yourself

Any third party, with nothing but public data, should reach the same verdict the contract did. If you can't reproduce one of our denials, that is a bug and we want the report.

{{ b.title }}
{{ b.code }}

CLI reference

{{ c.cmd }}
{{ c.desc }}

When something breaks

{{ f.a }}

Want to attack it instead?

The public wall test takes hostile intents from anyone, with no install and no wallet. Denials come back with the rule and the transaction.

Test the Ward →