liquidleif / mip-nft-standard

1 stars 0 forks source link

NFT Standard: Discussion and Refinement #1

Open teddyjfpender opened 1 year ago

teddyjfpender commented 1 year ago

NFT Standard: A First Look Discussion and Refinement

Great start on the NFT standard @etherleif! I've had a first look at the proposal and have some questions and areas for that I hope will further clarity this standard's development. These are key areas I'd like to help drive forward: the structure of the MIP, clarification of assumptions and user personas, considerations around off-chain state management, the zkApp structure, potential additions to the interface, and the implications for data availability and value creation within the blockspace.

  1. Structure the MIP as defined by the MIP repository defines.

  2. Can you provide greater clarity on specific aspects of the proposal? Some assumptions are implicit (e.g., the expected user of the standard) and could benefit from explicit statements. Contrasting how different personas would benefit (or not) from the standard and design would help engage further community discussion and refinement.

  3. You have mentioned off-chain state management solutions and the challenges associated with them. Could you develop a separate proposal that tackles these challenges and offers potential solutions (and trade-offs)? Since the standard may require additional tools and infrastructure, it might make sense to propose both together.

  4. This proposal attempts to work around Mina's small state without clearly defining what user persona might benefit from such a design (Who would be the typical users of this standard?). Instead, is there a design space where we view Mina's small state as a feature and define standards of zkApp design per user persona? Could there be different standards for different user personas, e.g., regular Web3 wallet users vs zkRollups?

  5. Are we missing any interfaces in this standard? Or does this standard present the opportunity for users to expand the interface? For example, is there a need for a proveOwnership, proveTraitProperty, verifyOwnership, or verifyTraitProperty? Again, I believe the interface in the proposal serves as a fantastic base for developers as it is similar to ERC-721, but allowing developers to extend the interface to satisfy specific use-cases of NFTs, such as credential issuance. Suggestion: it might help to define a scope of this proposal and intended use-cases.

  6. What is the correct description of a zkApp here? Is it correct to say the standard comprises three different zkApps (SnarkyJS scripts)? Can you clarify this, and what does this partitioned design mean for other zkApp developers? Can they benefit from it?

  7. Can you provide more details on the trade-offs of this design and its potential use cases? How will this standard contribute to a more significant network effect on Mina?

  8. How does this proposal address the data availability for users (how frequently might a user need access to the merkleData)?

  9. Who are the primary, secondary, and tertiary users of this standard? Can you clarify the user personas and their potential interactions with the proposed standard?

  10. Could the standard be designed to maximize the value different users can include in blockspace? How can we ensure users maximize create/deliver value in blockspace for many users, not just themselves?

I hope this feedback helps to us refine and develop the proposal further, I'm looking forward to seeing how it evolves! 😄

liquidleif commented 1 year ago

Thx for the feedback @teddyjfpender.

Related commits:

https://github.com/etherleif/mip-nft-standard/commit/0501fd15ba66cbbd890c4c163c886e0b6fd9858c

https://github.com/etherleif/mip-nft-standard/commit/6f357f783b9da607613020d613d375e28d7ab16a

Comments:

teddyjfpender commented 1 year ago

Great job with the update @etherleif! 🎉

I like how you've outlined trade-offs in the proposal. Particularly the trade-off for having multiple accounts under one NFT project, while having a cost factor, can allow for an accessible on-chain state. That on-chain state is an important consideration as you mention, since it can provide greater familiarity to other Web3 developers who have previous experience with ERC-721 and other account ledger standards.

I do see some similarities in your proposal to a Cardano standard, CIP-68. It has a similar trade-off for enabling an accessible on-chain state, previously Cardano NFTs had their data stored in their minting transaction's metadata (inaccessible to smart contracts) and indexed entirely off-chain.

prajwolrg commented 1 year ago

Wow! We came across your impressive GitHub repository with the mention from @teddyjfpender and are thrilled to see the progress you've made on your NFT standard for MINA. We are eager to stay up-to-date with your latest developments and explore potential collaboration opportunities. Our team is working on creating a user-friendly platform for NFT creation and launch on the MINA blockchain. Given our shared interests and objectives, we believe that working together could lead to powerful synergies and advancements in the NFT space on MINA.

liquidleif commented 1 year ago

Hey @prajwolrg, thats awesome to hear, did you already start development and have any specific requirements ?

prajwolrg commented 1 year ago

We haven't started the development yet but we've managed to start a few discussions: a. NFT Standard on MINA: Discusses three different approaches for implementation of NFT. b. Custom Tokens for NFTs: Discusses the pros and cons of each approach.

Initially, we wanted to create an NFT marketplace but given the constraints of MINA and the lack of standardization, we have settled to create to NFTStudio, a platform to effortlessly create and launch NFT collections. The idea is to have NFTs out there with some standardization first before creating a marketplace for them.