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 giventokenId
returntrue
if the token is still valid otherwisefalse
TokenTimeSet
→ MUST be emitted after setting thestartTime
andendTime
for a giventokenId
. The event should be indexed bytokenId
.ERC5007TransferredInvalidToken
→ OPTIONAL custom error returns thetokenId
,startTime
,endTime
, andcurrenTime
tokenValidityRemaining
→ OPTIONAL returns the remaining time, in seconds, before the giventokenId
becomes invalid and unusableFunction Behavior
balanceOf
that was inherited from ERC-721 needs to be clarified should return all tokens including invalid or not.transferFrom
andsafeTransferFrom
MUST check if the token is still usable before transferring. If the condition is not met, they MUST revert the transaction.startTime
andendTime
oftokenId
, thestartTime
MUST less thanendTime
except in the case where both are set to0
. AstartTime
andendTime
of0
indicates that thetokenId
has no time-limited.Security Consideration
- Denial of Service
transfer
andtransferFrom
are not restricted bystartTime
andendTime
tokens are still transferable but may be unusable in the contract that checks the time info of the token