Focus on Lido's stETH to Support other Liquid Staking Derivatives

Lido Finance is the largest single staking entity across all of Ethereum, and indeed it comprises nearly 75% of the Liquid Staking Derivatives market and is the single-largest ETH user of any protocol on Ethereum. It is simultaneously the most liquid of all LSD tokens, and fundamentally Parallel will focus on redeeming stETH in order to earn greater yield across other staking tokens.

Parallel will enable the lowest-cost redemption and swapping of stETH for ETH and enable stETH holders to provide liquidity for users to redeem other LSD tokens.

And in doing so the protocol will provide tools to take advantage of the natural tradeoff between Liquidity and Yield across LSD tokens and Ethereum Staking.

Lido’s ETH Withdrawal Plans Show Long Wait times are Possible

A comprehensive plan for ETH withdrawals on Lido Finance shows the protocol has already made substantial progress and a detailed order of operations to process withdrawal requests. At a very high level this can be summarized below:

  • User requests to redeem ETH from stETH

    • Is Lido in “Turbo Mode”? - i.e. normal operations without significant slashings.

      • Is there sufficient liquidity in the Lido ETH Buffer?

        • If Yes - Withdrawal instantly processed.

        • If No - User’s request enters the ‘WithdrawalQueue’

    • Is Lido in “Bunker Mode”? - i.e. there has been a major validator slashing event.

      • Regardless of whether there is enough ETH in the Lido buffer, there will be an assessment by the Lido protocol on how much ETH has been lost due to slashes. This becomes a minimum of 18 days additional wait time.

      • Once assessment complete, Lido returns to “Turbo Mode”

In summary, a large wave of ETH redemption requests would force Lido to institute a WithdrawalQueue where its users’ stETH stops collecting rewards and is forced to wait for redemption.

It is unlikely though not impossible that Lido’s validators experience significant slashing on their staked ETH and the protocol would activate “Bunker Mode” for withdrawals—further delaying any redemption requests.

The reader may have looked through the above and wondered a simple question — why not simply exchange stETH for ETH via the Curve ETH/stETH pool? This option remains available for users who wish to redeem ETH for their stETH before the “Shappella” hard fork and will almost certainly remain after.

ETH/stETH Pool on Curve Remains Liquid with an Exchange Rate of Approximately 1:1

Data and chart source: Dune Analytics

And indeed the Curve Finance ETH/stETH pool is its largest by TVL and one of the deepest in all of crypto. Previous waves of stETH sales have sent the ETH/stETH exchange rate sharply below parity—it fell to just below 0.94:1 through times of a crypto liquidity crunch in June, 2022. With the benefit of hindsight, however, that was an excellent time to buy stETH with ETH and exactly the wrong time to sell stETH for ETH.

The focus for “instant unstake” for Lido stETH holders is thus straightforward: first we must determine whether the stETH should be redeemed at all instead of first exchanging it on the highly liquid Curve ETH/stETH pool. And with this we of course need to understand how the Parallel instant unstake protocol can determine what value to give the end user for their Instant Unstake of their stETH.

Finally we will offer the stETH user even greater yield if they are willing to provide Instant Unstake liquidity for those using less-liquid LSD tokens such as Rocket Pool's rETH and Ankr's ankrETH.

Instant Unstake Router for stETH and other LSD Protocol Tokens

First let’s state the obvious: there is time-value of money. Receiving 1 ETH today is worth more than receiving that same 1 ETH 30 days from now. How much more wholly depends on the individual user’s ‘Discount Rate’, or for the sake of a lending protocol it is the lowest possible Borrow rate.

Present Value=Future Value(1+rDiscount365)T Present \ Value = \frac{Future \ Value }{(1+\frac{r_{Discount}}{365})^T}

Below is a simple illustration of what this might look like for 1 ETH at different discount rates and days until redemption:

How Much is 1 ETH Worth in 5, 10, 20, 30, and 60 Days from Now?

Source: Parallel calculations

Separately and just as significantly, we want to compare this to what the ETH/stETH exchange rate would look like if a specific set of users chose to withdraw at a given time.

According to DefiLlama, there are 5.8 million stETH in circulation, nearly 10% (451k) of which are currently in the Curve Finance ETH/stETH Curve pool. And indeed the current ETH/stETH exchange rate available on Curve Finance currently stands at 0.999 ETH to stETH for up to 5,000 stETH.

Curve’s stableswap DEX model is well-suited to facilitating low-slippage transactions. But it is likewise clear that the liquidity is far from limitless. If suddenly 10% of all stETH tokens request to swap to ETH, they will at best receive an exchange rate of 0.90 ETH/stETH. If 20% of all stETH tokens are redeemed this falls to a mere 0.49 ETH/stETH exchange rate.

Projected Slippage on Curve for Swapping stETH to ETH

Data source: Curve Finance

The ETH/stETH is the largest liquidity pool on Curve Finance by a fair margin, but it is likewise clear its liquidity is not limitless. And indeed we will need to use a router to determine whether the DEX stETH price would offer a given user a better ETH exchange rate given specific interest rates and days until withdrawal.

We can rewrite our time-value of ETH equation specific to the stETH/ETH exchange rate and for sake of simplicity assume we exchange 1 stETH for the equivalent ETH:

Current ValuestETH=ExchangestETH(1+rDiscount365)TCurrent \ Value_{stETH} = \frac{Exchange_{stETH} }{(1+\frac{r_{Discount}}{365})^T}

From here we solve for the rDiscountr_{Discount} which would be our minimum Borrow rate for such a position:

rDiscount=365(ExchangestETHCurrent ValuestETHT1) r_{Discount} = 365 \left(\sqrt[T]{\frac{ Exchange_{stETH}}{Current \ Value_{stETH}}} - 1\right)

Plotting this according to the stETH/ETH exchange rate gives us the equivalent minimum rBorrowr_{Borrow} rate equivalents such that the Instant Unstake lending position matches the stETH/ETH discount:

What is the Equivalent Discount Rate for stETH/ETH Exchange Rates?

Data source: Parallel Calculations

We start to see that rBorrowr_{Borrow} stands to be competitive with the stETH/ETH exchange rate available via Curve and other DEX’s if it is a relatively short wait for days TT until stETH redemption. But even at longer waits the instant stETH redemption can be competitive with the Curve stETH/ETH exchange rate.

e.g. a stETH/ETH exchange of 0.97:1 would be the equivalent to an rDiscountr_{Discount} of 32% if the stETH is redeemable for 1.00 ETH in 30 days. At 0.98:1 the rDiscountr_{Discount} is 21%, and even 0.99:1 gives an rDiscountr_{Discount} equivalent of 11% for the same 30-day period.

Regardless of the outcome Parallel’s Instant Unstake Router will give the user the best possible exchange rate. But given our analysis it’s clear the router should facilitate many P2P and P2Pool transactions for holders of Lido’s stETH and other LSD tokens.

Step 1 - Evaluate value of stETH Redemption Tokens on Parallel ETH Pool and P2P Demand

We will offer users the best possible stETH or other LSD token redemption rates and compare the potential “Instant Unstake” liquidation-free swap offer to that of the Curve pool.

How much can we offer for instantly redeeming users’ stETH via Instant Unstake swap? We calculate the value of the aggregate discounted cash flows.

In the context of stETH this becomes a fairly straightforward calculation given that Lido expressly locks the maximum stETH/ETH exchange rate for an “exit request” Lido token at time of withdrawal. Further of note is that the user who has requested the withdrawal forfeits future staking rewards, and thus the present value of that 1 stETH in the Withdrawal Queue becomes the value of a simple Zero Coupon Bond adjusted for any expected risk of slashing.

Current Value=stETH×RedemptionstETH×(1rSlashing365×T)(1+rDiscount365)TCurrent \ Value = \frac{stETH \times Redemption_{stETH} \times(1- \frac{r_{Slashing}}{365}\times T)}{(1+\frac{r_{Discount}}{365})^T}

Where rDiscountr_{Discount} is the best available rate available in the Parallel ETH Pool or P2P offers, TT represents the number of days the user’s request must wait in the WithdrawalQueue to redeem ETH against the user’s stETH, and rSlashingr_{Slashing} is a results-based slashing risk estimate on Lido validators expressed in annual terms.

As a simple example let’s say user Bob uses the Parallel router to get the best possible ETH redemption rate against their 100 stETH. We take the following steps:

  1. Calculate approximate days TT until redemption on Lido’s WithdrawalQueue. In this example we estimate Bob’s withdrawal request will take 10 days. We likewise lock the maximum of their RedemptionstETHRedemption_{stETH} at the oracle price given by Lido at time of the withdrawal request, in this case 1.00. NB: This rate can in some cases be lower than 1 if there has been a significant slashing event.

  2. Estimate rSlashingr_{Slashing}. In this instance let’s estimate there is risk of a 0.1% annualized rSlashingr_{Slashing} APR.

  3. Take the best available rBorrowr_{Borrow} from the Parallel Pool or P2P marketplace. Let’s assume the Pool gives a current ETH borrow rate and rBorrowr_{Borrow} APY of 20%, while there is a P2P lending offer at an APY of 10%.

Given the above example we estimate Bob’s 100 stETH is currently worth 99.45 ETH on Parallel’s Instant Unstake Pool, while the P2P offer would give Bob 99.72 ETH for his 100 stETH.

Thus we will compare existing withdrawal requests against offers for lending and pick the best exchange rate for the stETH.

Step 2 - Evaluate Exchange Rate on Curve/Aggregator for stETH/ETH Exchange

In the next step we assess the Curve ETH/stETH pool liquidity and calculate the exchange rate for Bob’s 100 stETH for ETH withdrawal. Here we call Curve’s contracts directly to estimate:

>> synth_swap = Contract('0xdc24316b9ae028f1497c275eb9192a3ea0f67022')
>> steth      = Contract('0xae7ab96520de3a18e5e111b5eaab095312d7fe84')
>> eth        = Contract('0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee')


>> synthswap.get_swap_into_synth_amount(steth, eth, 100 * 1e18)
99600000000000000000 // 99.60 ETH when divided by 1e18

Step 3 - Route the stETH Instant Unstake Request to the Best Exchange/Redemption Rate

In the above example our calculations show Parallel can pay Bob 99.45 ETH for his 100 stETH, a ParaSpace user has offered 99.72 ETH, and the Curve pool estimates it will exchange 99.60 ETH for the same.

Parallel’s router then sends Bob’s order to the Parallel P2P Instant Unstake contract which in turn pays him 99.72 ETH.

We can of course see instances in which Curve’s stETH/ETH exchange rate will give a user a better exchange rate than our lending protocol can offer, and indeed the Parallel router will send the same order to the relevant DEX pool.

Serving Lido Users and Potentially Lido Itself

Our immediate focus is the to provide Instant Unstake and DEX routing to the widest set of users. And given enough ETH liquidity Parallel could support Lido itself as it looks to fulfill stETH redemption requests and build its ETH buffer. The base router technology is permissionless and ultimately seeks to provide users the best stETH redemption rates available, agnostic to which users seek to redeem their staked ETH tokens.

Instant Redemption for Rocketpool, Coinbase, Frax Finance, Stakewise, Ankr, and other Liquid Staking Derivatives

Our Instant Unstake router will support more than just Lido’s staked ETH in Liquid Staking Derivatives (LSD), and we look to the next-three largest LSD tokens each present unique staking yield products for our users.

Unlike Lido, however, none of Coinbase, RocketPool, Frax Finance, Stakewise, and Ankr liquid staking derivatives have detailed new ETH redemption policies after the “Shappella” hard fork to the Ethereum Consensus and Execution Layers.

Total ETH Staked Across Liquid Staking Derivative Protocols

Data source: Dune Analytics

Each of these tokens nonetheless offer staking yields and thus we can calculate discounted cash flows and create a market which serves to provide liquidity and yield. All the while each of these tokens are generally less liquid than stETH and thus tend to offer higher staking yields (cbETH is a key exception) than the standard-bearer in Lido's stETH.

Liquid Staking Router - Matching Demand for Yield and Liquidity

All of the Liquid Staking Derivative tokens listed below represent ETH staked on the Beacon chain and compensate their holders with staking yields generated by the protocols’ validators. And though they differ in mechanics and specific reward rates, they each ultimately represent a commitment to supply their users with yields on their ETH.

TokenModelCustodyPrimary Exchange/Redemption*Staking Model

stETH

Rebasing

Non-Custodial

DEX

Permissioned

cbETH

Reward

Custodial

CEX, DEX

Centralized

rETH

Reward

Non-Custodial

DEX

Permissionless

sfrxETH/frxETH

Reward

Non-Custodial

DEX

Permissioned

sETH2

Dual Token

Non-Custodial

DEX

Permissioned

AnkrETH

Reward

Non-Custodial

DEX

Permissioned

*Post “Shappella” we will focus on available Redemption rates for each protocol.

As a result we can calculate the ETH yield rates via the protocols’ own oracles as well as Beacon chain and EVM data. And with this Parallel’s Instant Unstake platform will be able to evaluate the current value of each LSD token as it relates to staking rewards, potential slashing risk, and future ETH redemption rates.

Liquid Staking Derivative Pricing

As with Lido’s stETH we can evaluate and offer pricing to all staking derivatives given on-chain estimates for staking yield, slashing risk, and total principal.

The below is a lightly modified pricing algorithm where we calculate the present value of the Face Value of the bond (i.e. the PrincipalPrincipal minus slashing risk) along with the cumulative value of all Coupons (i.e. the staking rewards paid) accrued over time TT against a future exchange rate against ETH.

Principal×(1rSlashing365×T)(1+rDiscount365)T×Exchange RateETH\frac{Principal \times(1- \frac{r_{Slashing}}{365}\times T)}{(1+\frac{r_{Discount}}{365})^T} \times Exchange \ Rate_{ETH}

The key factors are thus:

  1. TT represents how many days until the user can redeem the LSD token for ETH.

  2. rSlashingr_{Slashing} represents the best estimate for slashing risk in APR terms for the relevant LSD protocol.

  3. rDiscountr_{Discount} is the discount rate we use as measured by the quoted cost to borrow the equivalent ETH against the LSD token.

  4. PrincipalPrincipal is the total sum of ETH redeemable against the quoted Liquid Staking Derivative tokens.

  5. Exchange RateETHExchange \ Rate_{ETH} represents the future redemption rate

With the above calculation to hand we can then compare this value against the estimated exchange rate for the given LSD token against ETH. And ultimately the Parallel router will choose the best exchange/redemption rate for the end user.

Here we have a more generalized router to support various Liquid Staking Derivative tokens. And critically we note that we can calculate pricing across the full range of LSD tokens across our platform and in the Instant Unstake tool. This becomes especially significant not only for the P2P lending market but especially for those who simply look to buy staking yield.

Finally we can expect that tokens with worse liquidity on DEX’s will present opportunities for price mismatches. Lido’s stETH is far and away the most liquidly traded ETH liquid staking derivative token and will thus offer the lowest slippage across DEX’s. We can plainly predict that other less-liquid tokens such as rETH or frxETH would see worse slippage for the same number of tokens redeemed.

Indeed if we use Curve for the stETH/ETH and frxETH/ETH swaps and the 1inch.io aggregator rates for rETH we see that the exchange rate for rETH/ETH and frxETH/ETH drops far faster as a greater sum of tokens are exchanged.

NB: As a reward token the rETH exchange rate will not match ETH 1:1 but instead should be steadily above 1 to reflect staking rewards accrued.

Slippage Grows Significantly for rETH and frxETH as more Tokens are Redeemed for ETH

Data source: Curve.fi, 1inch.io, Parallel calculations

The pronounced slippage/price impact for rETH, frxETH, and other LSD tokens likewise implies there is significantly greater scope for Instant Unstake purchases to be competitive with Instant Unstake swaps. An exchange rate of 0.90 for frxETH/ETH is quite low if the underlying ETH could be redeemed at par within 30 days; it would imply a discount rate of approximately 123%. Suffice it to say a lending protocol can almost certainly offer a better borrow rate, and indeed it helps set expectations for how users may do best to use

Sharp Slippage on frxETH Exchanges Increases Attractiveness of Instant Unstake Loans

Of course this all assumes that we can not only redeem the underlying ETH for the LSD token but also that Parallel can accurately estimate several key factors: time TT until redemption and conservative but fair estimates for rStakingr_{Staking} and rSlashingr_{Slashing}. But with these issues solved we can create a vibrant aggregator of liquidity via P2P and P2Pool lending in addition to simple user demand for staking.

Another potentially significant use case for Lido and broader LSD token redemption is straightforward: leveraged staking yields with zero risk of liquidation.

Leveraged Staking Yields on Lido and other LSD Protocols

The ability redeem Lido’s stETH and other LSD tokens for ETH opens up another potentially significant opportunity for DeFi users: leveraged staking yields with zero risk of liquidation.

DeFi users may currently buy stETH, deposit it into Aave V2 as collateral, borrow ETH against their position, buy further stETH for staking yields, and recursively perform this operation to buy more stETH and thus magnify their potential staking yields.

Indeed we can calculate the maximum leverage on such recursive borrowing by first calculating the total credit CRCR, the Collateral Factor CFCF for the asset, and do this a theoretical infinite number of times to get to maximum leverage:

CRmax=limnCR+CRCF+CRCF2+...+CRCFn =CR1CF\begin{aligned} CR_{\max}&=\lim_{n\to\infty}\sum CR+CRCF+CRCF^2+...+CR*CF^{n} \ &=\frac{CR}{1-CF} \end{aligned}

For stETH, Parallel offers a maximum CFCF of 0.72. Thus to calculate the maximum leverage on a stETH position we would first calculate the credit CRCR as stETH×0.72stETH \times 0.72 then use the above equation to calculate the maximum: stETH×0.7210.72\frac{stETH\times0.72}{1-0.72}, or 2.57×stETH2.57 \times stETH of additional leverage for every 1 stETH we hold. If the borrow rate for additional ETH is below the staking yield we can effectively multiply our staking rewards by the same amount. There is a problem here of course: if we borrow ETH to buy stETH we take on non-trivial exchange rate risk in the stETH/ETH rate.

But Parallel can calculate what the user stands to receive on their redemption rate, how long until redemption, and their stETH staking rewards rate to offer them a liquidation-free loan against the same. We thus eliminate the stETH/ETH exchange rate risk and ultimately provide the user their desired leverage on the LSD token.

In effect Parallel will allow for higher CFCFand leverage for the above positions given the ability to redeem the underlying ETH.

Last updated