Token Vesting & Timelock

Hi everyone,

I have read a lot about Openzeppelin smart contract but it seems I have to deploy it everytime I want to transfer vested token to any account. For example, let say I have 100 users I would like to transfer vested/locked token to, it seems I have to deploy the vesting smart contract codes for each user because of the constructor. Or am I missing something.

I have tried to write my own custom vesting smart contract codes but it is too expensive in term of transaction fees. That is why I am back again to the openzeppelin vesting/timelock sample smart contracts.

I will appreciate any suggestion as this is very important and I am at a critical point. Thank you

Please your assistance is highly appreciated @abcoathup @frangio

Hi, welcome! :wave:

Please do not try to ping, thanks!

Sorry, I am not sure what do mean exactly? Do you mean you have 100 tokenA, and then want to distribute to 100 users?

You are understanding it correctly. The vesting contract is deployed once for each receiver of vested tokens. They are like a wallet for each user.

You can look into using Clones / Minimal Proxies. We have ran a workshop about this here:

1 Like

Hi everyone,

I am new here and solidity. @futbol stated that "I have to deploy it everytime I want to transfer vested token to any account.". Can you tell me how to do it? I have some tokens on Avalanche network, and I want to send them some buyers with a time lock. Can you share your code?

Thx a lot

It is very good being here :slight_smile:

You need to know how to deploy a contract, and ideally how to test it as well so you try it before sending the tokens. Look at the documentation for TokenTimelock: