Skip to main content

Architecture Overview

Basic stVaults Architecture

Basic stVaults Architecture

stVaults + DeFi Wrapper Architecture

stVaults + DeFi Wrapper Architecture

Environments

Basic stVaults infrastructure addresses

Smart ContractAddressDescription
VaultFactory0x02Ca7772FF14a9F6c1a08aF385aA96bb1b34175AFactory for deploying StakingVault + Dashboard pairs using a beacon proxy. Learn more
VaultHub0x1d201BE093d847f6446530Efb0E8Fb426d176709Central registry and lifecycle manager for StakingVaults connected to the Lido protocol. Handles vault connection, minting/burning stETH against vault collateral, rebalancing, fee settlement, and bad debt management. Learn more
PredepositGuarantee0xF4bF42c6D6A0E38825785048124DBAD6c9eaaac3PredepositGuarantee (PDG) mitigates deposit frontrunning by requiring a node operator guarantee and validator withdrawal credentials proofs (EIP-4788) before activating staged deposits. Learn more
LazyOracle0x5DB427080200c235F2Ae8Cd17A7be87921f7AD6cOracle adapter for stVaults. Stores per-vault reports, applies sanity checks, and forwards vault updates to VaultHub. Learn more
OperatorGrid0xC69685E89Cefc327b43B7234AC646451B27c544dRegistry for node operators, groups, and tier parameters that define share limits, reserve ratios, and fee schedules for stVaults. Learn more

DeFi Wrapper infrastructure addresses

Smart ContractAddressDescription
DeFi Wrapper Factory0x3f221b8E5bC098cC6C23611BEeacaeCfD77e1587Factory for deploying all contracts required for the multi-user staking setup: DeFi Wrapper and stVault contracts.
Lido EarnETH Strategy Factory0x8Fac09FD82F031D390B94622E2E4baBf16Fd2236Factory for deploying smart contracts of the connector to the Lido EarnETH strategy for the DeFi Wrapper.

Per-setup addresses

The tables above cover the contracts shared by every setup on the network. The ones belonging to a particular vault or pool — StakingVault, Dashboard, pool, WithdrawalQueue, Distributor, strategy, TimelockController — are deployed per setup. Three ways to look them up:

Web UI

Connect the wallet at the stVaults Web UI and open the stVault. Its page lists the StakingVault and Dashboard addresses. The DeFi Wrapper widget is deployed per pool, so a depositor gets the pool address from whoever runs the product.

CLI

From a vault address to the rest of a basic stVault setup:

yarn start contracts v-v r vault-data <vaultAddress>       # connection data; its `owner` field is the Dashboard
yarn start contracts dashboard r vault <dashboardAddress> # back to the StakingVault

For a DeFi Wrapper setup, one call returns the whole set — vault, Dashboard, withdrawal queue, distributor and every strategy with its name, id and allowlist state:

yarn start dw uc wo r info <poolAddress>

It does not include the Timelock Controller, which is the admin of the pool proxy:

yarn start dw uc tg proxy r get-admin <poolAddress>

Etherscan

With any one address in hand, the rest follow from the Read Contract tab:

On this contractCallTo get
VaultHubvaultConnection(vault).ownerDashboard
DashboardstakingVaultStakingVault
poolVAULT, DASHBOARD, WITHDRAWAL_QUEUE, DISTRIBUTOR, VAULT_HUBthe rest of the setup
WithdrawalQueuePOOL, VAULT, DASHBOARD, LAZY_ORACLEthe rest of the setup
strategyPOOLthe pool it serves
pool proxyproxy__getAdminTimelockController

Interfaces

InterfaceMainnetHoodi Testnet
stVaults Web UIstvaults.lido.fistvaults-hoodi.testnet.fi
Etherscan Web UIetherscan.iohoodi.etherscan.io
stVault Command-Line Interface (CLI)Configuration guideConfiguration guide

Source Code Repositories

RepositoryLink
stVaults (part of Lido Core)github.com/lidofinance/core
stVault CLIgithub.com/lidofinance/lido-staking-vault-cli
stVaults Web UIgithub.com/lidofinance/staking-vault-widget
stVaults APIgithub.com/lidofinance/vaults-api
stVaults DeFi Wrappergithub.com/lidofinance/vaults-wrapper
DeFi Wrapper UI Templategithub.com/lidofinance/defi-wrapper-widget