# Token Vesting & Timelock

**URL:** <https://forum.openzeppelin.com/t/token-vesting-timelock/15313>\
**Category:** Smart Contracts\
**Tags:** erc20, openzeppelin-contracts\
**Created:** [September 10, 2021, 2:22am UTC](https://forum.openzeppelin.com/t/token-vesting-timelock/15313 "2021-09-10T02:22:17Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![futbol](https://avatars.discourse-cdn.com/v4/letter/f/0ea827/32.png) [@futbol](https://forum.openzeppelin.com/u/futbol)\
**Post date:** [September 10, 2021, 2:22am UTC](https://forum.openzeppelin.com/t/token-vesting-timelock/15313/1 "2021-09-10T02:22:17Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![futbol](https://avatars.discourse-cdn.com/v4/letter/f/0ea827/32.png) [@futbol](https://forum.openzeppelin.com/u/futbol)\
**Post date:** [September 13, 2021, 7:12am UTC](https://forum.openzeppelin.com/t/token-vesting-timelock/15313/2 "2021-09-13T07:12:20Z")

</div>

Please your assistance is highly appreciated @abcoathup @frangio

---

<div class="post-metadata">

**Author:** ![Skyge](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/skyge/32/343_2.png) [@Skyge](https://forum.openzeppelin.com/u/Skyge)\
**Post date:** [September 13, 2021, 3:59pm UTC](https://forum.openzeppelin.com/t/token-vesting-timelock/15313/3 "2021-09-13T15:59:35Z")

</div>

Hi, welcome! 👋

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?

---

<div class="post-metadata">

**Author:** ![frangio](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/frangio/32/15251_2.png) [@frangio](https://forum.openzeppelin.com/u/frangio)\
**Post date:** [September 14, 2021, 2:11am UTC](https://forum.openzeppelin.com/t/token-vesting-timelock/15313/4 "2021-09-14T02:11:31Z")

</div>

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:

[![](https://us1.discourse-cdn.com/flex022/uploads/zeppelin/original/3X/4/0/407608147bc42c47cabacac8b7e21f420f6257b4.jpeg "Cheap Contract Deployment Through Clones") ](https://www.youtube.com/watch?v=3Mw-pMmJ7TA)

---

<div class="post-metadata">

**Author:** ![chakal\_bc](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/chakal_bc/32/12129_2.png) [@chakal\_bc](https://forum.openzeppelin.com/u/chakal_bc)\
**Post date:** [January 10, 2022, 1:25am UTC](https://forum.openzeppelin.com/t/token-vesting-timelock/15313/5 "2022-01-10T01:25:04Z")

</div>

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 🙂

---

<div class="post-metadata">

**Author:** ![frangio](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/frangio/32/15251_2.png) [@frangio](https://forum.openzeppelin.com/u/frangio)\
**Post date:** [January 12, 2022, 2:54pm UTC](https://forum.openzeppelin.com/t/token-vesting-timelock/15313/6 "2022-01-12T14:54:15Z")

</div>

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:

> **[ERC 20 - OpenZeppelin Docs](https://docs.openzeppelin.com/contracts/4.x/api/token/erc20#TokenTimelock)**
