[Temp Check] Add wstETH as a collateral on Base ETH Market, USDC Market on Arbitrum and Ethereum Mainnet

Gm Compound DAO, Kenneth here. I am a DeFi protocol relations contributor at Lido DAO.
I am writing to get a temperature check before proposing formally the addition of wstETH onto the Compound v3 markets on:

  1. Base’s ETH market
  2. Mainnet’s USDC market
  3. Arbitrum’s USDC Market.

wstETH is an asset that has been integrated into multiple money markets across different chains, such as Aave on Mainnet, Arbitrum, Optimism, and soon Base and also Radiant on Mainnet and Arbitrum. It is also the leading liquid staking token (LST) in terms of market cap and liquidity depth on Mainnet and Arbitrum.

wstETH has also been an integral component in multiple yield vault strategies that involve the use of leverage staking. As such, the inclusion of wstETH on the aforementioned v3 markets will bring value to the Compound ecosystem as it enhances the options available for such strategy vaults building on the respective chains.

Resources and Info

Website: https://lido.fi/

Docs: https://docs.lido.fi/

Socials: https://twitter.com/LidoFinance

Token Contract Address:
Mainnet
Base
Arbitrum

Author of Proposal

Kenneth Tan - Defi Protocol Relations Contributor at Lido DAO

Email - kenneth@lido.fi

About Lido Finance and stETH

Lido Finance is a family of open-source peer-to-system software tools deployed functioning on Ethereum and Polygon. It is mainly known for enabling users to stake their tokens with validators to receive rewards from validation activities on the blockchain while being able to use the token on-chain in various capacity including as collateral on money markets like Compound on ETH Mainnet.

Since its inception in 2020, Lido has gone on to have over 9m of ETH staked with Lido. stETH is also presently the token with the 8th highest market cap in all of crypto. The demand for stETH as an asset can be seen from its integrations into many facets of defi, including strategy vaults, money markets and more.

How would Compound benefit from the listing on these Markets?

wstETH being an asset that generate rewards gives opportunities to people who want to take on extra leverage on an already productive asset. It is a collateral that has high demand especially for protocols that execute yield strategies.

When compared to ETH, wstETH is probably more ideal for people looking to lend out their ETH or take on leverage as it still gives them the staking rewards for holding onto ETH while allowing them to use it as a form of leverage.

Compound’s markets has been integrated into multiple yielding strategies such as InstadApp’s ETH v2 vaults and Yearn Finance’s WETH strategy vaults. Having wstETH on markets that aren’t available will open more doors for similar strategies and integrations especially on L2s.

Market Risk Assessment and Token Metrics

Current marketcap of token: US $21b

Daily Volume: US $28m

Supply and Emission schedule: 9.2m, supply changes when people either stake or unstake their ETH with Lido. No stETH is premined. There is no emission schedule.

Volatility of Token: Directly related to ETH’s volatility

Largest Liquidity Pools on Ethereum Mainnet:

  1. Curve - US $250m, approx. 53k wstETH
  2. Uniswap - US $45.36m, approx. 11.38k wstETH
  3. Balancer - US $13.79m, approx. 3.86k wstETH in pool

wstETH on Arbitrum

Supply on Arbitrum: 116,843

Venue with the largest amount of Liquidity:

  1. Uniswap - US $48m, approx. 9.7k wstETH
  2. Curve - US $3.45m, approx. 646 wstETH

wstETH on Base

Supply on Base: 2674.58

Venue with the largest amount of Liquidity:

  1. Aerodrome - 10m or approx 1902 wstETH

References:

LSTs bridged to L2s

Privileged Roles in the token contract (Whitelisted EOAs, Multisigs, DAOs)

Full description of protocol settings controllable by the DAO here.

Is it Pausable?

Yes, the DAO can vote for the wstETH contract to be paused for crisis management. For a full description of the pausing functions, please refer to the docs here.

Is there a Blacklist?

No

Largest stETH holders

For stETH on Mainnet

For wstETH on Arbitrum

For wstETH on Base

Smart Contract Risks

Github Repository:

Mainnet:

Arbitrum and Base

Audits and Bug Bounties:

Audits - GitHub - lidofinance/audits

Live Bug Bounty on ImmuneFi, maximum bounty of US $2m - Lido Bug Bounties | Immunefi

Test Suite:

Will the token include implementations on other networks?

Yes, stETH can be wrapped to wstETH and then bridged onto other networks. Currently the DAO has recognized ownership of canonical bridges on Arbitrum, Optimism and Base

Contract Addresses on L2s

Arbitrum

Base

Does the token use a compiler version greater than 0.8.0 or SafeMath? If not, explain how the protocol deals with possible overflows and underflows

For wstETH on mainnet, it uses the compiler version 0.6.12, however, SafeMath is used.
For wstETH on layer-2s like Base and Arbitrum, it uses a compiler version >0.8.0

During the execution of the token’s functions, does the token execute external code chosen by the caller or receiver? If, so please explain the reasoning behind this decision

No

How does the token contract deviate from a standard implementation of ERC20? Any additional features that the Compound DAO should know about?

stETH is a rebaseable token and follows ERC-20, ERC-2612, ERC-1271 for its implementation. wstETH is a value accruing, non-rebaseable token that follows ERC-20, ERC-2612

Is it burnable?

stETH is burnable on redemption for ETH upon withdrawal

Does the token contract have a fallback function? If so, when does it revert?

stETH has a fallback function that calls ‘submit()’, i.e. user stakes their Ether and gets stETH minted in return.

wstETH has a fallback function, that calls ‘submit()’ but stakes Ether, returning wstETH

Does it have a fixed supply? If no, who can mint?

There’s no fixed supply, anyone can deposit their ETH and mint stETH/wstETH

Does it implements any transfer hooks? Or hooks on any method?

No

Is it a rebasing token?

wstETH does not rebase and is denominated in stETH changes, anyone holding wstETH can convert any amount of it to stETH at a fixed rate and vice versa. The rate is the same for everyone at any given moment.

Does the token charge fees on transfers?

No

Is the contract performing arbitrary delegatecalls? If the answer is yes, indicate who can make these calls and to what contracts

stETH is the proxy contract, so delegatecalls are used to call impl methods (not only token-specific, but required for the protocol to function)

wstETH is non-upgradeable plain contract and doesn’t perform delegatecalls.

Is it flash mintable? If yes, please provide more information on this feature

No

Is it flash loanable? If yes, please indicate who offers the service

It is possible to do a flashloan on Aave v2 with stETH, however there are certain caveats to it. For more information on how it works click here. However we are unaware of flashloan service providers specifically for stETH

Price Feed Behaviour

Price feed for stETH is supported by ChainLink across Mainnet, Arbitrum and Base.

Upgradability

StETH token is the upgradable contract behind AppProxyUpgradeable proxy at Lido: stETH Token | Address 0xae7ab96520de3a18e5e111b5eaab095312d7fe84 | Etherscan. Upon a successful DAO vote, Lido DAO can change the implementation to the token contract.

wstETH is non-upgradeable on L1. However it is upgradeable on L2s but only if it passes Lido DAO’s vote.

Can an upgrade happen instantaneously or is there a time-lock delay?

Lido DAO’s voting has two phases. Aragon voting lasts for 72 hours and has 2 phases. The main phase lasts for 48 hours and is the conventional voting phase, the second phase is the objection phase which lasts for 24 hours where one can vote against or change their vote from for to against. The objection phase works as a timelock.

Who manages the upgrades and how do the upgrades work?

Upgradeability is implemented either by the Aragon kernel and base contracts OR by the OssifiableProxy instances. To upgrade an Aragon app, one needs the dao.APP_MANAGER_ROLE permission provided by Aragon. To upgrade an OssifiableProxy implementation, one needs to be an owner of the proxy. As it was said previously, both belong either to the DAO Voting or Agent apps.

Which components are upgradeable?

The following contracts are upgradeable by DAO voting

  • LidoLocator
  • Lido
  • StakingRouter
  • NodeOperatorsRegistry
  • AccountingOracle
  • ValidatorsExitBusOracle
  • WithdrawalVault
  • WithdrawalQueueERC721
  • LegacyOracle

Conclusion

The proposal seeks to do a temperature check on the addition of wstETH as a collateral on the Ethereum USDC market, Base ETH market and Arbitrum USDC market.

Having stETH in the markets stated above could bring a wide array of strategies to the users of Compound. stETH is a suitable addition to these markets as it is the leader in the liquid staked tokens sector and is the most liquid and composable asset in that particular vertical.

By giving users the ability to utilise their stETH on these markets, users are exposed to more opportunities and flexibility. stETH is also relatively low risk given that it’s an asset that is dependent on the underlying - ETH.

Thank you for taking the time to read this proposal, I look forward to hearing your feedback!

3 Likes

We support the expansion of collaterals for Compounds cross-chain deployments. Over the past several weeks and through various discussions it has become apparent to us that promoting the use of cross-chain deployments, as well as expanding their breadth, are probably the two foremost avenues available to immediately grow the use of Compound.

wstETH brings many advantages such as native yield, and ETH price parity. These benefits make wstETH a great collateral asset to begin the aforementioned efforts with. Therefore, we are aligned with Lido on this!

3 Likes

Adding wstETH to the aforementioned Comets will certainly bring a lot of utility to both existing and new users of Compound. We support this proposal as well.

Looping in @cylon from OZ to consider the security implications of listing wstETH as collateral, with a particular focus on the L2s.

Also, bringing in @Gauntlet to start thinking about risk parameters for each of these markets.

5 Likes

Hi @kenx3495 - Thanks for posting your details. To help use evaluate any potential integration risks, could you please review this asset listing checklist and post the answers here in the forum?

Some of the information is already covered in your initial post but there are more granular technical questions on potential integration issues like ERC20-comptability, rebasing and other considerations we want to evaluate.

2 Likes

As far as community opinion i believe there always was agreement on adding it, but, as often, there is just a lack of somebody to actually do a work to make it happen.

wstEth isn’t a new asset for Compound, it is already listed on mainnet ETH market, so listing on other markets is rather a question of risks and liquidity.

But if anything that token is probably most useful one to actually add from growth perspective for Compound.

As for liquidity, recent efforts from Lido team to grow liquidity on dexes, in particular incentivised liquidity pools via arrakis are interesting, but from my personal opinion hardly can be longterm solution. For such a big player as Lido, most likely protocol owned liquidity is more effective and cost-effective approach in the long run.

Anyway i am looking forward to getting wsteth listed in usdc markets, as i firmly believe that having staked eth option is pretty much must have for protocol to be competetive, and lido is indeed established staking provider.

1 Like

Hey everyone! Jakov here, Lido contributor.

As everyone, previously mentioned, I agree that LST asset with deepest liquidity and highest utilization cross chains should be used as a collateral for the above mentioned markets.

Personally, I am the most excited about the ETH market on Base as it can enable leverage staking on Base as long as there is sufficient liquidity.

@Sirokko Thank you for your comment with regards to liquidity sustainability. Unfortunately, Lido does not have protocol owned liquidity. However, there is a committee (Liquidity Observation Lab - LOL) responsible for ensuring the sufficient liquidity across all avenues that are targeted by the Lido Protocol Relations team.
Liquidity should be a “tool” for building on top. What I am trying to say is that building more liquidity without some targeted utility that will make us of it does not make a lot of sense.
The primary goal of the LOL is to ensure self sustainable liquidity that will be driven by the utilization and not purely by external incentives. clAMMs are currently showing the best performance, but usually require collaborations with ALMs like Arrakis to make the LPing more accessible to the retail.
With integrations like Compound, the LOL is aware of what needs to be done to ensure less restrictive recommended parameters provided by the risk assessment teams like Gauntlet.
Using the experience from already well established networks like Ethereum mainnet and Arbitrum is of highly valuable in that aspect.

1 Like

Happy to provide the missing details. Unfortunately the link for the asset listing checklist does not work.
Could you please fix it and reshare.

1 Like

Link is now fixed. Apologies for that.

2 Likes

Adding more wstEth options on Compound would bring several benefits to both platforms and the broader DeFi ecosystem.
wstEth is not a random new asset,nor is it new in Compound.
So evaluating one of the best, battle hardened bluechip defi protocols is pointless in my opinion.

1 Like

Hey @cylon ! Have updated the original post to reflect the questions in the asset listing checklist. Happy to answer any questions regarding these

2 Likes

@kenx3495 Thank you!

From a security perspective, I don’t see any major risks with listing the proposed assets. We’ll be sure to include monitoring on any upgrades or emergency pausing in our Discord feeds.

3 Likes

[Gauntlet] wstETH initial asset listing recommendations (1/3/24)

Simple Summary

Gauntlet recommends the following wstETH initial parameter recommendations across Base v3 WETH, Ethereum v3 USDC, and Arbitrum v3 USDC.

Comet Collateral Factor Liquidation Factor Liquidation Penalty Supply Cap
Base v3 WETH 90% 93% 2.5% 100
Ethereum v3 USDC 83% 88% 8% 40k
Arbitrum v3 USDC 78% 83% 10% 2k

Analysis

wstETH (contract address 0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452) has recently launched on BASE. We recommend setting a conservative supply cap of 100 to start, with plans of increasing it as liquidity continues to grow on-chain.

wstETH liquidity on Ethereum and Arbitrum is considerably higher. The recommended supply caps are set to values which result in ~10% DEX slippage, with the optionality to increase them if the market shows demand.

Next Steps

We welcome community feedback.

4 Likes

While reviewing Lido’s proposal on Github, the question of pricing strategy for LSDs has come up again. This has been discussed on Discord and in meetings, but it would be helpful to continue the discourse in the forums.

Context on pricing strategies
Just to lay it out for everyone, there are currently two pricing strategies for LSDs adopted by defi protocols:

  • Market Price: The market price is generally sourced from both off-chain (CEXes) and on-chain (DEXes) avenues. An example price feed would be the stETH/USD Chainlink pricefeed, which aggregates the price of stETH from different sources.
  • Exchange Rate Price: The exchange rate price takes the on-chain exchange rate between an LSD and ETH and multiplies it by the market ETH/USD price. The exchange rate can be found directly in the LSD contract and it tracks how much ETH can be redeemed per unit of LSD held by a user.

Risks with each approach
Market pricing is the most common strategy used for almost all assets. The risk with using market prices is that prices can be manipulated if there is low liquidity on exchanges. This is becoming a more tangible issue as LSD liquidity on exchanges moves to other venues, such as lending protocols and restaking protocols.

Exchange rate pricing comes with its own risks. The main risk I can think of is depegging risks. After the Shanghai fork and the introduction of withdrawals, this risk has decreased. However, the risk of slashing and inactivity penalties is still non-zero. Penalties that trigger a negative rebase of an LSD can cause temporary depegs because there is usually a delay between the slashing event and the negative rebase. During this delay, the market price of stETH could depeg against ETH, but a protocol using the exchange rate price would still price them as 1:1.

Personal thoughts
I see more and more of the space move towards exchange rate pricing, which I believe is the right move to make. As stated previously, liquidity of LSDs on exchanges is often low and trending down, so being resistant against market manipulation attacks is important. However, the protocol should also be able to gracefully handle depeg events if exchange rate pricing were to be adopted.

Right now, some of the risk could be mitigated through proper supply cap configuration. Perhaps a reasonable action is to proceed with exchange rate pricing while starting with conservative supply caps.

I’m curious what other community members, such as @Gauntlet, @CL_Michael, and @cylon may think about this.

3 Likes

In response to the request from the Lido team to incorporate wstETH as collateral within the Compound v3 markets, OpenZeppelin reviewed the proposals for Base v3 WETH, Ethereum v3 USDC, and Arbitrum v3 USDC markets. We are confident that these proposals accurately integrate the specified collateral into the protocol, adhering to the parameters recommended by the Gauntlet team.

Exchange Rate vs Market Rate

Concerning the discussion on exchange rate pricing versus market rate pricing, we agree that the approach of utilizing exchange rate pricing is preferable as it enhances security by offering better protection against potential market manipulation.

Future areas of concern

One area we aim to further explore involves the dynamics between Lido’s trusted Node Operators and Compound v3 users who opt for wstETH as collateral. Essentially, this includes a review of Lido’s trust assumptions to determine whether they sufficiently safeguard v3 users from specific attack vectors that could lead to liquidations. Introducing Lido across each market increases the trust on Node Operators to act responsibly. As an example, it is important to verify that deliberate slashing by one or multiple node operators does not jeopardize the positions within Compound v3, potentially causing them to go underwater.

3 Likes

Thanks for starting this conversation in the forum about Exchange vs Market rate price feeds. Regarding the current liquidity for LSDs, the data below indicates that there have been no negative trends in LSD liquidity over the past months, as evidenced by the 2% Depth USD across both CEX and DEX markets.

LSTs 2% Depth USD

Although there are currently no signs of deteriorating liquidity, Gauntlet shares similar concerns regarding the future liquidity of LSDs. With LSD liquidity potentially shifting to restaking protocols, especially given the rapid growth in the space, and with increasing deposits in lending protocols, there could be downward pressure on liquidity. This shift may create a potential risk of manipulation for market price oracles moving forward, especially for lower liquidity LSDs like cbETH and rETH.

Liquid Restaking Tokens have been rapidly growing the past month and currently have $3.1B TVL

To address concerns about potential future low liquidity in the LSD markets, the community may consider implementing exchange rate-based oracles for LST assets within correlated Comet markets. Exchange rate-based oracles represent the rate for redeeming or staking assets via smart contracts, which market pricing does not influence. We have conducted a market risk analysis on market price and exchange rate oracles, that is detailed here. As mentioned in the original forum post, exchange rate oracles come with certain risks:

  • Depegging Risk: In tail risk scenarios, there could be huge deviations in the smart contract rate and the market rate. During such events, the long queues for unstaking LSTs may prevent the smart contract rate and market rate to converge and lead to insolvent positions on the comet. Such deviations could happen in the case of mass slashing, technical risks (e.g. smart contract vulnerability), etc. It’s important to note that in these scenarios, despite the extreme price deviation between the market price and smart contract rate, liquidations would not occur, because the smart contract rate of the LST prices would remain the same.
  • Manipulation Risk: The exchange rate contract faces a risk of exploitation, particularly when some exchange rate oracles are controlled by externally owned accounts (EOAs), making them vulnerable. This could result in the manipulation of exchange rates and potential loss of deposited base tokens.

If the community decides to pursue exchange rate oracles, preventive measures can be implemented to mitigate LST risks associated with price dislocation and EOA concerns:

  • Severe Dislocation Mechanism: Protocols may implement measures, like halting new supplies or setting collateral factors (CF) to zero, to prevent an increase in LST supply during significant market dislocations, despite their rarity and unpredictability.
  • Oracle Feed Threshold Mechanism: Implement a smart contract on the Oracle feed of all assets, particularly those dependent on exchange rate feeds, to prevent the price from exceeding a certain ratio. This strategy helps prevent potential upward price manipulation and protects protocol deposits.

In summary, we advise the community to carefully evaluate the pros and cons of exchange rate-based oracles and consider implementing risk-mitigation measures where necessary.

4 Likes

The oracle feed threshold mechanism is an excellent idea but I think it should be expanded to protect USDC suppliers from LST depegs due to slashing/lost keys etc…

Liquidations should check the lower of the exchange rate price and the maximum chainlink price over the last 5-10 minutes (or some other smoothed chainlink price). This will protect USDC suppliers from being at the mercy of trusting LST exchange rate contracts, while also minimizing market manipulation/flash depeg risks.

2 Likes

It appears that a proposal has been put forward which uses the Lido reported value for wstETH and pegs the value of stETH at 1 ETH while not including any of the risk mitigations that @Gauntlet proposed.

Additionally, the oracle used in the proposal mislabels a Chainlink ETH/USD price feed as “stETHToETH” pricefeed.

I would encourage the proposal authors to retract this proposal until appropriate corrections and risk mitigations are in place for using an oracle which does not reflect market pricing.

Additionally, I am curious on @Gauntlet’s opinion on using WSTETH/ETH market price (which has very good liquidity) combined with ETH/USD price for the oracle. This seems much better than the current proposed implementation.

1 Like

Thank you, @zetaproject, for highlighting the Oracle implementation. As previously discussed, the use of exchange rate feeds necessitates careful consideration and strategic planning. We suggest the community engage in a vote to decide Compound’s approach to the use of exchange and market rate price feeds.

Ultimately, Gauntlet recommends the implementation of consistent price feeds for LSTs and encourages a collective decision on a standardized implementation going forward.

1 Like

Thank you for pointing this out @zetaproject and thank you @Gauntlet for a prompt response.

The proposal does in fact adhere to Gauntlet’s risk parameters correctly. However it does deviate from the recommendations for market pricing vs exchange rate pricing.

Given that Gauntlet recommends very conservative risk parameters at the start, we’ve approached this this proposal alongside Lido as an initial step to assess wstETH demand on Compound.

We believe this is an opportunity to explore exchange rate pricing on Compound with arguably the foremost incumbent liquid staking protocol. Although we do acknowledge the risks, and their potential to impact Compound in a major way we’re also confident in the robustness of Lidos validator set and ability to uphold credibility as it relates to reporting their exchange rate. We’re also bullish on the implementation of these kinds of risk mitigations to further bolster exchange rate pricing. Despite these considerations, future changes could be made to introduce Gauntlet’s proposed mitigations or switch to market pricing before the conservative parameters are relaxed.

We also anticipate that in the future the risk of slashings will continue to decrease as node operators become more sophisticated and adopt new technologies such as DVT and TEEs which Lido has already put into motion with simple DVT.

In response to this other point, the issue here is that the WstETHPriceFeed contract contains hardcoded descriptions assuming that the stETH/ETH is used in combination while it can be, in fact, combined with the ETH/USD pricefeed:

So this is just a discrepancy in the contract’s documentation rather than a functional discrepancy.

Moving forward we also encourage the movement towards consistent price feeds for LSTs and would love to see this go to a collective decision. Franklin DAO would be happy to put this proposal forward individually or co-author it with any other willing parties. On this note it’s our opinion that in order to support LRTs in a scalable manner, exchange rate pricing makes sense to support.

2 Likes

Thank you for the thoughtful reply. I think it’s prudent to correct the incorrect hardcoded values before deploying to mainnet.

I’d also like to propose a slightly altered oracle which uses both the exchange rate price and market price. I will submit the proposed oracle for review later today.

1 Like