Token vests

A vest locks an amount of any alkane and releases it to its holders on one schedule. It is for team allocations, investor unlocks, grants, or anything that should arrive gradually.

Each vest is its own contract, created from the controller template 4:1792. The creator holds an admin NFT. Every position in the vest is a stream NFT (template 4:1793), and holding one is the right to claim that position.

The schedule

termmeaning
startwhen vesting begins (unix time)
cliffhow long after start before anything vests (0 = no cliff)
durationhow long the whole amount takes to vest
initial unlocka share, in basis points, available at start (1,000 = 10%)

After the initial unlock and the cliff, the rest streams in a straight line until start + duration. Every position in a vest shares the same schedule; positions differ only in size.

Steps

  1. Create the vest with the token and schedule. You receive the admin NFT.
  2. Seed it with the tokens to vest. Anyone can seed.
  3. Create positions, one NFT per recipient and amount. The total can't exceed what was seeded.
  4. Send each NFT to its recipient.

Recipients Claim whenever they like and receive everything vested so far. The NFT comes back with the payout.

Admin actions

Vest or payroll?

vestpayroll
denominated inthe token itselfUS dollars
paid inthe vested tokenDIESEL
schedulelinear, one per vestfixed paydays, one per person
fundingseeded up front into the vestdrawn from a shared pool on each payday
terms after creationfixedamend, bonus, advance

If the promise is "this many tokens over this period", use a vest. If the promise is "this many dollars every two weeks", use payroll.