Lagoon
  • Back to App
  • Overview
    • What is Lagoon?
    • Lagoon Vault Architecture
    • FAQ
    • Terminology
  • VAULT
    • Overview
    • Deposit and Withdraw flows
    • Vault valuation
    • Fees
    • Roles and capacities
      • Vault admin
      • Valuation Oracle
      • Curator
      • Whitelist Manager
    • Create your vault
      • Vault post-deployment operations
      • Access your vault on Lagoon
    • How to?
      • Update the vault valuation & settle requests
      • Activate and manage a synchronous vault
      • Migrate an existing vault into a new Lagoon vault ?
  • Curation solutions
    • Safe & Zodiac Roles Modifier
    • MPC (Multi-Party Computation) wallet
    • How to?
      • Renounce Safe & Zodiac role modifier ownership
  • Developer hub
    • Key Data Structures and Epoch mechanism
    • Integration
      • Get a user position
      • Async deposit flow
      • Synchronous deposit flow
  • RESOURCES
    • Addresses
    • Audits
    • Brand Kit
    • X
    • Blog
    • LinkedIn
Powered by GitBook
On this page
  • Lagoon Vault Factory
  • Vault Deployment Function: createVaultProxy
  • Create Vault Proxy Parameters
  • Underlying Asset
  • Vault General Parameters
  • Roles & Governance Setup
  • Fees Parameters Setup
  • Technical Parameter
  • Vault Deployment Result
  1. VAULT

Create your vault

Step-by-step instructions to create vault.

PreviousWhitelist ManagerNextVault post-deployment operations

Last updated 1 day ago

Lagoon Vault Factory

The Lagoon Vault Factory is the core smart contract that enables permission-less deployment of on-chain Lagoon Vaults. It allows anyone to create a fully customizable vault across supported chains.

You can find the supported chains and factories addresses .

Currently, vault creation is only possible via etherscan.

Vault Deployment Function: createVaultProxy

createVaultProxy is the function used to deploy a new Lagoon Vault from the Factory contract.

The address used to create a new vault won't have any roles in the vault, unless specified in the arguments. In other words, you can use any address to deploy vault.

Create Vault Proxy Parameters

Underlying Asset

underlying (address) – The address of the underlying asset (ERC20 token) for which the vault is being created.

The Valuation Oracle (valuationManager) will be providing the valuation of the vault in this unit of account.

This token can not be a rebasing token such as stETH or Aave debt token. In the case of stETH you would use it's non-rebasing equivalent, wstETH.

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.


Vault General Parameters

name (string) – The name you want to give to the ERC-20 shares. Immutable

symbol (string) – The ERC-20 shares symbol. Immutable.

enableWhitelist (boolean) – Restrict vault access to approved addresses. Put 0 for false and 1 for true. Activable only at creation.

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 the whitelist is enabled, you can add and revoke addresses usingaddToWhitelist and revokeFromWhitelist.


Roles & Governance Setup

safe (address) – Curation address that holds the Vault’s assets. It is referred as curation address in the doc. Any curation solution is compatible including:

  • MPC - Multi-Party Computation wallet

  • EOA - Externally Owned Account wallet

This is the address that will manage the vault positions and validate Valuation.

Can be a multisig (manual updates) or a smart contract (automated pricing algorithm).

If enableWhitelist is false, please provide a null address value :

0x0000000000000000000000000000000000000000

Fees Parameters Setup

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.

💡 Fees are expressed in basis points (bps)

  • 0.5% = 50 bps

  • 2% = 200 bps

  • 15% = 1500 bps

rateUpdateCooldown (uint256) – Amount of time before a fee rate update takes effect (in second). Immutable.

💡 Value is in seconds (e.g., 3600 for 1 hour).


Technical Parameter

salt (bytes32) – A unique value in bytes32 to used in conjunction with the vault's other parameters to deterministically generate its address.

💡 Value in hexadecimal : e.g.0x24


Vault Deployment Result

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 (underlying and shares) are stored.

Example: Vault Deployment Output

Upon successful execution, you will see 2 new contracts 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 of the vault total assets.

whitelistManager (address) – controls which addresses are authorized to interact with the vault.

Safe {Wallet}
Vault Admin role
The Valuation Oracle role
The Whitelist Manager role
here