vega-frontend-monorepo/specs/1005-VEST-vesting.md

5.6 KiB

Vesting

Some governance tokens may be held by a Vesting contract. This means that can be "owned" by an Ethereum key but not freely transferred until a vesting terms are complete.

list of tranches

When looking to understand to overall vesting schedule for tokens, I...

  • must see a list of tranches 1005-VEST-001
  • should see a visualization of the vesting schedule with a break down of the type of token holders (e.g. team, investors, community) 1005-VEST-002

For each tranche:

  • must see a tranche number 1005-VEST-003
  • could see any annotation of what this tranche is about (e.g. community schedule A)
  • must see a sum of tokens in the tranche 1005-VEST-005
    • must see how many tokens in the tranche are locked 1005-VEST-006
    • must see how how many tokens in the tranche are redeemable 1005-VEST-007
  • must see the vesting terms for each tranche (when unlocking stats and ends) 1005-VEST-008

... so I can understand how circulating supply could change over time.

Details of a tranche

When looking into a specific tranche, I...

  • must see all the same details as the list of tranches
  • should see a list of ethereum wallets with tokens in this tranche

for each ethereum wallet:

  • should see the full eth address of the wallet
  • should see the total tokens this address holds in this tranche
    • should see how many tokens in the tranche are locked
    • should see how how many tokens in the tranche are redeemable

... so I can see the details of how tokens are distributed in this tranche

See summary for a given Ethereum key

When looking to see how many tokens I have in total, and how many I might be able to redeem, I...

for the a given Ethereum wallet/address/key:

  • must see a total of tokens across all tranches 1005-VEST-020
    • must see how many tokens across all tranches are locked 1005-VEST-021
    • must see how many tokens across all tranches are redeemable 1005-VEST-022
  • must see a list of tranches this key has tokens in 1005-VEST-023
  • must see a total of tokens in each tranche 1005-VEST-024
    • must see how many tokens in each tranche are locked 1005-VEST-025
    • must see how many tokens in each tranche are redeemable 1005-VEST-026
    • must see an option to redeem from tranche 1005-VEST-027
    • should see how many tokens I'd need to disassociate to be able to run the redeem function (this should be rounded up to avoid the transaction failing due to more tokens having unlocked since the user looked at the form)
    • should see link to disassociate

... so I can easily see how many tokens I have, and can redeem.

Redeem tokens from a tranche

Note: it is not possible to choose how many tokens you redeem from a tranche, instead you select a tranche and the smart contract will attempt to redeem all. However, it will fail if some of the amount it attempts to redeem have been associated to a Vega key. Therefore the job of this page is to help the user work out how many tokens to disassociate before they can successfully redeem.

When looking to redeem tokens, I...

  • must connect the ethereum wallet that holds tokens 1005-VEST-029
  • must see see all tranches that you have tokens in (including tranche 0) 1005-VEST-036
  • must see a total of tokens across all tranches (including tranche 0) 1005-VEST-037
  • must select a tranche to redeem from 1005-VEST-030
  • must see the number of tokens that can be redeemed 1005-VEST-031
  • must be warned if the number of tokens you would be attempting to redeem is greater than you have unassociated 1005-VEST-035
    • should tell you how many tokens to disassociate for the redeem function to work (should round up to create a buffer for the tokens that may unlock between now and when the user gets to the disassociate form)
    • should see a link to disassociate
  • must submit the redeem from tranche ethereum transaction 1005-VEST-032
  • must get feedback on the progress of the Ethereum transaction 1005-VEST-033
  • must see updated balances (in the trance and my eth wallet) after redemption 1005-VEST-034

... so that I can use this tokens more generally on Ethereum (transfer to another key etc)