[TEMP CHECK] Cap LRT and PT oracles at 1

The LRT and Pendle markets are a huge success for silo. In order to harden them and attract more capital I believe the DAO should consider hardening the oracles by setting a cap on the values of LRTs at 1 ETH and a cap on PT token values at 1 underlying value. We saw the risks of bad oracles with wstETH being mispriced on arbitrum leading to big liqudations.

There is no case where a PT token should be worth more than one of it’s underlying.

LRT’s could conceivably be worth more than 1 ETH if staking is capped, but for now it is not possible. However, we could consider not implementing the cap in markets where LRTs are borrowable or removing them if staking caps are implemented.

I believe implementing these caps would remove a major weak point in Silo’s biggest growth area and spur more and safer growth in the protocol.

1 Like

Thank you for the temperature check.

The wstETH situation was different. wstETH/ETH chainlink feed reported a decreased value for wstETH, leading to the dumping in collateral value for wstETH deposits. Implementing a max cap on wstETH would not have helped.

To add more context before sharing feedback, these are the oracles used today:

  • Vanilla LRTs: We use RedStone and Chainlink. For example, ezETH-ETH Chainlink price feed is considered medium risk, quoting: "ezETH-ETH…is classified as a Medium risk feed. Some factors that contributed to this categorization: High concentration of volume on a single exchange, only 3 approved trading venues, and 100% of the volume on dexes. The average 30d volume was $33,139,159 which is above our $3,000,000 requirement. "
  • For PT tokens, there are actually two oracles used to price them: Pendle oracle that prices PT in the underlying asset (PT-eETH/eETH for example); and then another oracle is used to convert the underlying asset to ETH (Redstone oracle is used to convert eETH->ETH).

So for circuit breakers:

  • For PT-tokens: a PT-xx token should never exceed the value of the underlying. This only helps if there are pumping situations - example: oracle manipulation to pump PT price and borrow more than the system normally allows. Implementing a max range might help prevent such situations. However, capping max PT to 1 ETH doesn’t solve the issue related to dumping PT value (an attacker might perform dumping to catch liquidations, for example).

For Vanilla: Do we want to cap the price at 1 ETH? I think that would be a mistake since LRTs are supposed to go up in value over time. We can possibly implement a max range for the value of LRTs but the range must be checked regularly and adjusted. Like with PT tokens, a max value doesn’t prevent value dumping, which seems to be the main risk.

I think we need to do our research and arrive at the ideal solution.

You make a good point in that this won’t help with price dumping triggering liquidations (or bad debt from LRT/PT borrows in markets where the LRT/PT is borrowable), but I don’t necessarily agree that is the main risk.

I see an inflated LRT/PT oracle price leading to bad USDC/ETH debt as an equal risk, and one which could be mostly prevented by caps without much, if any, downside.

Also, I agree that capping non-rebasing LRTs (e.g. ezETH) is more challenging.

However, capping rebasing LRTs (e.g. eETH) at 1 ETH seems easy and useful (since only weETH should go up in price). I can’t think of any significant downside to capping the entire PT-eETH oracle chain at 1 ETH, nor to capping weETH at the weETH contract reported exchange rate(at least on mainnet, not sure if this is doable on ARB)