You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: run-on-lido/stvaults/building-guides/basic-stvault.md
+36-19Lines changed: 36 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,15 +9,15 @@ import TabItem from '@theme/TabItem';
9
9
10
10
## Intro
11
11
12
-
This guide is aimed to help Node Operators, Builders, Protocols, Liquidity Providers create and operate an stVault with optional liquidity.
12
+
This guide is aimed at helping Node Operators, Builders, Protocols, and Liquidity Providers create and operate an stVault with optional liquidity.
13
13
14
14
### Product value proposition
15
15
16
16
Competitive offering to native staking — users stake with the same Node Operator and get optional liquidity through stETH.
17
17
18
18
### The vault strategy
19
19
20
-
ETH is deposited to validators and generate staking rewards, stETH is minted on demand by the Vault Owner.
20
+
ETH is deposited to validators and generates staking rewards; stETH is minted on demand by the Vault Owner.
21
21
22
22
## Environments
23
23
@@ -30,11 +30,10 @@ ETH is deposited to validators and generate staking rewards, stETH is minted on
30
30
31
31
### Mainnet
32
32
33
-
:::info
34
-
35
-
*Coming this autumn*
36
-
37
-
::::
33
+
- UI: https://stvaults.lido.fi/ (will be available on [Phase 2 of the Rollout plan](https://research.lido.fi/t/lido-v3-design-implementation-proposal/10665/8))
@@ -51,15 +50,15 @@ Creating an stVault is permissionless. There are two main ways to do it:
51
50
2.**Node Operator Manager address**. One of the two administrative roles in an stVault. From the Node Operator perspective, this role manages permissions and can update key vault parameters. Multiple addresses are supported.
52
51
3.**Vault Owner address**. One of the two administrative roles in an stVault. From the Vault Owner (Staker) perspective, this role manages permissions and can update key vault parameters. Multiple addresses are supported.
53
52
4.**Node Operator Fee**. The share of gross staking rewards that the Node Operator charges for providing validation services. Expressed in basis points [0 (0%) .. 10'000 (100%)].
54
-
5.**Confirmation Lifetime**. The key parameter of the multi-role confirmation mechanism. It defines the maximum time interval between proposal and confirmation. This mechanism is used to update certain stVault parameters by requiring consensus between the two stVault representatives: the Vault Owner and the Node Operator Manager. Measured in seconds [86'400 sec (24 hours) .. 25'920'000 sec (30 days)]. For security reasons, it is strongly recommended to keep it as sort as possible, ideally the minimal 86'400 sec.
53
+
5.**Confirmation Lifetime**. The key parameter of the multi-role confirmation mechanism. It defines the maximum time interval between proposal and confirmation. This mechanism is used to update certain stVault parameters by requiring consensus between the two stVault representatives: the Vault Owner and the Node Operator Manager. Measured in seconds [86,400 sec (24 hours) .. 25,920,000 sec (30 days)]. For security reasons, it is strongly recommended to keep it as short as possible, ideally the minimum 86,400 sec.
55
54
56
55
#### 1. Two-step process (recommended)
57
56
58
57
This approach enables a Node Operator to create an stVault without providing their own ETH. It is recommended because it prevents ETH commingling and streamlines the experience for Stakers and Vault Owners.
59
58
60
59
##### 1.1. **Node Operator** creates an stVault that is not yet connected to Lido Core.
61
60
62
-
Creating stVault is a permissionless operation, but in this 2-steps process it is usually performed by the Node Operator.
61
+
Creating an stVault is a permissionless operation, but in this two-step process it is usually performed by the Node Operator.
63
62
64
63
<details>
65
64
<summary>by Command-line Interface</summary>
@@ -125,14 +124,20 @@ This is a permissioned operation. By default, this permission belongs to the Vau
125
124
-`currentSettledGrowth` the amount of unaccounted growth accrued on the vault while it was disconnected. 0 for newly created vaults via create without connecting method. Settled growth is the part of the total growth that has already been charged by the node operator or is not subject to fee (exempted), such as unguaranteed or side deposits, and consolidations accrued while the vault was disconnected.
126
125
127
126
128
-
129
127
<details>
130
128
<summary>using stVaults Web UI</summary>
129
+
1. Open the stVaults mainpage (see [#Environments](#environments))
130
+
131
+
2. Connect wallet on the "My Vaults" page.
131
132
132
-
*Will be supported later this Autumn*
133
+
3. Open an stVault overview page by the URL ```https://<domain>/vaults/<StakingVault_address>```
134
+
135
+

133
136
134
-
</details>
137
+
4. Review parameters and click "Approve and supply 1 ETH".
135
138
139
+
5. Sign transaction in the wallet.
140
+
</details>
136
141
<details>
137
142
<summary>by Command-line Interface</summary>
138
143
```bash
@@ -159,13 +164,16 @@ This is a permissioned operation. By default, this permission belongs to the Vau
159
164
160
165
#### 2. One-step process (for experienced Vault Owners / Stakers)
161
166
162
-
In this approach, the Vault Owner creates an stVault that automatically connects to Lido Core, enabling stETH minting. This requires supplying 1 ETH, which will be locked as collateral for the connection to Lido Core. All completed in a single transaction, so despite it is a permissionless operation, it is usually performed by the Vault Owner of the future stVault.
167
+
In this approach, the Vault Owner creates an stVault that automatically connects to Lido Core, enabling stETH minting. This requires supplying 1 ETH, which will be locked as collateral for the connection to Lido Core. All completed in a single transaction, so despite being a permissionless operation, it is usually performed by the Vault Owner of the future stVault.
163
168
164
169
<details>
165
170
<summary>using stVaults Web UI</summary>
166
171
1. Open the stVaults mainpage (see [#Environments](#environments))
The Node Operator and Vault Owner use same-named metods in different contracts to perform this change.
267
+
The Node Operator and Vault Owner use same-named methods in different contracts to perform this change.
260
268
261
269
**Node Operator:**
262
270
1. Open **Etherscan** and navigate to the **Operator Grid** contract by its address (available in the stVaults contract addresses list, see [#Environments](#environments)).
@@ -410,6 +418,13 @@ Supplying ETH to the stVault increases its balance. The Node Operator can then d
410
418
411
419
**The Predeposit Guarantee (PDG)** contract, as part of the stVaults platform, helps prevent deposit frontrunning caused by the vulnerabilities described in [LIP-5](https://research.lido.fi/t/lip-5-mitigations-for-deposit-front-running-vulnerability/1269). PDG secures the Vault Owner’s ETH deposits to validators from being front-run by the Node Operator.
412
420
421
+
:::warning
422
+
According to the [updated V3 rollout plan](https://research.lido.fi/t/lido-v3-design-implementation-proposal/10665/8), the Predeposit Guarantee (PDG) contract is now paused on the Hoodi Testnet and will also be paused on Mainnet during the soft-launch in late December 2025.
423
+
424
+
Phase 2 (Full Launch Mode), including the fully functional PDG, is expected in late January 2026.
425
+
:::
426
+
427
+
413
428
One of the key benefits of using PDG is the avoidance of commingling: it keeps the finances of the Vault Owner and the Node Operator strictly separated.
414
429
415
430
PDG enables three main use cases:
@@ -444,13 +459,13 @@ The amount of ETH required for rebalancing to bring the Utilization Ratio to 100
444
459
<details>
445
460
<summary>by Formula</summary>
446
461
447
-
ETH for rebalance = stETH Liability - (1 - Reserve Ratio * Total Value) / Reserve Ratio
462
+
ETH for rebalance = (stETH Liability − (1 − Reserve Ratio) × Total Value) / Reserve Ratio
448
463
449
464
</details>
450
465
<details>
451
466
<summary>by Command-line Interface</summary>
452
467
453
-
*Will be supported later on testnet-3*
468
+
See the [CLI documentation](https://lidofinance.github.io/lido-staking-vault-cli/) for rebalance commands.
454
469
455
470
</details>
456
471
<details>
@@ -470,5 +485,7 @@ The amount of ETH required for rebalancing to bring the Utilization Ratio to 100
-go to `https://stvaults-hoodi.testnet.fi/vaults/<vault_address>/settings/permissions`.**TODO: update links to mainnet.**
22
-
-navigate to "Node Operator Manager Permissions" section, "Adjust rewards on the validators" item.
23
-
-add the address of your original validator's withdrawal credentials.
20
+
-stVault UI
21
+
-Go to `https://stvaults.lido.fi/vaults/<vault_address>/settings/permissions`.
22
+
-Navigate to the "Node Operator Manager Permissions" section, "Adjust rewards on the validators" item.
23
+
-Add the address of your original validator's withdrawal credentials.
24
24
- Source validators
25
25
- withdrawal credentials must be `0x01` or `0x02` (`0x00` is not supported).
26
26
- must be active (i.e., not exiting or slashed).
@@ -29,13 +29,13 @@ Use [these instructions](https://lidofinance.github.io/lido-staking-vault-cli/)
29
29
- must have a withdrawal credentials of type `0x02` equal to stVault's `withdrawalCredentials()` function result.
30
30
- must be active (i.e., not exiting or slashed).
31
31
32
-
> **Note:** You can check a validator’s credentials or state at [Beaconcha](https://beaconcha.in/validator/<pubkey>).
32
+
> **Note:** You can check a validator's credentials or state at [beaconcha.in](https://beaconcha.in/validator/<pubkey>).
33
33
34
34
## 3. Prepare input data
35
35
36
36
- A list of source pubkeys of validators that you want to consolidate from.
37
37
- A list of target pubkeys of validators that you want to consolidate to.
38
-
- Dashboard contract's address used to control the stVault [can be discovered via CLI](https://lidofinance.github.io/lido-staking-vault-cli/get-started/additional-helpers#find-dashboard-by-vault).
38
+
-The Dashboard contract address used to control the stVault [can be discovered via CLI](https://lidofinance.github.io/lido-staking-vault-cli/get-started/additional-helpers#find-dashboard-by-vault).
39
39
- To cover the consolidation fee costs, you'll need some amount of ETH. The exact amount depends on the number of public keys and the current state of the blockchain. You can determine the fee for a single consolidation request by calling the view function `getConsolidationRequestFee` on the `ValidatorConsolidationRequests` contract. The total amount required will be calculated as the number of consolidations multiplied by the fee per request.
- If your wallet does not support `EIP-5792`, the consolidation request will be executed using the `eth_sendTransaction` method, processing the transaction calls one by one instead of in a batch.
67
67
68
68
> **Note:** Alternatively, you can list pubkeys directly in the command as parameters:
69
-
> If you prefer it's possible to list pubkeys in command as parameters:
70
69
71
70
```bash
72
71
yarn start consolidation w <dashboard> \
@@ -81,11 +80,11 @@ yarn start consolidation w <dashboard> \
81
80
82
81
Consolidation request transactions may succeed on the execution layer but fail on the consensus layer.
83
82
84
-
- Navigate to: `https://hoodi.beaconcha.in/validator/<pubkey>#consolidations`.**TODO: update links to mainnet.**
83
+
- Navigate to: `https://beaconcha.in/validator/<pubkey>#consolidations`.
85
84
- Check the consolidation request status for each validator you consolidated to.
86
85
87
86
### 5.2 Revoke NODE_OPERATOR_REWARDS_ADJUST_ROLE role
88
87
89
-
-go to `https://stvaults-hoodi.testnet.fi/vaults/<vault_address>/settings`.**TODO: update links to mainnet.**
90
-
-navigate to "Node Operator Manager Permissions" section, "Adjust rewards on the validators" item.
91
-
-remove withdrawal credentials address.
88
+
-Go to `https://stvaults.lido.fi/vaults/<vault_address>/settings`.
89
+
-Navigate to the "Node Operator Manager Permissions" section, "Adjust rewards on the validators" item.
0 commit comments