• © Goverland Inc. 2026
  • v1.0.8
  • Privacy Policy
  • Terms of Use
Element DAOElement DAOby0xea172676E4105e92Cc52DBf45fD93b274eC96676StableLab_Historical

EGP-22: Removal of Non-Contributor Grants from the Vesting Vault

Voting ended about 3 years agoSucceeded
EGP#: 22
Title: Removal of Non-Contributor Grants from the Vesting Vault
Author(s): @cpstl
Type: Protocol Proposal
Status: Proposed
Date Proposed: <yyyy-mm-dd>
Date Ratified: <yyyy-mm-dd>

References

  • Element DAO, ELFI Voting Distribution:https://mirror.xyz/0x3fcAf7DDf64E6e109B1e2A5CC17875D4a5993F39/bctuLRkf7oBL4mMJ9lPf0y0blFjBDslTUfUL0CEk1gc
  • Vesting Vault Documentation: https://docs.element.fi/governance-council/council-protocol-smart-contracts/voting-vaults/vesting-vault
  • Vesting Vault Contract: https://github.com/element-fi/council/blob/main/contracts/vaults/VestingVault.sol
  • Deployed Vesting Vault Contract: https://etherscan.io/address/0x716D4e863536aC862AD34bC4eCaCBa07d8831bEA#readContract

Sentence Summary

EGP-22 is for removing the Element Finance team-allocated token grants for those who left Element Finance before their vesting cliffs, for team Members who partially vested, or for team members who left before the vesting dates were reached.

Paragraph Summary

This proposal formalizes a solution for the removal/reclaiming of Element Finance team members-allocated token grants who departed prior to reaching the vesting vault smart contract-defined vesting cliffs, partially vested, and/or before the vesting dates were reached.

These Element Finance team-allocated token grants were distributed during the governance launch of Element DAO on March 31 of 2022. The vesting cliff was defined as 1-year from the launch date and the token vesting schedule defined was as three years after the launch date.

Motivation

The purpose of this EGP is to regain the token allocations that were given to previously employed Element team members, allowing Element Finance to be able to award new token grants to new employees and contributors.

Important note: Neither Element Finance, Inc. nor Element Finance Team members will vote on this proposal. Furthermore, Element engineers will provide purely technical comments only; they will not provide any statements on the wisdom or appropriateness of the proposal.

Specification

The VestingVault contract holds grants for various holders of the ELFI governance token. For reasons stated in the Motivation section, some grants need to be adjusted. This adjustment takes the form of updating two variables: allocation and range. allocation is what it sounds like, the number of tokens awarded after the grants vest. range refers to the specific token range to which the grants apply. As the allocations are reduced, the ranges need to be updated as well. If there is no range specified, it is left unspecified. Furthermore, as allocations are reduced, we update the unassigned value by the amount the allocation is reduced. This proposal makes no assumption about the future use of the now unassigned tokens in the VestingVault will be used.

Proposed Code

As a part of this proposal, a contract will be used to perform the necessary modifications to existing token grants. This contract can be viewed here: https://github.com/sentilesdal/council/contracts/vaults/UnfrozenVestingVault.sol

Only the method that will be called is reduceGrant().

Scripts in the above-mentioned repository will be used to deploy the upgraded contract and create and execute the proposal.

The basic idea of the proposal is that, from the Timelock contract, the following three actions will be performed on the VestingVault:

  1. Upgrade the proxy implementation of the VestingVault.
  2. Update allocation to the new amount. If the new value is zero, delete the grant. If a range is specified, update that value as well.
  3. Reset the proxy implementation of the VestingVault.

You can see the proposed values here for the creation of the proposal, assuming the proposer uses only the locking vault to satisfy the minimum voting power threshold to create the proposal.

proposalId 4
votingVaults [ '0x02Bd4A3b1b95b01F2Aa61655415A5d3EAAcaafdD' ]
extraVaultData [ '0x00' ]
targets [ '0x81758f3361A769016eae4844072FA6d7f828a651' ]
callDatas [
'0x88b49b8323a321f19d23a56e2a186b370738326477c0d9a5c6e7ecbdf1416455964e61b9'
]
proposalHash '0x80b54ecedfb8f4bddb77eda29bea0fe077ad1dfdd10be1e92f75f3e08b6a2869'
targetsTimeLock [
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A',
'0x6De73946eab234F1EE61256F10067D713aF0e37A'
]
calldatasTimeLock [
'0x74474d280000000000000000000000001d13ff25b10c9a6741dfdce229073bed652197c7',
'0xf9c251a7000000000000000000000000561c1693fd7c874763f99d0f456c0d2353c85e26000000000000000000000000000000000000000000002e69aae2e8c354700000',
'0xf9c251a70000000000000000000000007c9c99a9c0bb31c054de1bd9af546db10e35785b000000000000000000000000000000000000000000000f50f3528cc0b22d0000',
'0xf9c251a70000000000000000000000003a543655e484d9ad9ada138170254f5880b695ce0000000000000000000000000000000000000000000000000000000000000000',
'0xf9c251a70000000000000000000000009814ca52e5235e9ea7709475893645bed9a9cf430000000000000000000000000000000000000000000000000000000000000000',
'0xf9c251a7000000000000000000000000b603613b9e3f76ab26ce2a259f1db8ea5e9dc5950000000000000000000000000000000000000000000000000000000000000000',
'0xf9c251a700000000000000000000000046aa35190959c7a639ada37a99068b6740a0a5ed0000000000000000000000000000000000000000000000000000000000000000',
'0xf9c251a700000000000000000000000008627fcb1edd7006b9f71fbd5b0ec91b4d8dd50a0000000000000000000000000000000000000000000000000000000000000000',
'0xf9c251a70000000000000000000000002592998309c9a89d9eaaf7cf7cfa94db8ba877030000000000000000000000000000000000000000000000000000000000000000',
'0xf9c251a7000000000000000000000000b0ad0eea2061d1b699e6c0d353fdee59f40262bb000000000000000000000000000000000000000000006517c1dfd2e9bfce0000',
'0xf9c251a7000000000000000000000000cf0fb739fb119b4e41e872a2a1223832900f036100000000000000000000000000000000000000000000137e4cd7a1d1cd270000',
'0x74474d28000000000000000000000000716d4e863536ac862ad34bc4ecacba07d8831bea'
]
callHashTimelock '0x23a321f19d23a56e2a186b370738326477c0d9a5c6e7ecbdf1416455964e61b9'
lastCall 15964852
ballot 0

Test Cases

The code will be dry-run using Ethereum mainnet forks. Values will be inspected to make sure that they make sense and yield the intended results.

The following should be true AFTER the proposal is executed:

  • All the targeted grants have expected allocations
  • All targeted grants with range values have updated the range as expected
  • Allocations that are now zero are deleted from storage
  • NO other values should change except allocation and range

Security Considerations

  • There are several security considerations with this proposal. Most importantly, this proposal will make changes to existing token grants in the vesting vault and is therefore very sensitive. Extra care should be taken to make sure that updated values in the created proposal align with intentions.
  • The other security concern is with the smart contract used to perform the modifications to the token grants. This contract should go under audit and review to ensure that it only performs the desired changes to the smart contract and that it has no unintended consequences.

Technical Review Plan or Audit Information (If already available)

The code for this proposal is publicly available for the community to review at https://github.com/sentilesdal/council. Engineers at Element Finance, Inc have conducted internal reviews of both the smart contract updates and the code used to generate the proposal. After the proposal is made public, there should be ample time to allow the community to audit the code.

Next Steps (Voting Outcome Summary)

  1. This proposal is currently a Draft.
    1. We welcome all questions and comments over the next week, but please be advised that Element Team Members will not be able to provide comments beyond formatting and technical commentary.
  2. Once the feedback has been addressed, this will move to be officially Proposed.
  3. Once Proposed, there will be a 1 week review period before it moves to the next stage, Off-Chain Poll (Snapshot).
  4. On Snapshot, the governance community will vote for:
    1. Yes: You agree that the token grants for departed team members should be removed/reclaimed.
    2. No: You disagree that the token grants for departed team members should be removed/reclaimed.
    3. Abstain: formally decline to vote either YES or NO.
  5. If this proposal passes the Off-Chain Poll, it will proceed to the On-chain Vote, where the vote options will remain the same as on Snapshot.
  6. If this proposal passes, the proposal will officially be Accepted and the code will proceed to the Execution stage where the previously allocated token grants will be removed/reclaimed.

Off-Chain Vote

Yes
1.65M ELFI100%
No
0 ELFI0%
Abstain
69.98 ELFI0%
Quorum:150%
Download mobile app to vote

Discussion

Element DAOEGP-22: Removal of Non-Contributor Grants from the Vesting Vault

Timeline

Feb 21, 2023Proposal created
Feb 21, 2023Proposal vote started
Feb 26, 2023Proposal vote ended
Mar 11, 2026Proposal updated