In this article I’m gonna lay out some NFT Minting App Development. These are Baby Steps that follow some “best practices” and guidelines that actually come from the “first principles”. In software development currently the recommended way is – separating apps independently or some kind sort of Micro Services. You could read more about that topic here:
I’ve written about the first 3 steps needed – to get into NFT. These are high level – architectural aspects. Here, I’m gonna explain in some more details – the steps a little more.
Collect NFT Metadata
The NFT Metadata must be entered – in in some way . First you must collect it.
- Run by yourself the blockchain that is the hosting NFTs. It sounds basic, but it is not an easy task.
- The First option to collect the NFT metadata is to request it from the User in some Form. A front-end app needs to be coded for this.
- Blockchain Login is a necessary step here
- The other one is to have it Generated Programmatically – with small variations. The most popular and the expensive NFTs are Generated By Software. The images and the names could be grabbed from the input file/characteristic names. The Descriptions could be file name based or something else, but generally – it is harder to programmatically enter.
- The Image Files and the Meta Data File should be stored on hash based storage like ipfs so it cannot be changed. This is a potential for another service.
- You Create NFTs on platforms that are mostly based on Smart Contracts. These programs are deployed on some blockchain.
- Another separate service(s) could be Smart Contract Deployment and/or Execution.
- On the non-smart-contract NFTs – you could create an app that executes the necessary commands could be wrapped up.
- The blockchains that are getting too many requests raise up their gas for executing transactions. As far as I have seen – many of them expose the estimated gas price for executing a transaction. You could wrap up independently also.
- Most NFTs are not associated and stored to an account (public/private key) of the user like in a normal relational database. You need a service to analyze the whole blockchain and detect minting events – for new assets.
- Buy & Sell Front-End – Marketplace functionality
I’ll extend this list with my experience with the topic.
More deep dive into – what is needed to think about – I’ve read on this blog post https://nftschool.dev/concepts/minting-app/#contract-design