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.


If you need further assistance or encounter any other issues, please feel free to reach out to our support team.

Did this answer your question?