Author(s): @gxmxni Related Discussions: N/A Submission Date: May 27 2024
Simple Summary
This proposal adds the ability to stake different amounts of HFT for different periods of time using the same wallet, thus creating multiple “vaults”. The veHFT (governing power) of the wallet is then calculated as the sum of the veHFT in each vault.
Abstract
Today, every user (denoted by a wallet) is limited to one staking vault. The staked amount can always be increased. The stake duration can also be increased (up to a maximum of 4 years). However, staking different amounts for different periods of time requires the use of multiple wallets.
For example, if DAO member X stakes 1 million HFT for 3 months, they cannot stake another 100,000 HFT for a different period (e.g. 1 year) without switching wallets.
This is untidy for multiple reasons:
Specification The implementation of this proposal will include multiple (technical) layers, as documented below.
Smart Contract code changes
The StakingVault contract will be modified to support multiple vaults per user. When staking, the user will choose which vault they want to interact with, via a vault index.
Allowing for an arbitrarily large number of vaults could raise DoS / UX concerns, so the number of vaults will be limited to 10 to begin with.
The contract will compute the stake power as an aggregate of the stake power in every vault opened by a user.
Hashflow App changes
The Hashflow Staking UX will be redesigned to display and allow for the creation of multiple vaults.
Snapshot algorithm change
The ABI of the stake power method will be preserved, so the same Snapshot strategy will be used (with a different target contract).
Backward compatibility with current vault
Every vault in the current StakingVault contract will be regarded as an additional vault for each user, and stitching will be done at every layer where necessary:
Code audits
An audit will be required for the new contracts. This audit will be funded by the Hashflow Foundation.
Benefits -users only need to use one wallet in order to stake for different amounts of time
Downside
Voting