Dear @0xanders, @LanceSnow and EIP Editor @SamWilsn
After writing ERC-7818, I came across this EIP and realized it has many potential use cases. However, there are still areas where improvements can be made to enhance this EIP without breaking its original intention and idea.
I would like to respectfully ask if it would be possible for my teammate @parametprame and me to take over as co-authors and maintainers of this EIP.
The area I am focusing on and would like to improve
Motivation
Should mention potential use case for these tokens can be applied to
- Privileges or Tickets: Ideal for loyalty programs where tokens represent time-limited benefits.
- Authentication: Ensures that invalid tokens cannot be used for accessing products or services.
- Insurance or Warranty: Provides a clear expiration for coverage or guarantees.
- Certificates: Certifies validity within a specific time frame.
Specification
normative should avoid to change
isTokenValid→ MUST retrieve the status of giventokenIdreturntrueif the token is still valid otherwisefalseTokenTimeSet→ MUST be emitted after setting thestartTimeandendTimefor a giventokenId. The event should be indexed bytokenId.ERC5007TransferredInvalidToken→ OPTIONAL custom error returns thetokenId,startTime,endTime, andcurrenTimetokenValidityRemaining→ OPTIONAL returns the remaining time, in seconds, before the giventokenIdbecomes invalid and unusableFunction Behavior
balanceOfthat was inherited from ERC-721 needs to be clarified should return all tokens including invalid or not.transferFromandsafeTransferFromMUST check if the token is still usable before transferring. If the condition is not met, they MUST revert the transaction.startTimeandendTimeoftokenId, thestartTimeMUST less thanendTimeexcept in the case where both are set to0. AstartTimeandendTimeof0indicates that thetokenIdhas no time-limited.Security Consideration
- Denial of Service
transferandtransferFromare not restricted bystartTimeandendTimetokens are still transferable but may be unusable in the contract that checks the time info of the token