dapperlabs/nba-smart-contracts

NFT composition

jrkhan opened this issue · 0 comments

Issue To Be Solved

Currently, the metadata/traits of Top Shot NFT are primarily defined by set and play (aka edition). It would be helpful to be able to add 'components' to individual NFTs that would contribute towards the metadata/traits of the moment.

Possible Solution

Create a new 'component' contract to manage components -> this will allow the owner of component resource to create a componentTransferRequest (resource temporarily stored on component contract), and an NFT owner to accept or decline the componentTransfer.

Sketch in progress of component interfaces:
https://sketchboard.me/xDpNRMTwBZLj#/

Context

Looking to add functionality to allow individual moments to have autographs (another resource type). Ideally, I would like to have the autograph make use of a generic system for adding components instead of implementing this as a one off.
I believe a fan asking a player for an autograph on their moment would in practice be very similar to flows that would be broadly useful.