Create Your Vault
Step-by-step instructions to create vault.
Last updated
Step-by-step instructions to create vault.
Last updated
The Lagoon Vault Factory is the core smart contract that enables permissionless deployment of on-chain Lagoon Vaults. It allows anyone to create a fully customizable vault across supported chains.
Each vault is deployed as a unique instance with configurable parameters. Each Vault is created as an independent smart contract with customizable settings.
The table below lists the Lagoon Vault Factory contract addresses for each supported network.
Ethereum
Arbitrum
Base
Unichain
Berachain
Sonic
createVaultProxy
createVaultProxy
is the function used to deploy a new Lagoon Vault from the Factory contract.
underlying
(address) – The address of the underlying asset (ERC20 token) for which the vault is being created.
The valuation manager will be providing the valuation of the vault in this unit of account.
The vault will manage deposits and withdrawals of this underlying asset.
name
(string) – The human-readable name of the vault. It is used primarily for display and identification purposes.
symbol
(string) – The ERC-20 token symbol representing depositors' shares in the vault.
enableWhitelist
(boolean) – Restrict vault access to approved addresses.
Whitelist can only be activated at vault creation. Deactivation can happen anytime and is irreversible.
If activated, the list itself can be edited anytime.
If true
, please provide an initial whitelist into the Vault, after deployment, from the function addToWhitelist (0x7f649783)
.
safe
(address) – Wallet address that holds the Vault’s assets. Any wallet type is compatible including:
MPC - Multi-Party Computation Wallet
EOA - Externally Owned Account Wallet
This is the address where underlying assets are sent after settlement when net deposits exceed withdrawals, and from which assets are pulled when net withdrawals exceed deposits.
If enableWhitelist
is false
, please provide a null address value :
feeReceiver
(address) – Address where fees will be sent at each settlement.
managementRate
(uint16) – Percentage of Fee charged for vault operation, express in basis points.
performanceRate
(uint16) – Percentage of Fee charged on performance gains, express in basis points.
rateUpdateCooldown
(uint256) – Amount of time before a fee rate update takes effect (in second).
salt
(bytes32) – A unique value in bytes32 to used in conjunction with the vault's other parameters to deterministically generate its address. This ensures the uniqueness of the vault's address even if other parameters are identical.
When the createVaultProxy
transaction is executed, it results in the deployment of two smart contracts:
Vault Contract This is the main contract representing your Vault. It manages deposits, withdrawals, valuations, settlements , and fees. It is also the ERC20 address of the recept token representing a share of the vault.
Silo Contract This contract is where pending deposits and withdrawals tokens (underlaying and shares) are stored allowing for simplification of the accountability in the vault.
Example: Vault Deployment Output
Upon successful execution, you will see 2 new contract addresses returned—one for the Vault and one for the Silo.
You must complete the Post-Deployment Operations to finalize your Vault setup.
Safe Multisig –
admin
(address) – Address with administrative privileges. The is responsible for managing the governance structure that will rules the vault. The admin has significant control over the vault's key parameters and security features, defining how it operates and is governed.
valuationManager
(address) – provides updated valuations (NAV) of the Vault for fair deposits and redemptions.
whitelistManager
(address) – controls which addresses are authorized to interact with the vault.