2

Is NFTs(ERC721 or ERC1155) allow to "temporarily own by an address" and the issuer can "cancel ownership of NFT of the address" or "directly assign it to a new address without burn existing NFT"?

Like a seasonal trivia game app, will issue a Champion NFT badge to the top achiever, the ranking may change every moment someone achieves the highest points. So the Champion NFT badge is transferring between receivers frequently or maybe weekly which transfer action did by the game platform/token issuer.

Let's define entities here, Z is the issuer, minted the NFTs. A, B, C represent 3 different addresses. NFT is one and only one unique Champion NFTs.

  1. Z Transfer the NFT to A at week 1
  2. Z Transfer the NFT to B as new champion at week 2.
  3. Z Transfer the NFT to c as the latest champion at week 3.
0

Yes.

Any feature you can think of is allowed, unless it conflicts with a specification in the ERC-721 standard.

No such conflict exists with the ideas considered in your question.

You are required to perform the Transfer event when the token is reassigned to a new owner:

This emits when ownership of any NFT changes by any mechanism. [emphasis added]

(source)

The specification expects several types of use cases and also that "you will dream up many more". Thank you for your creativity here!

4
  • I'm the issuer, minted a Champion badge NFT. Transfer from issuer to Recipient A. And after few moments, B overtakes A, so the issuer can perform Transfer from A to B?
    – Pisces
    Jan 21 at 9:12
  • Yes. But just to be clear. You are saying issuer 是主动Transfer. But actually, you as the issuer are probably calling "assignToNewChampion()" 然后合同就是被动得emit Transfer. Jan 26 at 3:50
  • Is getting more confusing. Had modified the question above. So the Transfer is just a temporary assignment? So whenever the NFT i purchase at Rarible.com or CryptoKitties may revert back to issuer anytime?
    – Pisces
    Jan 27 at 18:09
  • The updated question is invalid. Please notice the distinction between Transfer (an event) and transfer() (a function). It is improper to use Transfer as a verb. You should say for example "Z conferAward() the NFT to A". And my response will be "that is okay to conferAward(), but please remember to emit Transfer(...)". Feb 4 at 21:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.