[DAO:46f874c] DAO Grants Program - New Vesting Contract

by 0xd11a019a70986bd607cbc1c1f9ae221c78581f49 (Yemel)

Linked Draft Proposal

DAO Grants Program - New Vesting Contract

Summary

Redesign the smart contract used to allocate funds to projects supported via the Grants Program.

Abstract

The DAO is currently using a linear vesting contract to pay grantees. This proposal aims to replace the current second-by-second schedule with a regular 30-day payment scheme.

The new vesting contract should also allow the DAO to preemptively pause the vesting contract, to later decide to resume it or revoke it.

Motivation

The DAO’s grant program is one of the best vehicles to help grow the Decentraland ecosystem. Since the inception of Decentraland, linear vesting contracts have been used to distribute funds.

A typical linear vesting schedule has a month cliff, in which no funds are accessible, and after day 30 the payment for the elapsed month is made available. The rest of the funds are released second by second until the end of the contract.
The linear vesting model is a simple and elegant method to distribute funds over time, however, it might be too optimistic and generate some caveats around the revocation process.

Nowadays, when a project doesn’t report any progress for a while or the reported progress is not related to the project roadmap, the DAO committee proceeds to a preemptive revocation. It is the best course of action to protect the DAO’s treasury.

The concept of preemptive revocation strikes really badly on grantees and the general morale in the community. Implementing a new vesting schedule and a mechanism to pause/resume the vesting can ease a lot the process of overviewing grant-funded projects.

Specification

The new vesting schedule should follow a step function, where compensation is made available in chunks over periods of time. This means the beneficiary is paid in arrears; they are paid for a working period AFTER the work is done.

The Grant Program should standardize payment contracts with 30 days periods and equal payment amounts for each period. Different amounts per month could be defined for non-standard situations after the review of the DAO Committee.

The vesting contract should be always initialized on the 1st day or the 15th day of the month, this will give some time of preparation to the grantee between the votation finishes and the work starts. This will also order projects over time and synchronize updates made by grantees through the Governance dApp at the end of half of the month.

The new vesting contract should include the capacity to pause and resume the vesting schedule. This can be used to warn the grantee in case of any concerns about the project status/health For example, in case a grantee didn’t report progress after 30 days, the contract should be paused. If the project reports progress short after, the vesting can be resumed without delays in the schedule. Otherwise, the vesting contract should be revoked and later recreated if necessary.

The operations of pause, resume and revoke can only be performed by the DAO through the DAO Committee.

Impacts

The proposed changes to the vesting contract will have the following impact:

  • Allow the grantee to pick the starting date of the project (1st or 15th).
  • Grantees will receive payments every 30 days from the starting date.
  • Improve the operations of monitoring grant projects.

Implementation Pathways

The dApps Team from Decentraland Foundation had already implemented the following changes:

  • Develop a new vesting contract.
  • Conduct external security auditing of the contract.
  • Update the vesting deployer tool.
  • Update the vesting viewer page.

These tools have been already implemented by Decentraland Foundation. They made sure to include all the DAO needs in the new implementation. The code changes are ready and 4 audits have been completed.

The DAO Committee can start using the new implementation of vesting contracts immediately.

The Governance Squad should update the grant submission form to allow the selection of the starting date. Such change can be developed in one or two weeks.

Conclusion

A new vesting schedule of constant periods of 30 days it’s an easy model to understand and better protects the DAO’s treasury.

It removes the anxiety of overviewing projects that are not reporting progress but still continue to vest funds every day. It pays for the work done and not while it’s being performed.

The capacity to pause and resume it later adds an extra layer of security, setting expectations to grantees about making a public update of their progress every month, otherwise, the vesting contract will be preemptively paused. In case they show up with progress, the vesting is resumed quite easily. Otherwise, the contract can be revoked and recreated with a new schedule if necessary.

Vote on this proposal on the Decentraland DAO

View this proposal on Snapshot

1 Like

Sorry I didn’t think of this sooner, and maybe this has been answered already, but will you please share with me the information if it has.

Will this cause issues with price fluctuation of MANA? Will people be able to speculated that sell-offs will occur near this time? Could this cause issues?

1 Like

@Tudamoon the creation and funding of the vesting contract and the purchase of the stables will be distinct events. The committee can swap at any point before and even after the vesting contract is created. The contract needs to have enough funding to cover each period’s claim amount, and I don’t believe it necessarily requires a full funding from the start. For example, a 60k grant, vesting over 6 months, starting on Jan 15th, means on Feb 15 $10,000 should be available in the vesting contract balance. The next month, another $10k must be added to the contract balance before the 15th, and so on.

The newer contract is more flexible in that it allows the setting of _vestedPerPeriod to set a specific amount for each period’s payment. Whereas, the current contract requires the contract balance to be fully funded to be able to calculate the vested amount properly. The updated contract logic for this proposal can be found here GitHub - decentraland/vestings-builder: UI to deploy vesting contracts using a minimal proxy

@Nacho @yemel did I understand this correctly? Please review my example added to the documentation: New example to demonstrate the new vesting configuration by mattimus5460 · Pull Request #75 · decentraland/vestings-builder · GitHub

1 Like

That is correct (@nando approved it)

DAO Grants Program - New Vesting Contract

This proposal is now in status: PASSED.

Voting Results:

  • Yes 100% 11,004,376 VP (66 votes)
  • No 0% 0 VP (1 votes)

DAO Grants Program - New Vesting Contract

This proposal has been ENACTED by a DAO Committee Member (0xbfa6d24e6a061e9aea3447163fdfe045177dd40e)