# Vesting proposal Users can opt to take their basic pay directly from their swarm immediately. Alternatively they can deposit their base pay into a vesting contract and create create a vesting where they specify a timeframe for vesting which determines a multiplier of the amount they are paid. Timeframes, multipliers and cliff time (if any) to be discussed. The vesting pool will need to have access to individual swarms funds so when a vesting request is made, the base un-multiplied value is taken from the swarm's funds available for distribution via the vesting contract. Alternatively the funds need to be approved to be taken by the vesting contract before creating a vesting. The extra funds paid above the base rate will be taken from the common pool by the vesting contract. Creating a vesting must be permissioned and only callable by addresses that received funds from the common pool, so swarms must use a vault/safe that can call external functions eg Aragon Agent or the Gnosis Safe. To create these transactions is easy with Gnosis Safe using the transaction builder, it's more complicated if using the Aragon Agent. Each successful vesting request creates a superfluid emission for the amount determined by the timeframe/multiplier chosen. Superfluid allows you to define a payment amount and a period of time over which you want to pay it. This should be visible on the standard Superfluid UI. Unfortuantely for now we can't create superfluid streams with a start date in the future so we couldn't emulate a cliff, but it sounds like something they're open to adding so at some point we could include a cliff. ## Issues with this approach. ### Conviction Voting We need to modify Conviction Voting so that every newly executed funding proposal sends the funded address and the amount funded to the vesting contract. This can then be used to ensure only funded addresses can create vesting and that funded addresses don't attempt to vest more than they have received from the common pool. During the initial deployment we will have to specify all the initial addresses that should be able to vest honey earnt and the max they should be able to creating vesting's for. To modify conviction voting we will either need to redeploy it or try to update the deployed version, which has some risk. ### Creating Vestings To create vestings from an EOA will require users submit an approval transaction before executing a vesting transaction. To create vestings from a swarm via Gnosis Safe or the Aragon Agent will require a pre-approval (probably for the max amount) followed by all the vesting transactions. Whoever creates these votes in the multisig's will have slightly more work to include this and excel sheets recording hours will also need to record the vesting schedule users want.