Lido on Terra protocol upgrade


The liquid staking on Terra represented by bLuna token showed itself pretty successful. At the moment of writing this proposal:

  1. bLuna TVL is ~2.8B USD (~68M Luna).
  2. ~20% of staked Luna is staked with bLuna.

Nonetheless, it has a bunch of peculiarities such as uneven distribution and design decisions making it unwieldy to integrate with other DeFi protocols. To solve those peculiarities we propose the upgrade of the protocol. The new version of the protocol contains the next amount of features:

  1. The user can not delegate to a specific validator. A new contract is added, the Validators Registry, that keeps the list of approved validators and picks the next most suitable validator to delegate to. This aims to distribute the stake evenly across all validators.
  2. The new token is added: stLuna. It is interchangeable with bLuna and corresponding rewards are re-staked.
  3. The possibility for contracts administrator to re-delegate Luna across validators so it could be fixed the current distribution imbalance in an artificial way rather than waiting for it to be fixed in a natural way.
  4. The possibility to take the Lido fee from the rewards.

Note: points 3 and 4 are about adding the technical possibility to make stake redelegation and taking Lido fee from the rewards and not about the particular processes of making it.

So there are three points that will be the topics of upcoming governance discussions:

  1. The procedure of stake redelegation.
  2. The amount of fees that should be taken by Lido.
  3. The liquidity mining details.

The code of contracts implementing all of the features is already written and the audit is made by Oak Security.

The current proposal consists of two parts:

  1. Transfer contracts ownership to multisig of 7 participants (with the threshold of 4) which include the representatives of:
    1. P2P Validator
    2. Anchor Protocol
    3. Delphi Digital
    4. Chorus One
    5. DSRV
    6. Staking Fund
    7. Everstake
  2. Upgrade contracts code to the new version.

If the proposal will be accepted, the estimated time to deploy the new protocol version is Dec 1.

The benefits of the upgrade are described below.

Stake flattening

The new version of protocol keeps delegations to be distributed evenly between all the validators in the whitelist (point 1 in the list above). The user won’t have the ability to choose a validator. Such behavior should make both the protocol and Terra ecosystem become more decentralized.

Because of the huge delegation distribution imbalance (~60% of overall Luna staked with bLuna delegated on top-2 validators), it’s hard to fix it in a “natural” way (only with new delegations). So it made the possibility to make an artificial stake flattening (point 3 in the list above). All current delegations could be distributed between the validators evenly after the new version of protocol deployment. The details of the process are going to be put on the governance decision in the nearest future. The main idea here is to make the process not instant but prolonged in time so it would be more comfortable for validators.

The main question one could ask is that users choose a validator while minting bLuna and now their decision of choosing a validator will be ignored. The answer is that:

  1. Generally, bLuna minter and holder are different (because the purpose of the protocol is to make staking liquid).
  2. Minted bLuna tokens aren’t tied to the selected validator and all bLuna holders share risks together anyway.

stLuna is more usable for DeFi protocols

The bLuna’s rewards have to be claimed by the users manually while interacting with the special smart contract. Any DeFi protocol which wishes to have an integration with bLuna (i.e. for landing) needs to deal with claiming rewards mechanism. It makes the integration process more complex and opaque.

Making the rewards being automatically re-staked (instead of claiming it manually) makes the stLuna token more usable in DeFies. Integration became much easier because any other protocol doesn’t have to deal with rewards: stLuna underlying Luna amount just increasing with time (in case there are no slashing events).

stLuna is good for liquidity pools

The rewards claiming mechanics also cause liquidity pools to be not so pretty for users. While bLuna is locked in the liquidity pool, rewards are distributed to the pair’s smart contract. That means that users are losing their rewards while staking pair to LP.

Because of that, the LP for bLuna is thin. That leads to a possible losing peg between bLuna and Luna. An example is liquidations on Anchor protocol that lead to a lot of bLuna-Luna exchanges made on TerraSwap. Because the cap was too small for such an amount of deals, bLuna price dropped to 0.88 Lunas for 1 bLuna.

Anchor protocol made actions to prevent such a situation in future, but other DeFi protocols could skip it and keep bLuna/Luna peg brittle.

With stLuna, such a problem doesn’t exist because of the same reason described for DeFi protocols integrations.

stLuna works well with bridges

While bLuna token is passed through the bridge, the actual bLuna token is locked on Terra’s side of a bridge, while a wrapped version of bLuna is minted on the other’s chain side of a bridge. While bLuna is locked on the bridge smart contract, rewards are distributed to the bridge’s smart contract address. So rewards are not passed through the bridge automatically and the additional code should be written to support such a functionality implicitly. With stLuna, no rewards need to be passed through the bridge. One can easily get the stLuna/Luna exchange rate and understand how many Lunas he or she can get for the amount of wrapped stLunas he or she has.

Instant bLuna-stLuna conversion

Because bLuna and stLuna are ruled by a joint set of smart contracts, it is possible to convert bLuna to stLuna and vise-versa with one smart contract call. It means that bLuna holders don’t need to unbond their Luna or sell bLuna through a market to get stLuna: they can make the exchange directly with the smart contract with no commission (except transaction fees). Same for holders of stLuna that want to get bLuna. The next big thing is that because stLuna and bLuna are interchangeable, there is no need to keep LP for both tokens: the LP for stLuna is enough to have to provide liquidity for both tokens.


Very well put together, and clearly a much-needed upgrade. Nice job!


@kai this is excellent! Thank you for breaking down the comparison between the two. I agree that stLuna is a welcome’d upgrade living in parallel to bLuna.


Quick update regarding the protocol migration. We’ve faced a couple of integration issues so the deployment is a bit delayed. Issues are already solved, so the deployment should happen in less than a week