So you want to launch an NFT?
This is a 3-part series on the technology and processes used at Spectra.art to build and launch generative art NFTs on the Ethereum blockchain.
Follow me on Twitter or Medium to get notified when these posts are ready.
Part 1: Deploying a contract and selling NFTs
Part 2: Securely managing a deployed smart contract
Part 3: Connecting a web app to the blockchain (minting)
What do you need?
- To follow, you’ll probably need some basic programming experience. Javascript is especially helpful, because the smart contract’s we’ll write are written in Solidity, which has a Javascript-inspired syntax.
- Patience. NFTs are an emerging technology. Be prepared for incomplete documentation, Stack Exchange answers from 1 week ago that are already out of date, and a whole lot of slow debugging.
- (Note to self:) Focus. NFTs have many applications. Once you get 1 or 2 weeks into a project there’s at least a 100% chance you’ll have newer and shinier ideas. Pivot if you have a lot of conviction on them, but don’t try to do everything at once.
Pre-reading:
If you’re new to crypto, Web3 or NFTs there’s a lot of great resources to skim that will get you ready to start building pretty quickly.
We’ll be focused entirely on Ethereum, and their primary language for smart contract development: Solidity.
- An intro to Ethereum, from it’s creators:
https://ethereum.org/en/what-is-ethereum/ - Solidity docs:
https://docs.soliditylang.org/en/latest/ - A cautionary tale on security :
https://manifoldxyz.substack.com/p/the-fvckrender-hack-post-mortem
Extra reading:
- Ethereum development guide: https://ethereumdev.io/
- Best practices: https://yos.io/2019/11/10/smart-contract-development-best-practices/
- Using remix (a browser-based IDE for solidity): https://learnxinyminutes.com/docs/solidity/
What will we use?
There are many great tools and libraries to faciliate web3 and blockchain development. Here’s our current stack, after experimenting with the most popular options.
Backend
- Hardhat: core smart contract development framework
- Ethers: javascript library to connect to your smart contract
- Gnosis: securing our smart contract once it’s deployed
- OpenZeppelin: effectively Solidity’s standard library
- Etherscan: viewing blockchain data and transactions in the web
- Infura: accessing Ethereum nodes to connect to the blockchain
- Pinata: Storing data decentrally on IPFS
Frontend
- React: Developing our web application
- Metamask: Connecting our web application to users’ wallets
- AWS: Deploying and hosting our web app
What next?
Reach out and say hi!
You can catch me on Twitter, or the Spectra.art discord server.
I’m happy to have a chat about your project, and am always willing to learn as this space continues to evolve at lightspeed.