Why am I unable to use the same token for staking and rewards?

thirdweb’s ERC20 staking contracts are designed to allow users to stake their tokens in order to earn rewards. However, we do not allow the same tokens to be used for both reward and staking. This is because using the same tokens for both reward and staking would create a vesting contract, which is a different type of contract with different requirements.


Vesting contracts are used to distribute tokens over time, typically to team members or early investors. They have different mechanisms for interest/reward calculation and payout than ERC20 staking contracts.


In the near term, we do not plan to provide a vesting contract under thirdweb’s contracts. However, if you want to write your own vesting contract, You can modify use thirdweb’s Solidity SDK and inherit the Staking ERC20 Base contract and adding your own custom logic.


Have any questions regarding this? feel free to contact our support team for help.

Did this answer your question?