1

I want to add liquidity to a pool with a yield-bearing token, such as stETH/ETH. Where does the yield of this token go to? Does it just go to the smart contract and gets owned by the smart contract, or do I get them added to my position, and can withdraw it later? If some exchanges work differently, please tell me how they differ.

2
  • 1
    I edited a bit, check if the edits match your intention. It's a good question with some potentially deep and detailed answers. I think there are even some DEXes that optimize for this use case.
    – kfx
    Commented Jul 6, 2023 at 13:29
  • ok I'll give a shot at answering this, hopefully got it right
    – kfx
    Commented Jul 7, 2023 at 21:12

1 Answer 1

2
+50

There are at least two types of yield-bearing tokens:

  • rebasing tokens - they increase in number over time, e.g. stETH
  • reward-bearing tokens - they increase in value relative to the base asset over time, e.g. RocketPool ETH (rETH)

The latter don't require special handling, except as they increase in value, arbitragers are going to come and periodically "rebalance" the price in the pool.

Rebasing tokens are tricky and difficult to integrate in a DEX. That's why often there's a wrapped version of the rebasing token, e.g. wstETH exists.

The details depend on the DEX. If we're talking about Uniswap specifically, and look at an stETH/ETH pool, the extra stETH tokens created by the rebase would go directly in the pool, but the details depend on the version.

  • in Uniswap v2, they're "donated" to the pool, but anyone can steal them by calling skim() - so it's best to use wrapped version of stETH
  • in Uniswap v3, rebasing tokens are not supported, stETH must be wrapped or the pool will not function at all
  • Uniswap v4 is similar to v3, except that all kinds of things are possible with customly designed hooks, including giving the extra yield directly to LPs - but this is theoretical, since v4 is not out yet.

Not the answer you're looking for? Browse other questions tagged or ask your own question.