Architecture Overview
Basic stVaults Architecture

stVaults + DeFi Wrapper Architecture

Environments
Basic stVaults infrastructure addresses
- Mainnet addresses
- Hoodi Testnet addresses
| Smart Contract | Address | Description |
|---|---|---|
VaultFactory | 0x02Ca7772FF14a9F6c1a08aF385aA96bb1b34175A | Factory for deploying StakingVault + Dashboard pairs using a beacon proxy. Learn more |
VaultHub | 0x1d201BE093d847f6446530Efb0E8Fb426d176709 | Central 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 |
PredepositGuarantee | 0xF4bF42c6D6A0E38825785048124DBAD6c9eaaac3 | PredepositGuarantee (PDG) mitigates deposit frontrunning by requiring a node operator guarantee and validator withdrawal credentials proofs (EIP-4788) before activating staged deposits. Learn more |
LazyOracle | 0x5DB427080200c235F2Ae8Cd17A7be87921f7AD6c | Oracle adapter for stVaults. Stores per-vault reports, applies sanity checks, and forwards vault updates to VaultHub. Learn more |
OperatorGrid | 0xC69685E89Cefc327b43B7234AC646451B27c544d | Registry for node operators, groups, and tier parameters that define share limits, reserve ratios, and fee schedules for stVaults. Learn more |
| Smart Contract | Address | Description |
|---|---|---|
VaultFactory | 0x7Ba269a03eeD86f2f54CB04CA3b4b7626636Df4E | Factory for deploying StakingVault + Dashboard pairs using a beacon proxy. Learn more |
VaultHub | 0x4C9fFC325392090F789255b9948Ab1659b797964 | Central 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 |
PredepositGuarantee | 0xa5F55f3402beA2B14AE15Dae1b6811457D43581d | PredepositGuarantee (PDG) mitigates deposit frontrunning by requiring a node operator guarantee and validator withdrawal credentials proofs (EIP-4788) before activating staged deposits. Learn more |
LazyOracle | 0xf41491C79C30e8f4862d3F4A5b790171adB8e04A | Oracle adapter for stVaults. Stores per-vault reports, applies sanity checks, and forwards vault updates to VaultHub. Learn more |
OperatorGrid | 0x501e678182bB5dF3f733281521D3f3D1aDe69917 | Registry for node operators, groups, and tier parameters that define share limits, reserve ratios, and fee schedules for stVaults. Learn more |
DeFi Wrapper infrastructure addresses
- Mainnet addresses
- Hoodi Testnet addresses
| Smart Contract | Address | Description |
|---|---|---|
DeFi Wrapper Factory | 0x3f221b8E5bC098cC6C23611BEeacaeCfD77e1587 | Factory for deploying all contracts required for the multi-user staking setup: DeFi Wrapper and stVault contracts. |
Lido EarnETH Strategy Factory | 0x8Fac09FD82F031D390B94622E2E4baBf16Fd2236 | Factory for deploying smart contracts of the connector to the Lido EarnETH strategy for the DeFi Wrapper. |
| Smart Contract | Address | Description |
|---|---|---|
DeFi Wrapper Factory | 0xd05ebF24A340ece8B8FB53a170F1171DCd02b4d9 | Factory for deploying all contracts required for the multi-user staking setup: DeFi Wrapper and stVault contracts. |
Lido EarnETH Strategy Factory | 0x0b860bfFDA72D214Dc8aC98bEcd8D1cd55307561 | Factory 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 contract | Call | To get |
|---|---|---|
| VaultHub | vaultConnection(vault).owner | Dashboard |
| Dashboard | stakingVault | StakingVault |
| pool | VAULT, DASHBOARD, WITHDRAWAL_QUEUE, DISTRIBUTOR, VAULT_HUB | the rest of the setup |
| WithdrawalQueue | POOL, VAULT, DASHBOARD, LAZY_ORACLE | the rest of the setup |
| strategy | POOL | the pool it serves |
| pool proxy | proxy__getAdmin | TimelockController |
Interfaces
| Interface | Mainnet | Hoodi Testnet |
|---|---|---|
| stVaults Web UI | stvaults.lido.fi | stvaults-hoodi.testnet.fi |
| Etherscan Web UI | etherscan.io | hoodi.etherscan.io |
| stVault Command-Line Interface (CLI) | Configuration guide | Configuration guide |
Source Code Repositories
| Repository | Link |
|---|---|
| stVaults (part of Lido Core) | github.com/lidofinance/core |
| stVault CLI | github.com/lidofinance/lido-staking-vault-cli |
| stVaults Web UI | github.com/lidofinance/staking-vault-widget |
| stVaults API | github.com/lidofinance/vaults-api |
| stVaults DeFi Wrapper | github.com/lidofinance/vaults-wrapper |
| DeFi Wrapper UI Template | github.com/lidofinance/defi-wrapper-widget |