Flagship Vault Guardian - Voting Tutorial for LPs

Morpho Blue is live, and B.Protocol and Block Analitica are curating the risk for the MetaMorpho Flagship Vaults (our Flagship ETH Vault is live, with others to follow soon). We have published our unique setup to allow Vault’s LPs to have control over the Guardian role of the Vault in order for them to be able to cancel malicious actions initiated by a compromised Owner or Curator. You can read the full article on the setup here.

This tutorial will go step-by-step to explain the process of proposing a vote and executing it in case it is passed. Note that screenshots are taken from the Snapshot testnet playground on Goreli but the flow is the same on mainnet.

Opening a New Proposal

  1. Go to Snapshot. Each Vault will have its unique Snapshot Space based on the Vault’s name and token, all under morpho-guardian.eth ENS.


2. Open a new proposal with the relevant title and description (e.g. the transaction type initiated by the Owner you wish to revert). You can also add a link to a forum or any other discussion thread that taken place before the vote.

a. In order to open a proposal a user must hold a minimum of 0.001% of the total supply of the Vault LP tokens in order to prevent spam proposals.

b. The voting token of the Snapshot Space is a Vault’s wraped LP token that calculates the percentage of each LP out of the current total supply. It is marked as vwt token, and you can find its code [here](https://etherscan.io/address/0x040a3F5c2D7CB25F85913dDd3A194bf81FE087d9#code).


3. Mark the checkbox to use oSnap so that in case the vote passes the transaction could be executed by the Guardian of the vault. Once the oSnap module is picked you can’t change the voting type (Basic voting with Yes/No/Abstain options). The time duration of the vote is set for 2 days and can’t be modified besides the starting time.


4. You can verify the addresses of the safe and the oSnap module (the addresses in the images below are from testnet. The Guardian’s Safe and oSnap module will be posted on the Morpho forum for each Vault)



5. Click on the “Add transaction batch” button and add the required details:
a. Type - should be “Contract Interaction”
b. To (address) - should be the Vault’s address. For the Flagship ETH (bbETH) this is the address.
c. Value (wei) - should be 0 as no ETH is being transferred.
d. ABI - paste the Vault’s ABI copied from the contract of the Vault.

  1. Once the ABI is pasted you would need to choose the function you want to call out of the listed functions. Make sure to use the relevant one (1 of the 4 functions the Guardian has control over).


7. For some of the functions (RevokePendingCap and RevokePendingMarketRemoval) you would need to add the relevant market id.
2. Once everything is set you can publish the vote and sign it on your wallet to make it public. The vote will be live for 2 days (48 hours) from the starting time set on the proposal.

Executing with oSnap

Once the vote has ended and the quorum was reached (a minimum of 15% of the current total supply of the Vault has to vote Yes and be the majority of the votes) the proposer or someone on his behalf would need to execute the transaction using the oSnap module and UMA protocol.

  1. Approve a bond according to the requirements set for the oSnap module. For the Flagship Vaults the Bond is set to be 2000 USDC and its liveness (the duration of the bond to be staked before the proposal can be executed) is set to 24 hours to give time for anyone to dispute the vote.


2. Wait for the dispute period to end (24 hours)
a. If someone disputes the proposal during these 24 hours, s/he would need to set up a bond that won’t be returned if the vote is verified as valid.

  1. Request to Execute the transaction over the Snapshot UI.


4. Execute the transaction once the challenge period has ended.


For any questions or feedback feel free to get in touch with the B.Protocol team here, or over our Discord.

7 Likes

Hello and thank you for this tool.
I think it’s very important to allow vault users to protect themselves in some way (in addition to timelock, which also allows a reaction time).

In fact, the timelock is currently 4 days for the Flagship ETH vault.

The purely technical process explained above seems to take 3 days (48 hours of voting, 24 hours of dispute) before the current transaction can really be reverted.

This leaves little time for vault users to react in terms of organisation.
Apart from the timelock duration itself, I was wondering how vault users would be informed of the changes made by the various vault roles (allowing them to react if necessary).
How would users be informed of each change made by the vault managers?

Thanks again!

2 Likes

Sorry for the late reply.
Trying to better understand - what is it that bothers you about the time? That 24 hours won’t be enough for the LPs to organize the vote? or that 48 hours is too short for voting? Something else?

Looking at Aave and Compound (on-chain) vote processes they last 3-5 days (depends on what you include in the process). As this setup enables on-chain execution with an off-chain vote we believe this is within the scope of the current “norms”.
But I would be happy to hear your PoV.

1 Like

For ease of access and tracking, we will use this thread to list all the LP Guardian Snapshot Spaces for the Flagship Vaults that Block Analitica and B.Protocol co-curate :

Flagship ETH (bbETH) -

Snapshot Space - Snapshot
Guardian address - 0xB6F83824F267320a66850C59FE05d21cAb9C4D41
oSnap Module address - 0x6a1Df92E1d23389d0ecE89e8848538b98984e564
Morpho Vault - Morpho Blue

Flagship USDC (bbUSDC)

Snapshot Space - Snapshot
Guardian address - 0x8B9cB6eb51bE08507Dffc280F880bF8FB36c0f08
oSnap Module address - 0x7A153597708763947c2cCcb816B34bA4f2cBA11c
Morpho Vault - Morpho Blue

2 Likes

Thanks for your reply!
As the timelock is 4 days, if a malicious tx or one that simply goes against the LP’s interest is triggered, it will be applied after 4 days.
I’m not bothered by the 3-day procedure (48 hours of voting + 24 hours of arguing).
It’s the remaining 24 hours that this gives the LP to identify that a tx has been launched (especially that) and to organise the vote that seems short to me. Especially since, as an LP, I don’t know how I’ll be informed of such a change.

An automatic notification system would help, I think, or a longer timelock, as I think Steakhouse has done: Steakhouse USDC MetaMorpho Vault SAFU - Guardian Drill Report - #2 by MerlinEgalite

Also, is this forum post the best way to get in touch with the Flagship vault curators?

1 Like