Establish a contract for staking ERC721 NFTs with rewards in the form of ERC20 tokens.

The StakeERC721 contract ushers in a paradigm where users can entrust their ERC-721 NFTs and, in return, acquire ERC-20 tokens as a manifestation of staking rewards. During the deployment of this contract, the designated contract administrator is tasked with configuring the NFT and Reward-token addressesโ€”an action that bears irrevocable consequences, as these allocations remain immutable thereafter.

Under this system, NFTs that are staked find a secure abode within the contract, and rewards are meticulously computed in correlation with the duration for which these NFTs were held in stasis. The administrator shoulders the responsibility of sustaining a commensurate supply of reward tokens within the staking contract. Subsequently, these accrued rewards are seamlessly transacted to stakers upon invocation of the claim mechanism.


rewardsPerTokenStaked = (stakingDuration * rewardsPerUnitTime) / timeUnit

Crucial Aspects to Note

  • Stakers are required to grant authorization for the transfer of their NFTs to the staking contract address prior to commencing the staking process.

  • The administrator is entrusted with the task of upholding an adequate reserve of Reward Tokens within the staking contract. This can be effectuated via the deposit function, which serves as the mechanism for depositing reward tokens.

Spectrum of Practical Applications & Illustrative Instances

  • NFT Staking Ecosystem: Create an intricate ecosystem where users staking their NFTs contribute to the vitality of a dynamic network.

  • Game-Based Staking: Leverage NFTs as collateral for staking within gaming platforms, offering players a means to earn fungible tokens while engaging in their favorite titles.

  • Artist NFT Collaborations: Foster collaboration between artists by allowing them to stake their NFTs and earn rewards based on their collective participation.

  • DApp Reward Mechanism: Establish a decentralized application where users staking specific NFTs contribute to an enriched experience and are duly rewarded for their involvement.

  • NFT Liquidity Mining: Unite the realms of NFTs and decentralized finance by enabling users to stake their NFTs and earn ERC-20 tokens as rewards, thereby enhancing liquidity.

  • Community Engagement: Drive community engagement by providing users with the opportunity to stake their cherished NFTs and reap tangible rewards, thereby creating an active and vested user base.

Deploying this contract

  • Name: The name for this StakeERC721 contract according to your idea.

  • Description: Define everything you need here to ensure the best description for this specific contract.

  • Image: Upload your image for this contract. Your image will be stored at IPFS ensuring persistence over time.

  • Reward token: The ERC20 token address designated for use as a staking reward should be upheld, with the tokens' balance to be overseen within the staking contract by the administrator.

  • Staking token: The address of ERC721 NFTs that will be staked by users.

  • Time unit (in seconds): for instance, if you intend to distribute rewards on an hourly basis, you should input 3600 as the time duration, as the time unit in this scenario is one hour.

  • Rewards per unit time: Number of ERC20 reward tokens to be given out per hour/day/etc, based on the time unit you set above. This will be in wei (or other base denomination based on your token decimals).

Last updated