Origin-Byte / nft-protocol

Sui NFT Smart contracts maintained by the Origin Byte team
Other
147 stars 67 forks source link

New NFT Release Flow #52

Closed nmboavida closed 1 year ago

nmboavida commented 2 years ago

Hitherto, the flow of releasing NFTs to users is mostly based on pre-minting Data objects and then allowing for the launchpad to mint the Nfts to the user (currently, embedded NFTs are pre-minted themselves and transferred them to the Launchpad, but this will be changed and will follow the same flow as the loose NFTs).

Whilst the launchpad is useful for great deal of use cases (mainly all that require some custom primary market solution), there are some use cases that would benefit from not having to use the launchpad. In order to better understand which use cases may not require a launchpad, let us define all the use cases and their release flow pattern:

  1. The data is pre-minted on-chain and Users come to the protocol to mint the NFTs (e.g. Digital Art with on-chain attributes can be pre-emptively minted in preparation for the launchpad - similar flow to Solana's Candy Machine)
  2. The data is pre-minted on-chain and Creators send the NFTs to users (e.g. For more asynchronous release flows such as the minting of gaming assets which happen when players are playing games)
  3. The data is minted on the fly with the NFT and sent to the users where: a. The data is defined by the NFT module itself (e.g. for Simple NFTs where the data still remains off-chain, the NFT can be a simple URL where each time a NFT is minted a counter is increase and thus generating a URL for the corresponding image - see this issue for more) b. The data is defined by the users themselves (e.g. for Domain Names, the creators cannot possibly pre-emptively mint every single domain name, therefore users are the ones minting the data on the fly with the NFT and there should be a registry implementation that checks if a certain domain name already exists)

For the 1st pattern:

For the 2nd pattern:

For the 3rd Pattern:

Suficio commented 1 year ago

All three patterns are now supported, closing this issue.