total_shares to
zero — a terminal state that rejects every subsequent vault operation with vault_closed (18010).
Winding down is therefore just getting every holder out, yourself last.
Orderly winddown
1
Stop taking deposits
Reject anything queued with
rejectDepositRequest, and keep rejecting new intents as they arrive. Optionally set
whitelistOnly: true via updateInfo to discourage new ones.2
Unwind positions
Redemptions pay out in the deposit asset, so close out the vault’s positions until it holds only
that asset.
3
Settle every withdrawal
Run the settle loop until no shareholder requests remain, and
force-burn any holder who never submits one (below).
4
Exit last
The curator stake floor rejects a withdrawal that would drop your skin-in-the-game below the minimum while others
still hold shares (
vault_curator_stake_below_min, 18013) — so your own full exit comes last. Your final burn takes
total_shares to zero and closes the vault.Force-burning holders
forceBurn redeems a holder’s entire share balance at the current mark-to-market
price — no request from them, no price quote from you. It is unsigned and gated to the
vault’s curator; use it to eject holders who never submit their own withdrawal.
The curator’s final exit
For your own shares you act as a shareholder of your own vault — request the withdrawal, then settle it yourself:Accrued fees settle inside these final burns like any other settlement — your last withdrawal includes them. See
Fees.
After closure
closed: true never reverts. Once set:
- New deposit and withdrawal requests are rejected with
vault_closed(18010) — and so is settling any request that somehow remained queued. mintShares,burnShares, andforceBurnall reject the same way.- The vault stays readable:
getVault,getActionHistory, andgetPerformanceHistorykeep serving its history and track record.
