NFT staking typically requires the implementation of the following smart contracts:
- NFT Smart Contract. The subject of staking.
- Staking Smart Contract. The storage for NFT smart contracts.
- Rewards Smart Contract. This could be a token of any standard: ERC-20, ERC-721, ERC-1155.
To stake an NFT, the owner must transfer it to the Staking smart contract. After that, the reward will be available according to the rules described in the Staking smart contract. For example, for one "staked" NFT for a year, the user receives an ERC-20 token equivalent to $100.