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!