Sometimes the owner of an NFT and its user may be different. In these cases, users require different permissions than owners (e.g., users should not be able to sell ownership of the NFT). To manage these situations effectively, it is necessary to have separate roles that identify whether an address represents the “owner” or the “user” and manage permissions according to their role.
In addition, applications based on this model, such as rental, often require that user addresses have temporary access to use the NFT. This typically involves two transactions in the chain: one to add a new address as a user at the beginning of the period and one to revoke the user role at the end. This is inefficient in terms of labour and gas costs. Therefore, an “expiry” function is introduced that allows the automatic end of the usage period without the need for a second transaction.
Many have started to see the possible use of this standard for the management of memberships or subscriptions. Ultimately you want to allow access/use of an NFT, owned by a third party, in exchange for a license. Much like a rental contract. I offer my customers the option to rent an NFT for their use. When customers decide not to pay or cancel their subscription, they get the NFT back (access to the service). However, it is not the idea behind the ERC-4907 standard. But there is another standard that allows the use of NFTs to manage memberships.
The ERC-5643 standard has been specifically designed for membership management, due to the fact that many real-world applications require a paid subscription to keep an account or membership valid.
With this standard, each NFT can be renewed for a set period of time and expires if payments stop. In today’s world, it is difficult for users to view or manage all their subscriptions in a single environment. With a common standard for subscriptions, it will be easy to have one application to manage the number of subscriptions a user has, see when they expire, and renew or cancel them when necessary.
This standard aims to simplify subscriptions on the blockchain as much as possible, adding only the essential functions and events to implement subscriptions. Importantly, in this interface, the NFT itself represents ownership of a subscription, without the need for other fungible or non-fungible tokens.
Subscriptions represent agreements where payments are made upfront to receive or participate in something. To facilitate these arrangements, users must be able to renew or cancel their subscriptions (hence the “renewSubscription” and “cancelSubscription” functions in this standard). What these functions allow you to do is that each of your subscription tokens can be renewed or canceled whenever you want.
For example, if I subscribe to a service, then cancel it, and then decide to re-activate it, instead of burning it and mint a new one NFT, instead the same one would be activated or deactivated.
Similarly, it is possible to define an expiry date for a subscription, which allows to manage a renewal and determine the validity of an NFT subscription (the “expiresAt” function provides this functionality). Similarly, it is possible to determine whether or not a subscription can be renewed once it has expired, using the “isRenewable” function.
As the standard is compatible with EIP-721, existing protocols will be able to facilitate the transfer of subscription NFTs immediately by being able to manage the expiry of a subscription, determine whether a subscription has expired and verify whether it can be renewed.
Overall, both ERC-4907 and the ERC-5643 have some similarities, but in those cases, where the owner and user of the NFT are not always the same, it makes sense to use the standard ERC – 4907, which has separate roles that identify whether an address represents an “owner” or a “user” and manage permissions, not granting access to the user to some functions as selling or transferring the property of the NFT. Also, it allows you to generate an economic model based on renting your assets.
However, in the cases where we want to create an identification to grant access to a user to a community (or service) under certain conditions it makes more sense to create a membership using the standard ERC – 5643.
Both standards offer valuable and similar solutions for use cases in the world of NFTs, and while we could use NFT Rental to manage memberships, it would be inefficient, as there is also an standard that allows the management of memberships.