Skip to main content

On Token Vesting

Jagrut Kosti

Token vesting is one of the less talked about topics in Web3. And probably it's for the best! Let's explore, what it is, why it can be useful and if it is actually solving any problem.

What's Vesting?

Token vesting refers to a certain percentage of tokens that you know for sure will be available for use and trade. It's similar to ESOPs (Employee Stock Option Plans) with a major difference that ESOPs, even when vested, cannot be freely traded right away.

There are a lot of nuances on the structure of token allocation and what vesting exactly means. This changes from project to project. For example, a project can make only 20% of the total supply of tokens available for claiming/air drop. The rest can either be allocated later in further rounds of allocation, or they are part of the token emissions via staking rewards, etc.

Why Vesting?

Most Web3 projects deploy vesting strategies to prevent mass dumping of their token after the initial allocation or air drop, and therefore saving the token price from plummeting. The rationale is that since there are more tokens to be vested (unlocked), no one can dump all of their tokens and exit. Which leaves room for speculation whether the future vested tokens will be dumped or not, preventing the token price from completely nose diving.

Broadly speaking, there are generally 2 different types of vesting strategies:

  1. Only a certain percentage of total supply is in circulation and distributed via air drops. The unvested (locked) tokens are then brought into circulation via protocol metrics like validator rewards, emissions, etc. The unvested tokens are NOT air dropped again to the same set or a large subset.
  2. Similar to 1, but unvested tokens are brought into circulation via more air drops and the new vested tokens are distributed to the same set or large subset.

Next section is only applicable to 2nd type.

Is it effective?

I'll try to explain why vesting is actually worse than fully unlocked/vested tokens at the time of launch. Assumptions:

  • This analysis is from a token holder's / air drop recipient's perspective only. Does not include token buying or investors.
  • The token holder knows about all their vested tokens and their schedule.
  • The vesting schedule is fixed for all token holders i.e. the tokens are vested at the same time for all token holders.

From game theoretic perspective, any air drop is a positive-sum game, i.e. there is no monetary loss even if the price of the tokens drops to zero. The utility is to derive the maximum profits. Consider a scenario where a new token launch has a vesting schedule of 20% at the time of launch and every quarter of the year, another 20%. So by the end of the year, all tokens would be vested.

Every user (U) is playing a game with the market (M). Each of them can either Sell (S) or Hold (H). Based on relative utility and the assumption that there will be more tokens available in the future, the following utility matrix resembles the outcome.

M \ USH
S(1,1)(1, -3)
H(0,2)(0,0)

The effect of a user's action on the market is lower than a market's action on the user. Therefore, if both U and M sell at the time of air drop, they both derive the utility of (1,1). But if the U holds and M sells, there will be a much larger impact of that on user, hence their utility is (1, -3). If the U sells and M holds, there is a slightly higher utility for the user since they are selling at current holding price and hence we have (0,2). This can also be (0,1) and it would not make much difference. Important point to note here is that the action of holding gives a utility of 0 to both. People familiar with basics of Game Theory can quickly tell that there exists a pure-strategy Nash Equilibrium i.e. irrespective of what other player's actions are, your best strategy is to play the action with guaranteed maximum payoff. In our case, for both U and M, their best strategy is to Sell and get a payoff of (1,1).

This matrix is only valid when User knows that there are more tokens that will be available in the future. This is because all assets can theoretically gain value over time and it would be ideal to hold some portion with a certain probability of the protocol succeeding. Note that the last vesting schedule is identical to protocols with no vesting schedule as it then leaves it up to the user and their reasoning of the protocol's success. Which implies that all the vesting prior to the final one, simply gives more chance for users to dump their token.

From the protocol's perspective, this is disastrous. If the token price is somehow considered an indicator of the market's belief in protocol's success, then irrespective of how good the protocol is technically, it will get a bad rep. Furthermore, a non-vesting schedule air drop, entirely leaves it up to the market on how they perceive the protocol and let the market decide the optimal price point.

The reality

If we look at most protocol's distribution of the tokens, majority are distributed to investors, core team and early adopters. For them, vesting or no-vesting should not make a difference and they would ideally Hold till the protocol gains some traction.

On the other hand, vesting still gives them disproportional power to start dumping at the most opportunistic moment, especially investors, whose major utility is realising profits over time. Don't get me wrong, I'm not trying to throw negative light on investors, I'm simply talking about their utility from a rational perspective.

Irrespective of how the newly vested tokens are distributed, new circulating supply decreases the FDV (Fully Diluted Valuations)and increases selling pressure. See a relevant report on Low Float, High FDV.

Any solution?

Yes! A trivial sounding but not-so-trivial to implement on chains, is the idea of randomized vesting schedule. For each user, when the tokens will be vested is randomized. This creates a situation where a market cannot act in one way at one time because there is a fluctuating volume of tokens being vested every now and then.

For trading, randomized vesting schedules work to avoid nose dive of the token price. For governance, certain things need to be taken care of. Since all tokens are not vested at same time, a voting process should take into account all tokens, including the un-vested, to determine voting power (If the protocol uses one-token-one-vote mechanism).

So how can randomized vesting schedules be implemented? Through DVRFs! (Distributed Verifiable Random Function) The randomness from VRFs can be used to securely introduce random vesting schedule for each user.

ChainSafe R&D is currently working on implementing a better version of distributed verifiable random functions. More on that coming soon!