Skip to main content

Covering Redemptions with stETH Liquidity

An ETP/ETF product (or any other product with a similar mechanic) built on an stVault can pay out redemption requests without waiting on the validator exit queue. Minting stETH against the stVault's staked ETH turns part of an otherwise illiquid position into cash on demand, via the stETH secondary market instead of the beacon chain.

This guide covers the full cycle: minting to cover a redemption, and then clearing the stETH Liability that minting creates.

Redemptions coverage scenarios

Prerequisites

  • MINT_ROLE is required — by default the Vault Owner has it; it can be delegated. See Roles and permissions.
  • A fresh oracle report must be applied. Minting reverts otherwise — see Apply oracle reports.
  • Minting capacity must cover the redemption. Minting is only possible within the stVault's stETH minting capacity.

Step 1: Mint stETH to cover the redemption

Mint an amount of stETH equal to the redemption request — see Mint stETH for the available methods (mintShares, mintStETH, mintWstETH). Each method takes a recipient address, which is what makes both paths below possible.

Which path applies depends on whether the Vault Owner can hold stETH on its own balance sheet.

If the Vault Owner can hold stETH

  1. Mint to the Vault Owner's own address.
  2. Swap the minted stETH for ETH or for USDT/USDC on the secondary market, depending on what the redemption is denominated in.
  3. Settle the redemption — send the proceeds to the client and close the request in your registrar system.

If the Vault Owner cannot hold stETH (regulatory restrictions)

  1. Mint directly to the counterparty's address — for example, a market maker with a standing agreement. Because the mint methods take a recipient address, the stETH never touches the Vault Owner's own balance sheet.
  2. Swap — the counterparty converts the stETH to ETH or to USDT/USDC per the agreement.
  3. Settle the redemption — the proceeds are routed to the client and the request is closed.
note

This path depends entirely on a prior commercial agreement with the counterparty (mint recipient, swap terms, settlement timing). Lido has no visibility into or role in that agreement — it only sees the mint transaction and its recipient.

At this point the redemption is paid out, and the stVault carries a stETH Liability equal to the minted amount. The rest of this guide covers clearing it.

Step 2: Clear the resulting stETH Liability

There are two ways to bring the stETH Liability back to zero — see Rebalance or repay? for the general trade-off. In the redemption context, they map to two situations:

Option A — RepayOption B — Rebalance
When to useNew client ETH arrives before the next redemption cycleNo new deposits are coming, or the liability needs to be cleared now
What is spentstETH staked from new client depositsETH from the stVault's own validators
Total Valueunchangeddecreases
Future rewardsunchangedreduced — the stVault has less ETH working

Option A. Repay with new client deposits

  1. When clients bring in new ETH, stake it through Lido Core to receive stETH 1:1, or swap it to stETH on a secondary market.
  2. Repay that stETH to the stVault — see Repay (burn) stETH. This burns the stETH and reduces the stETH Liability by the same amount.

This is the better option economically whenever it's available — it doesn't touch the stVault's Total Value or reduce future staking rewards.

note

Approve the Dashboard contract for the stETH before repaying, and remember the ETH freed up by the repayment only becomes withdrawable after the next oracle report confirms it. The stVaults Web UI handles both automatically.

Option B. Rebalance using validator ETH

Use this when no new client ETH is expected in time, or the liability needs to be cleared as soon as possible.

  1. Check the stVault balance against the stETH Liability. If the balance isn't enough, request a partial withdrawal from validators — stVaults use 0x02 withdrawal credentials, so this doesn't require a full validator exit.
  2. Wait for the sweep — the withdrawn ETH lands back on the stVault balance.
  3. Rebalance — see Rebalance. This moves the ETH to Lido Core and writes off the same amount of stETH Liability 1:1 — all in one transaction.