So you want to make an NFT…
Buckle up, this is a long and complex guide, split in 3 parts:
- Creation & Generation;
- Smart Contract Development & Deployment;
- Minting & Listing.
This is part 1/3: Creation & Generation
What you’ll need
For the artistic part of your NFT project you will require a graphics design software. We recommend a vector art capable software like Adobe Illustrator or Inkscape.
For the technical part you are required to have .NET installed. If you don’t, just get it for free here.
Artistic part
First thing you need to do is to come up with a unique idea that would sell. Keep in mind, in order for your NFT to be generative, you have to be able to layer different graphical elements to create your art project.
Think of it like a simple grilled cheese sandwich. In this example, you can choose between 3 types of bread, 4 types of cheese and 2 optional toppings.
Bread: multigrain, rye and sourdough
Cheese: cheddar, gouda, gruyere
Toppings: raspberry jam, fried onion
An example of sandwich layered from bottom to top:
layer0: rye bread;
layer1: gouda;
layer2: ;
layer3: rye bread;
Notice we chose to leave the 3rd layer (layer2) empty. You can do that with your NFT as well. With these options you can generate a few dozen different sandwiches. That’s exactly how generative NFTs work.
Trending Cryptocurrency Hub Articles:
1. VeChain Price Prediction 2021
2. Why I Don’t Waste Time Investing In Bitcoins
3. How to launch a token on Stellar Blockchain Network?
4. How and Where to Buy DWS (DWS) — An Easy Step by Step Guide
How to actually make a layered image
We will use Adobe Illustrator to show you a simple tutorial.
- Open Adobe Illustrator and create a new document. You can choose whatever size you want. The most common size used for NFTs is 3000x3000 pixels.
2. Get familiar with the layer functionality. The layer tab is usually located on the right sidebar. You can create a new layer by clicking the small + icon located in the lower right corner of the layer tab.
The order of the layers is very important. In the above screenshot there are two layers: “This is Layer 0” and “This is Layer 1”. At the moment, they are both empty (no graphical elements). Layer 0 is below Layer 1. This means, you will first see what is on the Layer 1.
This example above shows how layers work. We have a purple rectangle in Layer 0 and a green rectangle in Layer 1. Both rectangles are the same size. As you can observe, we can only see the green rectangle, because the layer in which it is located is Layer 1.
Now we made the green rectangle smaller. You can still see it but now, it is not big enough to cover the purple rectangle located in Layer 0.
Note: you can hide/unhide elements and layers by clicking the small eye icon located left of the element. You will use this feature when exporting the graphical elements.
3. Create graphical elements for each layer
This is a 3 layer image. We have the “Background” layer, the “Circle” layer and the “Triangle” layer. The background layer has 3 options for a background (a canvas sized square): purple, blue and orange squares. Notice that only one option per layer are shown; the rest are hidden. The image shown is what one of your generated NFTs can look like.
When layering different elements, make sure they will be visible when combined together. Avoid using close shades of the same color. The triangle in this case is barely visible.
4. Export every element by layer
A good practice is to make a folder for every layer and export the respective elements separately. Example:
\myNFT\assets\01Background
\myNFT\assets\02Circle
\myNFT\assets\03Triangle
We strongly encourage you to avoid using dots “.” or white spaces “ “ in the names of folders or images.
Before exporting, hide all the other layers and elements (only one element or group of elements should be visible) like so:
To export, click File->Export->Export for Screens or Command-Alt-E/Ctrl-Alt-E and select the Artboards tab. Choose the \myNFT\assets\01Background folder created previously in the “Export to” section, rename “Artboard 1” to “Purple Background” and click Export Artboard.
Repeat the process for every element. When you finished with the “Background” layer, don’t forget to change the export folder.
It’s not that difficult, is it?
Technical part
This is the part where you combine all the elements exported earlier into unique pieces of art (or dank memes). It’s a difficult job if you’re not a programmer. You would need to write a program that takes your exported images as input and outputs combinations of them according to certain set of parameters like chance, collection size, etc. However, this step should not discourage you because Hazel Team has your best interest at heart. Just go check out our NFTGenerator. It has an easy-to-follow documentation so we won’t be covering the code in this article.
As seen in the documentation,
After the tool finishes execution, the output will be present inside the output/ sub-directory of the
BaseDirectory
path fromconfig.json
. The structure of the output/ directory is the following:1. collectionName:
● images: contains all NFT images;
● metadata: contains one
json
file for each image (OpenSea standard compliant).2. metadata.json (file containing all properties of all images in json format)
You now have everything you need to begin the uploading process.
IPFS & Pinata
Now that we’ve generated all the images, we need to upload them somewhere. We do this step in order to avoid steep gas fees.
Operating a blockchain is costly and the transaction price is proportional to the data size within the transaction. The more data you upload to the blockchain, the more expensive the transaction. A 3000x3000 pixel image uses around 1 MB of storage, so it would be much more affordable to upload a text containing a link to the image.
IPFS is where you can upload your images and be assured they will stay online for the rest of the eternity. Think of IPFS as a cloud service like Google Drive or Microsoft OneDrive with the one difference being, IPFS uses blockchain. While traditional cloud services can be taken down, it’s close to impossible to take down a blockchain-based service because of its decentralized nature. Another advantage of IPFS is that the URL address of a file is dependent on the file contents. This result in an URL being unable to point to multiple images.
In order to use IPFS, you need a gateway service like Pinata. Think of this as un upload manager. Create a free account (up to 1 GB upload) and upload your NFT folder using the interface. You will then get a CID linked to the uploaded folder and generated based on the folder contents. If any file changes within the folder, the CID will change too.
The CID is used in the IPFS URL as such:
ipfs://CID
This URL cannot be opened in a browser but you can use a traditional HTTPS URL of an IPFS gateway like so:
https://ipfs.io/ipfs/CID/image_name.png
Our NFTGenerator will guide you through all the steps. All you need to do, is follow the instructions in the console. Please, make sure to first read the Tool Usage section of the documentation.
If you followed the steps correctly, you should be done (with this part)! Now we need to write a smart contract to govern the NFT collection.
Part 2 of this tutorial is coming soon so make sure to follow us. We’ll show you how to write, test and deploy an NFT smart contract.