Vault
One per owner. Records the portfolio it follows, the delegate allowed to rebalance, a user-set pause flag, the cooldown stamp and a rolling traded-notional counter.
["vault", owner]
VANE · Vault Autonomy Engine
VANE is the on-chain program under every Kestrel portfolio. Your assets sit in a vault only you can open. The advisor is granted exactly one power — rebalance inside it — and eight checks on every swap make sure that is all it ever does.
In development Program written and under test. External review of every invariant below precedes any mainnet funds; the pilot runs under per-vault caps.
How the engine is wired
Green paths are yours and never close. The steel path is the advisor's — a single instruction, and both ends of every swap must land back inside your vault.
Smallest possible surface
Every privilege the advisor has is enumerated on-chain. Anything not on this list is denied by construction — there is no "admin override", no hidden path, no upgrade-by-mutation.
One per owner. Records the portfolio it follows, the delegate allowed to rebalance, a user-set pause flag, the cooldown stamp and a rolling traded-notional counter.
["vault", owner]
Target weights and the mint list for Roost, Perch, Soar and Apex. Immutable once active — a change is a new version, and your vault adopts it only when you sign.
["portfolio", id, version]
The permitted assets, the single permitted swap program, and the per-epoch notional cap. Append-only: versions are added, never edited in place.
["whitelist", version]
The heart of the system
All eight run inside the program on every rebalance_swap. Any one failing rejects the transaction. Select a check to see where it sits in the engine.
Guarantees, not promises
These are the invariants the program is built to and the external review is scoped to. Each one maps to a specific threat in the Kestrel threat model.
No instruction can move value to any account that isn't owned by the vault or by you. The advisor has zero paths to third-party accounts.
Stops: keeper key theftWithdraw requires your signature and can never be blocked by the advisor. Pause freezes the advisor, never you.
Stops: funds held hostageThe advisor's only instruction is rebalance_swap, and both ends of every swap are vault-owned accounts of whitelisted assets.
Stops: exfiltration by swapNo admin key can move user funds. Kestrel publishes portfolio and whitelist versions; adopting one is always your signature.
Stops: admin rugMinimum-out is enforced by re-reading the vault's own balance after the swap.
Stops: bad-route griefingExactly one swap program is callable per whitelist version.
Stops: fake pools, arbitrary callsPer-epoch traded notional per vault is capped on-chain.
Bounds: compromised-keeper damageWhitelists and portfolio definitions are append-only. Nothing is mutated in place.
Stops: silent weight changesProgram upgrade authority sits behind a multisig and timelock from the second milestone, and is published on this site when live.
Stops: upgrade-authority abuseYour kill switch
Flip set_paused and every rebalance_swap is rejected at check one. Your deposit and withdraw paths don't read the flag at all. If the keeper disappears tomorrow, your withdraw still clears — it never touched the keeper in the first place.
Where it stands
Vault, portfolio definition and whitelist accounts; the five instructions; all eight swap checks and a route guard against foreign vault accounts.
Every invariant has a negative test that must fail on-chain: slippage, over-spend, wrong signer, wrong venue, foreign accounts in the route, paused vault, epoch cap.
Independent review scoped to I-1 through I-9 plus an internal pass attempting each threat in the model, before any real-funds exposure.
Mainnet with per-vault caps and a published upgrade authority. Caps lift only after the review closes.
VANE is the reason Kestrel can be an advisor without being a custodian.