Liquid Staking

Auto-compounding liquid staking token

The liquid staking token, also called the LST, is the easiest way to get rewards from staking. It's like what stETH does for ETH staking.

  1. The LST is, of course, liquid. Staking positions can be transferred without unstaking.

  2. The LST auto-compounds rewards. Holders will automatically accrue the rewards without having to call claim()

  3. The LST keeps governance power active. When the LST is in DeFi, cold storage, or a centralized exchange, the LST provides a backup plan for governance power.

    1. The backup, called the auto-delegate, has the job of keeping voting power active in governance. For example, see the OverwhelmingSupportAutoDelegate, which only votes on proposals that have lots of consensus.

Check out the code in the open-source stGOV repo.

How it works

  • Holder stake tokens to receive LST tokens.

  • Optionally, they can delegate the governance token voting power

  • The LST contracts deposit the staked tokens in Staker. The LST assigns the voting power to the holder's chosen delegate, if any. Otherwise, it assigns the voting power using the default auto-delegate

  • The auto-delegate can be configured by governance. This keeps the default voting power aligned with the DAO and mitigates capture risk.

  • The LST contract claims Staker's rewards regularly.

  • The position compounds. The rewards are auctioned off for more of the staked token, which is added to each user's staked position. e.g. a deposit worth 100 GOV tokens might grow to be worth 105 GOV tokens.

Holders can redeem their liquid staking tokens for the underlying staked token at any time. The LST has a short withdrawal delay to prevent MEV extraction.

Architecture

Roles and key methods of the LST

Key roles:

  • Stakers - any holder of the staking token can stake for rewards

  • Owner - manages the fee switch

  • DelegateAdmin - controls the auto-delegate

  • Searchers - anyone, such as MEV searchers, can be a "crank turner" to push rewards through the system to stakers.

Fee switch:

  • The owner can change the fee, up to a hardcoded MAX_FEE_BIPS .

  • The fee is collecting on rewards. When a reward is distributed from the underlying staking system to stakers, the fee is applied to the reward amount.

  • The fee is only collected on rewards. There's no fee on deposits, staked assets, or withdrawals.

Auction mechanics:

The LST wants to accrue rewards in staking tokens, not other reward tokens. To do so, it auctions off rewards to MEV searchers. The LST has a public method that allows any caller to swap a fixed amount of native tokens for all its staking rewards, which can be in any token(s).

Think of this system as a reverse Dutch auction. The buyer, the LST, is always willing to accept X amount of staking tokens for its accumulated staking rewards. Each block, the accumulated staking rewards increase. Eventually, an MEV searcher should be willing to accept all the accumulated rewards in return for X amount of staking tokens. Note that the MEV searcher also has to pay the gas for this transaction.

Here's an example:

  • An LST contract has accrued rewards of 0.99 ETH in the staking contract.

  • The payoutAmount in the LST is configured to 500 staking tokens.

  • Imagine ETH is trading at $2,500 and the staking token is trading at $5.

  • At this point, the accrued rewards are worth $2,495, and LST is asking for $2,500 worth of the staking token. No searchers are willing to make that trade because it's a loss for them.

  • A few blocks later, the LST contract earns another 0.01 ETH. Now, the accrued rewards are worth $2,500, and the LST is asking for $2,500 of the staking token.

  • At this point, the value of ETH available to be claimed is equal to the value of the payout amount required in staking token.

  • Once a bit more ETH accrues, it will be profitable for a searcher to trade their 500 staking tokens and pay the gas to trade for the accrued ETH rewards.

  • The LST holders have now increased their collective holdings by 500 of the underlying staking token.

Contracts

Each LST deployment consists of two ERC-20 tokens that distribute rewards through the same underlying accounting system.

  • src/GovLst.sol - Implements a rebasing style liquid staking token similar to stETH. One LST token is worth one of the underlying staked token, and each user's balance is updated dynamically.

  • src/FixedGovLst.sol - Implements a fixed balance vault-style staking token. A user's balance does not change, but also does not map 1:1 with the underlying staked token. Instead, the number of underlying tokens a user may claim in exchange for their position goes up over time.

Each deployment of the LST system includes both style of tokens, but a project may choose to emphasize one or the other, or to put both front and center for their users. Generally, fixed balance tokens are preferred by integrators and custody providers.

For more information about the LST contracts, see README of the stGOV repository.

Last updated

Was this helpful?