Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NFT minting capabilities (TBC) #38

Open
mattsmithies opened this issue Jun 27, 2022 · 6 comments
Open

NFT minting capabilities (TBC) #38

mattsmithies opened this issue Jun 27, 2022 · 6 comments
Labels
enhancement New feature or request

Comments

@mattsmithies
Copy link
Collaborator

Overview

The aim of this feature is to add NFT creation and minting to the Trust Enterprises API, this is based on requests from the community as we'll as upcoming projects. Furthermore, the goal of having such a capability in an API will be:

  • Reduce the complexity for the creation of minting platforms or launchpads
  • Easier development experience for the creation of different kinds of tokens.
  • Ability for non/new-developers to configure a minting system for nocode platforms

Breaking down

I propose adding additional endpoints to the API, as dedicated NFT resources:

  • The creation of a NFT (with zero initial supply)
  • The minting of an NFT, to increase the supply until maximum supply
  • The update of the NFT -- to be considered dangerous
  • Potential: NFT permission revocation

There are a number of different areas that need to be correctly designed within the context of an API such as Custom Token Fees

In addition, items like higher-level permissions like admin and wipe keys need to be considered carefully as dangerous and would require explicit opt-in beyond default behaviour.

Specification

These are some items we are considering adding, please provide thoughts to what would be best for your usecase.

Creation of an NFT

A POST request to /api/nft

Minting of an NFT

A POST request to /api/nft/{token_id}/mint

Update of an NFT

A PUT request to /api/nft/{token_id}/update

NFT permission revocation (potential)

A PUT request to /api/nft/{token_id}/revoke

@mattsmithies mattsmithies added the enhancement New feature or request label Jun 27, 2022
@8Beesfr
Copy link

8Beesfr commented Jul 29, 2022

Hi Matt, this would be absolutely amazing if this gets introduced!

I agree potentially it is dangerous allowing NFT updates for certain keys (admin and wipe). Personally I would be very excited if this would get implemented, could we maybe implement some kind of double verification for these higher permission keys? Eg, having to do the request from two different accounts in order to the change to apply (like a 2FA). This makes it more complicated to use these keys and less likely to accidentally use.

Creation of an NFT
A POST request to /api/nft

collection name
creator
tokensymbol
numerator/denominator (royalties -optional)
fallbackfee (optional)
royalty account ID (optional)
mint with Keys (boolean) - standard only supply key

Minting of an NFT
A POST request to /api/nft/{token_id}/mint

HIP412 standard (obviously :) )
Number of NFTs to mint (optional)

Update of an NFT
A PUT request to /api/nft/{token_id}/update

tokenserial number to update (optional, or maybe as safeguard need to fill in range to update)

NFT permission revocation (potential)
A PUT request to /api/nft/{token_id}/revoke
not sure what this really does :)

Maybe we could also add a burn api endpoint?

@mattsmithies
Copy link
Collaborator Author

@8Beesfr hey, thank you for sending this message over, I'd like to add NFT capability to answer the primary user story:

As a developer, involved in a Hedera NFT project I would like to have the capability to mint and send (admin/wipe safe) NFTs to a user within my solution

On balance, however, there are the turtle moon tools which allow and remove the complexity of minting.

To do this properly we'd need to have the following features:

  • HIP412 standardization by default (we can test through Hashpack)
  • Have a pathway or handle the uploading of media to IPFS (probably NFT storage)
  • A mechanism to auto-mint (and transfer), based on a call of a secure trigger endpoint. (nice to have)

Currently, the flow that many non-technical users' follow is:

  • Minting tokens with Turtlemoon
  • Selling through a launchpad (Zuse, or above)

If we wanted these tools used by the non-technical community there needs to be a frontend to provide the creation layer, and perhaps documentation to trigger a mint/transfer event.

So, I'm trying to gauge the complexity for this to be done properly, I am working on a side project that could warrant the work.

@mattsmithies
Copy link
Collaborator Author

@8Beesfr thinking a little bit further, it seems that a lot of current solutions for minting NFTs require you to have a IPFS link to submit anyway.

That makes things a little easier... potentially having a minting/transfer trigger as a secondary feature for a usecase I am working on.

@8Beesfr
Copy link

8Beesfr commented Aug 1, 2022

@mattsmithies Thanks for the reply Matt!

I have indeed tried turtle moon tools. Although it is amazing what Patches made, I think it is primarly focused on incidental NFT creation - not part of an automated system for example (not sure if I explain well).
Creation of a collection is one, but minting NFTs is definitely something that could add value in my opinion.
The user story you described definitely encapsulates my need:
As a developer, involved in a Hedera NFT project I would like to have the capability to mint and send (admin/wipe safe) NFTs to a user within my solution

Thinking further, for supply chain applications, I think the capability of updating NFTs would be a need too.
As a developer, involved in a supply chain project, I would like to have the capability to mint, update and send NFTs to a user within my solution

I am not sure if this is something we would at first need the non-technical community to be able to use it, but it would definitely help low- or no-coders to build front-end solutions to exactly offer different kind of applications that are more within reach for non technical users.

@mattsmithies
Copy link
Collaborator Author

mattsmithies commented Aug 1, 2022

@8Beesfr ok, working on this now. Version one is going to be an ability to.

  • Create NFTs (no unsafe keys whatsoever)
  • Mint NFTs (currently debating on whether fields will transform to HIP412 by default)
  • Transfer NFTs

I might add a special route that allows for "claiming NFTs" that is if you hold a particular serial number of a whitelisted NFT you can claim the same serial number of a pre-minted collection/NFT from the treasury.

An update function is a lower priority for me atm.

@8Beesfr
Copy link

8Beesfr commented Aug 1, 2022

you ser are on fire

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants