Rentero Protocol is compatible with EIP-4907 in the separation of NFT usage-right and ownership, and extends EIP-4907. In the implementation of EIP-4907, NFT owners can revoke users’ right to use NFTs at any time; hence, users’ rights cannot be protected well. Rentero Protocol adds a new role, i.e., delegator. Under Rentero Protocol, an NFT owner licenses the power to allocate the usage-right to a delegator, who has the right to set the NFT user and expires, a user can acquire the right to use the NFT from the delegator, and the owner has no right to directly revoke the usage-right. A delegator exercises its power through smart contracts, and the contract logic can protect the rights of both NFT owners and users. For example, in the scenario of installment payment, a user who fails to pay the next installment of rent will be deprived of the right to use NFTs by the delegator, thus safeguarding the owner’s income right. For another example, if an NFT owner desires to adjust the rent and change the user during the rental period, it should pay liquidated damages to the current user through the delegator, after which the delegator will reset the new user and expires. Each ERC721 contract corresponds to a Rentero Protocol contract, and Rentero Protocol is also the implementation of ERC721 contracts. Token is called ReNFT. When an owner pledges the native NFT under Rentero Protocol, Rentero Protocol will mint a ReNFT with the same tokenId and sent it to the owner’s address. With ReNFT, the owner will have the ownership of the native NFT with the corresponding tokenId, and be able to redeem the native NFT under Rentero Protocol and transfer the ownership of the native NFT by transferring ReNFT. After the native NFT is redeemed, the ReNFT with the corresponding tokenId will be destroyed, and the delegator will lose the right to allocate NFT usage-right. Delegator contracts can be implemented in different business models, e.g., installment payment, free trial and commission sharing. NFT owners can freely choose their delegators according to their own needs, but each owner can only have one delegator at a time.
It is worth noting that when there is no user to use an NFT pledged under Rentero Protocol, the NFT owner (i.e., ReNFT holder) can call canUseToken (address operator, uint256 tokenId) as the operator, which returns true, that is, an NFT owner can use an NFT when there is no user. This can reduce the unnecessary redemption operations of NFT owners in practice(incorporated into the code comments)