Token vesting
Last updated
Last updated
Token vesting allows you to vest a certain number of tokens to a recipient over a pre-determined time period.
You can also set up a cliff. A cliff means that tokens already get allocated during the cliff period but can not yet be retrieved by the recipient.
As a first step you need to create a token vesting collection. This is a smart contract that will contain all your individual vestings for different recipients of the same token.
The underlying technological concept is a non-fungible token (NFT). Therefore the basic attributes are similar:
Name: this could be something like "ABC Corp shares vesting"
Symbol: this is a short form of the name, e.g. "ABCsharesVest"
Token contract address: this is the contract address of the token that you want to vest. Note that within one collection you can only vest one particular type of token. If you want to vest different tokens / shares, you will need to create a separate collection for each token.
After you created the token vesting collection, you will see it in the overview. From there you can add individual vestings to the collection.
From the Manage Token Vesting Collection part you can add and manage vestings. You can also top up the collection with tokens from here and withdraw tokens that haven't been transferred to the recipients, yet.
For each individual token vesting you need to define:
Recipient address: this is the address that will receive the tokens from this vesting
Start time: from this moment onward the vesting will be calculated. This can also be in the past. Let's assume an employee started on October 1st and you only create the vesting on October 20th, you can date it back to October 1st. That way the employee will receive the amount of shares from October.
Cliff period end time: this is an optional setting. If you leave this empty, there will be no cliff on this vesting and tokens can be transferred to the recipient according to the vesting schedule immedialtely. If you do specify a cliff, the tokens can be transferred to the recipient only after the cliff period end time.
End time: this is when the entire vesting ends. Lets assume you want to vest 400 tokens over 4 years. Then each year 100 tokens will be vested per year. After the 4 years are over, all 400 tokens have been vested.
Amount: this is the total amount of tokens that will be vested to a recipient over the vesting period (the time between the start time and end time).
It's important to note that for the token recipients to actually get their tokens someone needs to click one of the two options:
Transfer tokens to recipients: this will transfer all the tokens that have been vested to this moment to the respective recipients (and where the cliff has ended). All tokens for all vestings of this collection will be transferred.
Transfer: this will only initiate the transfer of tokens for all vestings of the particular recipient that you clicked on.
Anybody can click the transfer buttons. Note that when you do that, you will also pay the gas fees for the respective transactions.
If the vesting collection doesn't have enough tokens, the transfers will not happen. You will need to add a sufficient amount of tokens to the collection and initiate the transfer again.
The vesting will however continue even if there isn't a sufficient balance. This means you can always catch up with the transfer after you topped up tokens.