ERC721 extension to enable rental

Hello @ArthurBraud
I am happy to see that more and more people are working on NFT rentals. There are different approaches, f.e my proposal (EIP-4400: ERC-721 Consumable Extension) focuses on adding a role that can enable renting protocols, you have focused on defining the renting logic as part of the standard.

I am curious to know why you are going for the approach for enforcing the “renting as part of the NFT standard” compared to “enabling NFT renting through a role that has the permission to utilise the NFT”. To be honest, I think that the first adds a bigger burden in terms of implementation as it is more complex and the gains are questionable compared to the latter.

Your concerns are that the “enabling NFT renting through a role that has the permission to utilise the NFT” approach requires the owner of the NFT to respect the agreement. I don’t really think that there is a problem with that since the owner of the NFT will not be the user that want to rent it out to someone but the owner will be the Renting Protocols that implement the logic for renting.

It worries me that in your proposal, you are changing the definition of owner. The renter becomes the official ERC721 owner during his rent period, however, he is an owner that is not allowed to transfer the NFT, grant approvals etc and all of the infrastructure that is built already around the fact that owners DO have that permission will be surprised to see that the owner has those permissions, but not always. If the owner is actually a renter he will not have those permissions. This will be too ambiguous IMO.

The third thing that comes to mind is the fact that once a rent period is over, you have to do an on-chain TX to “update the state”. Have you thought about expiries or allowing someone to have a specific role, but only for a certain period of time? Example → EIP4907: ERC-721 User And Expires Extension

Happy to hear your thoughts!