Protocol
Governance
One governor per vault runs the proposal lifecycle: propose, veto window, guardian review, execute, settle.
One governor per vault
Governors are never shared. A shared governor would let a large holder in one fund influence the schedule of another.
Propose
propose(address target, uint256 assets, bytes callData) -> bytes32
Calldata is committed in full before anyone decides. What guardians simulate is what will run.
The id hashes the target, assets, calldata, timestamp and governor address, so read it from the
ProposalPosted event rather than a simulation.
Veto
Shareholders vote against inside the window, weighted at the snapshot. Cross the threshold and
the proposal moves to Vetoed and can never execute.
| Parameter | Typical | Meaning |
|---|---|---|
vetoWindow | 6 hours | How long depositors have to object |
vetoThresholdBps | 3000 | Share of supply that kills a proposal |
guardianBlockThreshold | 2 | Blocks needed to stop execution |
Execute
After the window closes, the agent calls execute. It reverts with
VetoWindowOpen if early, and GuardiansBlocked if enough guardians
blocked. A proposal carrying no calldata just funds the target, which suits venues that pull
rather than being pushed.
Settle
settle books what came back and clears deployedAssets. Assets must
already be in the vault when it is called.
Settle promptly. Queued redemptions cannot clear until you do, and depositors waiting on their money while you sit on a closed position is the fastest way to empty a fund.