LST Governance Capacity Inheritance (GCI)

Overview

vToken Voting is one of the features of Bifrost LST, which reserves the right for Bifrost LST holders to participate in on-chain governance. Taking Polkadot as an example, users holding vDOT can use DOT to participate in Polkadot's governance voting.

As a governance token for Polkadot, DOT holders can participate in Proposal voting while also participating in DOT staking. And vDOT, as a DOT Liquid Staking Token, retains the same rights as DOT. Using the Bifrost Dapp, you can automatically capture DOT staking rewards and also view proposals in Polkadot OpenGov and lock vDOT for voting participation.

This also applies in the same manner for vKSM holders.

Functionalities

vToken Voting covers the following features:

  • View ongoing Proposals on the main chain

  • Vote Aye/Nay/Abstain

  • Choose conviction

  • Lock vTokens and vote

  • Unlock vTokens after the lock period ends

What is Conviction?

“One of these mechanisms is called conviction voting, and imbues greater voting power to token holders who are willing to lock their tokens on the protocol for longer lengths of time. Longer lock-ups display conviction in a vote. Conviction voting could allow a highly determined minority to overrule the vote of an apathetic majority in certain situations.” - from Polkadot Wiki

Learn more details about conviction at here.

How it works on Bifrost?

To better understand the principles of vToken Voting, we first need to understand the relationship between Bifrost LST and governance voting (using vDOT as an example):

  1. Addresses that stake DOT on Polkadot have the right to participate in governance voting.

  2. The DOT staked for vDOT is executed by derived addresses from Bifrost's sovereign address on Polkadot. Therefore, these addresses also have the right to participate in governance voting.

  3. Bifrost's sovereign address (definition) is the parachain address on Polkadot: 13YMK2eeopZtUNpeHnJ1Ws2HqMQG6Ts9PGCZYGyFbSYoZfcm. The actual derived addresses used for DOT staking and voting are calculated based on the sovereign address and are also keyless addresses.

  4. Bifrost executes governance voting on Polkadot by making XCM calls to the derived addresses.

vToken Governance Lock

When a user uses vToken for on-chain governance, the corresponding vToken will be locked based on the parameters chosen by the user. Locked vTokens cannot be transferred or redeemed, but it does not affect the yield from exchange rate increases.

An increase in the exchange rate of vToken does not automatically increase the supply. When the governance lock ends, the corresponding vToken will be unlocked.

Governance Lock Amount

Since a user's vToken can participate in multiple different governance referendums simultaneously, the lock duration varies. Therefore, the governance lock amount is calculated based on the comprehensive data of all vTokens currently held by the user. As a result, vDOT can participate in multiple Referenda votes simultaneously.

Now, based on the above conditions, let's understand the operating principle of vToken Voting:

vToken Voting Freamwork

  1. Assuming a Bifrost user locks 10 vDOT to vote in favor of Referenda 1 with a 3x Conviction.

  2. The SLP module will first calculate the amount of vDOT equal to 12 DOT (assuming a vDOT-DOT exchange rate of 1:1.2). Then, based on the user's vote in favor and the Conviction multiplier, it will make an XCM call to the corresponding derivative address under the Bifrost Sovereign address.

  3. The amount of staked DOT in each derivative address represents the maximum voting power of that address (as shown in the figure below). At the same time, each Conviction multiplier corresponds to three derivative addresses, representing aye/nay/abstain voting intentions. Therefore, based on the user's demand, derivative address 1 will vote in favor of Referenda 1 with 12 DOT and lock 3x Conviction.

  4. When Referenda 1 ends and the Conviction Lock is lifted, Bifrost users can call the Unlock function to unlock 10 vDOT. At the same time, Conviction unlocking will also be executed on Bifrost derivative address 1 on the relay chain.

Derived Address Information (Continuously Updated)

Polkadot

Derivative AddressConvictionAttitude

14vtfeKAVKh1Jzb3s7e43SqZ3zB5MLsdCxZPoKDxeoCFKLu5

0.1

Aye/Nay/Abstain

14QkQ7wVVDRrhbC1UqHsFwKFUns1SRud94CXMWGHWB8Jhtro

3x

Aye

13hLwqcVHqjiJMbZhR9LtfdhoxmTdssi7Kp8EJaW2yfk3knK

3x

Nay

Kusama

Derivative AddressConvictionAttitude

EckcmXbCj4huvNLP5btMFmJz8SzEt5s8hgKcL6LM8BtZeAf

0.1

Aye/Nay/Abstain

J3Kp9LPQpRvVmJmmEuYJjW2UFnSQptZ3pbpSZbFLLgWF7WR

3x

Aye

DFw6MtEaT5PSZHzd43UW2YnEx4GNzAfCzejruhBt1tnBJaF

3x

Nay

For the subsequent optimization of Voting Conviction

In the relay chain, when changing Conviction through voting, the previous locked Conviction will be replaced by the new one. However, for Bifrost, since Bifrost uses multiple derivative addresses to vote, each individual derivative address represents only one Conviction multiplier. Therefore, we need an atomic transaction to switch Conviction:

  1. Cancel the vote using address A, which has a Conviction of 3x.

  2. Revote using address B, which has a Conviction of 0.1x.

To ensure the atomicity of this operation, we need to execute a batch_all call on Polkadot. This functionality will be optimized in future versions of vToken Voting.

Last updated