-
Notifications
You must be signed in to change notification settings - Fork 66
Milestone Management
This document outlines proposals to improve incentive alignment between builders and the MIST token.
Up to now, builders were provided a weekly MIST stipend to compensate them for engineering time spent building products. While this stipend has historically been very generous, it has not been effective at incentivizing long term product planning and fast iteration.
incentivize long term alignment incentivize fast iteration minimal managerial overhead proposals
This approach creates long term alignment by preventing the builders from dumping mist as soon as it is received. Instead, a portion of the mist is placed in a timelock which unlocks over a longer period of time. While each builder has their own timelock, the team follows a collective cliff which enables withdrawing the vested portion of each team member once a pre-defined milestone is achieved. If the milestone is never acheived, the funds for that milestone are never distributed to the builders.
timelock duration milestone definition, start, and end allocation between cash and timelock allocation per builder weekly budget
managerial overhead of defining and updating milestones might need to have a fixed amount per milestone to encourage speed unclear what happens if milestone is never reached does team lead elect to return the mist? example
can create a milestone (V1), allocate to a milestone, kick off cliff for a milestone
a milestone allocation involves giving a builder a cash amount (immediately liquid) and a vested amount that gets unlocked upon a success event and is vested over a specified duration. the allocation happens for a particular token. ex: MIST
the MilestoneManager can also perform multiple allocations at once, across milestones
the manager of the milestone is set to the address of the MilestoneManager contract
a single milestone can have multiple allocations across many builders
a milestone can have a status of either active, completed, or failed
each allocation to a builder is treated as an individual event
the cash amount (instantly liquid portion of allocation) gets automatically transferred to builder address, whereas the locked tokens get deposited into MilestoneV1
the cliff can only be triggered on an active milestone, and once triggered the milestone is set as completed. if cliff is nullified the milestone gets set as failed and the funds are withdrawn back to the milestone manager
builder can claim amount as it vests only if the milestone has been marked a success claimable = initialAmount * elapsed% where, elapsed% = (now - lastClaim) / duration
- Deploy MilestoneManager
- Deploy MilestoneV1
- Send MIST to MilestoneManager
- Allocate MIST to builder through MilestoneV1 ex: ["0xF934Bd5B038B56471C814c0B0CFc1d918F51E63F","0xC5AF0a76086B6C2c75b0E4E557d3CC993D1e5291","2000000000000000000","3000000000000000000",3600]
for Milestone 0xF934Bd5B038B56471C814c0B0CFc1d918F51E63F, builder 0xC5AF0a76086B6C2c75b0E4E557d3CC993D1e5291 gets 2 of token as instantly liquid "cash" and 3 units that would vest over 3600 seconds (aka an hour) once the milestone is market as met.