Lagoon names governance, valuation, settlement, and access separately; on Volta90’s deployment one 3-of-6 multisig fills every capacity below. The headings are ABI / docs vocabulary, not four addresses.
Volta90: one multisig — Vault Admin, Curator, Valuation Provider, and Whitelist Manager are not four separate addresses in Volta90. They are exercised by the same 3-of-6 multisig — one on-chain identity with the combined permissions of those Lagoon roles.

Vault Admin

Contract owner: who may act as valuationManager / whitelistManager, pause, total-assets validity window, and vault lifecycle — not on-chain trading. Async (ERC-7540) owner surface, abbreviated:
AccessSignatureNote
writeupdateValuationManager(address)Assign who may post NAV and settle async queues
writeupdateWhitelistManager(address)Assign who may manage the deposit whitelist
writeupdateTotalAssetsLifespan(uint128)How long a proposed total-assets figure stays valid
writepause()Emergency halt on vault flows
writeunpause()Resume after pause
writeinitiateClosing()Begin vault wind-down lifecycle
writeclose(uint256 _newTotalAssets)Final close at posted NAV
Full signatures: deployed ABI / Arbiscan. Trading on Hyperliquid is outside this multisig — system map under Architecture.

Valuation Provider

Posts the total assets figure for the async round (feeds settlement price with isTotalAssetsValid() and related views). In Volta90 the same address acts as Curator below.
AccessSignatureNote
writeupdateNewTotalAssets(uint256 _newTotalAssets)Propose closing gross assets for the async round
writeexpireTotalAssets()Invalidate a stale NAV proposal before settlement

Curator

Lagoon’s Curator is the same valuationManager multisig: it clears requestDeposit / requestRedeem queues via async settlement only. NAV before posting: NAV & Valuation.
AccessSignatureNote
writesettleDeposit(uint256 _newTotalAssets)Settle deposits; also attempts redeem queue (netting when both pending)
writesettleRedeem(uint256 _newTotalAssets)Redeem-only fallback when deposit inflow cannot net exits
writeclaimSharesOnBehalf(address[] controllers)Push settled VLT90 to deposit LPs — V0.0.6
writeclaimAssetsOnBehalf(address[] controllers)Push settled USDC to redeem LPs — V0.0.6
Typical batch: settleDeposit (deposits + redeem netting) plus on-behalf claims as needed — Automatic claims. settleRedeem when exits cannot net against deposit inflow. Does not execute Hyperliquid orders.

Whitelist Manager

Who may call requestDeposit when the whitelist is on. Volta90 is invite-only.
AccessSignatureNote
writeaddToWhitelist(address[] accounts)Allow addresses to call requestDeposit
writerevokeFromWhitelist(address[] accounts)Remove deposit access for addresses
writedisableWhitelist()Turn off whitelist gate entirely
viewisWhitelisted(address)Returns whether an address may deposit