Disclaimer
In this doc, we describe only tech specs and requirements for the vesting escrow smart contracts that might be used for Lido TRP in the future.
This doc has nothing to do with Lido TRP policy.
To make Token Reward Program (TRP) vesting for the Lido DAO contributors transparent, accessible, and tax optimized, we need a smart contract(s) that will control all TRP vesting operations.
TRP vesting contract should:
Also, it is worth having TRP UI for contributors' comfort. TRP UI should:
Yearn vesting escrow seems to fit most of our needs. It already has the following:
What is missing:
The solution is proposed based on the internal discussion with Protocol and Automation teams.
Use Yearn vesting escrow as a base.
Proposed changes:
rug_pull
to revoke_unvested
revoke_all
method that will allow DAO to withdraw all the funds from the escrowaragon_vote
method for Aragon voting, a snapshot_set_delegate
method for Snapshot voting delegation, and a delegate
method for further voting power delegation with all available tokens on the contract's balance. Make these methods operate over upgradable middleware to encounter possible changes in voting interfacesA detailed description of the contracts with proposed changes can be found here
After contracts deployment, implement UI for contributors' comfort that will:
// #Graph example#
//
// available tokens
// | _/------------
// | _/
// | _/
// | _/
// | _X - you are here
// | _/
// | _/
// | /
// | .|
// | . |
// | . |
// | . |
// +==============+========+==============+============---> time
// vesting start cliff end vesting end
Note: Yearn contracts already have events for each new vesting deployed, so there is no need to implement the view method for all recipient vestings