How To Create An NFT Collection - The Definitive Guide (Part 1)

The entire process of creating an NFT collection explained in three parts

User Avatar
by Dennis
How To Create An NFT Collection - The Definitive Guide (Part 1)

You're probably asking yourself: "How in the world can I create an NFT collection?", I mean, why would you be here if you didn't? But that's alright, today we will find out how to do just that. If you're still asking yourself what the heck even is an NFT?? then you better click that link now and come back later.

Usually NFT collections are assembled with up to 10,000 single images and sometimes even more. Each NFT image itself is built from different parts, generally including popular NFT cartoony characters that are made from human-like traits (e.g. Bored Ape Yacht Club ), such as parts of the face, clothing, hair, background and props. Different parts of an NFT can be rare or have bespoke aspects that determine the value of the final NFT image for sale.

There are multiple parts involved in making an NFT collection, the most important aspects are:

  • The generation process itself, which requires an algorithm to generate thousands of unique pieces given the trait files and parameters.
  • A smart contract, which is immutable code that lives on the blockchain and acts like a vending machine. The contract is a tool to implement a sale agreement between the NFT owner and buyer, thus removing the need for an intermediary or central authority.
  • A website, which provides an interface for users to interact with the smart contract.

Until now, creating NFT collections required non-techy people to either hire a programmer or do the heavy lifting themselves. Puhhh, glad those times are over! Today we're going to explore a super simple and highly configurable way to create your NFT collection using only state of the art technology, the best of the best! Let's get started!

Preparing your files

It all starts with your trait files, which are the single parts your final characters will be made of. We're speaking of different hairstyles, noses, eyes, clothes, backgrounds and so forth. When creating your layer files, you should export them all in the same size, so when we're later going to layer them on top of each other, they will fit just beautifully.

You can do that quite easily in most software's out there, here an example in Photoshop:

layers in photshop

See what we did there? We simply drew every part on its own layer. That makes it really easy to export the single layers! When exporting your files, also make sure that they are PNG files, otherwise they won't be transparent. When using our platform, you can also use videos and GIFs, but that's another story.

Let's prepare our folder! Here's how I have structured mine:

folder structure

So I just created folders for every layer and named them accordingly. The names of the folders aren't that important now, but it will make things simpler if you use the final names like you want them to appear on the marketplace later on. (i.e. OpenSea)

Did you notice something? That's right! We have multiple folders with very identical names, as example, Outfit and Outfit Female. In my collection I have two different base models; a male and a female one. Since I don't want to put the traits of the female model onto the male model, I have separated the folders for each. Later we can join them into a single collection.

You could use this for various collections, doggos and kitties, humans and aliens, [...] I'm sure you have a great idea already! You can create up to 4 different configurations (That's what we're going to call it)

You may wonder what's inside of my folders, let me show you:


Great surprise! Just images.. who would've guessed it?... Okay, I know. It's obvious, but important. Please don't put sub-folders in your folders, only images!

I haven't yet finished naming my images, I'm sure you will do better. Oh, that reminds me of how important image file names are..

You see, those folder and file names will be public later on and they will represent your traits. So instead of naming your images T4_F_Outfit.png why not name them something like Maids Dress.png? This will later show up as Outfit/Maids Dress on official marketplaces.

I'm sure you don't want it to look like this:


(Example taken from OpenSea)

Allowed characters in your filenames are _, a-z, 0-9. The _ character will be replaced with spaces, so Blue_Dress will become Blue Dress


  • Name your files and folders with care. Those names will be used later on.
  • Only put images inside your folders, no sub-folders allowed!
  • If you want to create multiple configurations (i.e. aliens & humans, kitties & doggos), create multiple top-level folders: Outfit Doggo, Outfit Kitty
  • Make sure all your images have the same width and height.
  • Allowed characters: _, a-z, 0-9 where _ will become space

With that out of the way, let's start the fun part.

Creating your collection

First, let's head over to our landing page, from here we can sign into the application by clicking on the sign in button in the top-right corner:


Now we have multiple options to sign in:


If you're on PC I suggest choosing the Metamask wallet. If you don't have MetaMask yet, learn how to set it up here

Now after clicking on the MetaMask button a window pops up asking us to confirm the action, which we swiftly do.

Yet another button! You know what to do! (Click on create, of course!) This is what you should see now:


Here we have to fill out three fields: Collection Name, Subdomain, Collection Description. Let's look at an example from a finished collection:


(Example taken from OpenSea - NFT detail page - NFT detail page example)

You see where the name and description appears? Feel free to open this image in a new tab to enlargen it. Your collection name will be the name of the collection, as you might have guessed, and also the name of the NFTs followed by a # and the token id of your NFT. The token id is just the number of the item inside the collection, so the first item will have the token id 1 (or 0 in some cases).

Your description will appear on the NFT detail page. There is a second description - the one for your collection. The second description appears on the collection overview page (remember Bored Ape Yacht Club?), the collection description can be set later on OpenSea itself.

Now for the subdomain. We will not only create an NFT collection, we will also create a website! You want others to be able to mint your NFTs, right? For that you need a website, but don't worry, it's super easy! We will create a website in the third step of this series.


  • Your collection name represents the final collection name and will also be used in the name for each individual NFT itself (followed by # and a token id)
  • Your collection description will appear on the NFT detail page, keep it short and simple, the description for your collection can be set later in OpenSea.
  • The subdomain will be used to access your website later on. You can also connect a top-level domain, but this will be the topic of the third part of this series. Choose something related to your collection name.

Now all you have to do is to click on create collection.

Setting up your collection

Awesome! We can finally upload our trait files which we have prepared before. Do you see this box in the center of your screen?


You can either click it and select the folder you have prepared before, or you drag your folder into this field. After selecting your folder you need to wait a short moment - your files will be prepared first. If anything goes wrong, you will be notified, so stay alert. When your files are prepared, which should only take a few seconds, a new window will pop up:


I went ahead and highlighted the important areas in different colors, since we will spend some time in here. This is the trait setup modal, and as the name suggests, it serves to configure your trait files. So what exactly is there to configure? We can.. order our traits, create different configurations, add layer effects such as blend modes, opacities, change layer names and so on. So quite a lot!

Let me explain the areas:

  • Green area: Those are just your layers. From there you can drag them into your layer configurations.
  • Blue area: This is your first layer configuration. When you first uploaded your folder, it might be a little cramped in here. Feel free to delete some layers from here, you can drag them inside from the green area later. You might have noticed the blue buttons in here, clicking those allows you to change the layer name, opacity and blend mode.
    • The layers inside the blue area(s) (layer configurations) are also draggable, which allows you to change your layer order. You would want to put your base model above the background as example.
  • Red area: Clicking here creates a new layer configuration (blue area), remember doggos & kitties... ? Layer configurations are where it's at.
  • Yellow area: This one appears under every layer configuration, here you can set the amount of items inside this configuration and you can also remove the configuration.


You might ask yourself, how the amount of items works. It's simple, items from different layer configurations are simply being added. As an example, let's say you want to create 10,000 NFTs in total, 5,000 of which are human and 5,000 of which are alien. You would create 2 layer configurations, drag your layers inside (from the green area into the blue area(s)) and set the items fields (yellow) of each configuration to 5,000. Not so hard, is it?

As you probably remember, I want to create two different models in my collection, male and female. So this is what I came up with:


As you can see I have created two layer configurations and set them to 50 items each. I ordered my layers just like we did in Photoshop before. If you have a keen eye, you might have noticed that the ordering for the male and female models is slightly different. That's fine!

But what are we going to do about the names? I don't want my layer to appear as Outfit Female on OpenSea. To change that, we can simply click the blue buttons and set a different name:


(I changed Hair Female to Hair in this example)

Now, when you're ready, simply click close. Don't worry, you can access this window at any time!

Let's generate some NFTs 🎉


This is what you should see now. The most prominent part might be the left side of the screen, where your traits are being displayed. This should by default be in grid view, when you scroll up, you will see a button where you can switch to list view.

The grid view quite simply is for changing your trait properties like rarity, the list view is for filtering your collection.


( List view with selected filter)

When the grid view is active, we can simply click our trait images to change the rarities:


Pretty easy, actually! You might have spotted the max: auto field, when we click this field, we can set the maximum number of times this trait can appear in our collection. Quite handy, don't you think?


( This trait will appear max. 5 times in our collection )

There is something else, the toggle blank button. We will get to that later, but in short, this button adds/ removes a blank trait into your layer. This is handy, because if your layer only has a single trait, this trait will be required by every item in your collection. So if you want to have some NFTs without this trait, you must add a blank to the respective layer. The blank item will be ignored, it's just there to make life simpler (we could also create blank trait files, but that's too much work!).

Let me explain the the various buttons in the interface from top to bottom and left to right, if you want you can skip this section:

Tabs (First Row)

  1. Collection: You're here now! This is your collection overview.
  2. Contract: Whooho! Not so fast! We can generate a smart contract for our collection here once we finished generating it!
  3. Ipfs: After generating our collection, we can click Ipfs to see all of our NFTs in full res already hosted and pinned to IPFS (InterPlanetary File System). When generating your final collection, we actually upload it in the same step. So here you can make sure you're happy with the outcome before creating a contract.
  4. Website: Remember our subdomain? This is where we can create and manage our website later on!
  5. Settings: Here you can change your collection name and description as well as your subdomain. You can also add a top-level domain here!

Buttons (Second Row)

  1. Generate Preview & Save: This generates a preview collection and also saves some of your settings! We auto-save, but it's always better to make sure!

Confused about generate preview and generate collection? Generate preview generates a temporary collection which is displayed immediately, this preview collection won't make it into the world wide web(3), though. When clicking generate collection you're generating a final collection, which will be hosted and publicly available. This will be the collection that others can mint and purchase later on.

  1. Trait Setup: That's where we just configured our layers! Here you can access it again.
  2. 1/1s: If you wish to add totally unique (and super rare!) pieces into your collection, also called 1/1s, you can click here to upload them. Allowed files are JPGs, PNGs, GIFs, Videos, ... Those items will be added to your final collection in a random spot.
  3. Kept NFTs: Saw the quote above? We spoke from final generation and generating a preview. Your preview collection will all be lost when generating the final one. But what if you fell in love with that one particular preview NFT? Well, you can just click on Keep in Collection and we will make sure it appears in the final generation. You can find (and manage) your kept nfts here.
  4. Rules: Do you have some traits which absolutely can not be used together? Or some traits which must be used together? This is where you set it up.
  5. Re-Upload Traits: Made some naming mistakes? Added new traits? Click here to re-upload your folder. Beware though, this will overwrite all your trait files.
  6. Generate Collection: This is where the magic happens! Clicking here unravels all the folds of the magical web3 land to make sure your amazing collection will find a nice and cozy spot there. So basically, it generates and upload your final collection. But that sounds.. lame.

Now, since we're already familiar with the interface, let's click on generate preview 🎉 Let me guess, you could not wait and already clicked it?? Well, anyway, there they are, countless of amazing and (soon to be) NFTs. Awesome!

Some additional notes:

Clicking any image in your collection opens a details panel:


The details panel shows the traits of each item, the rarity of those traits, and some more information. You will also find a download and keep in collection button here. I have explained what the keep in collection button does above in 4. (Kept NFTs). The download button simply downloads a final and high-res version of this specific NFT which you can use for marketing or just showing off.

For all the night owls, clicking the sun/moon icon in the top right toggles the dark theme:


Discovering rules

Something odd is happening in my collection, take a look at this picture and see if you can spot it:


Did you spot it? Look closer.. there's something in her.. hair? Something is floating in her hair, on the left side. That little red piece, do you see it? This actually is an accessory, but it must be used with a very specific hair style - it doesn't work with others. Do you know how to fix it? Let's do it together!

First, let's open our rules window..


We have two rows here, the upper one is for traits that can not be used together, the lower one for traits that must be used together. Each row has three buttons, the buttons containing the dots are the ones we want to click to select traits.

Let's click the left ...-button of the lower row...


Now from the list of traits, we search the head accessory and click it. It will be highlighted in green when selected. After selecting, we simply click the X button in the top-right.

After clicking the second ...-button...


...and selecting the hairstyle we want to use with the accessory...


...we end up with this. Now, we just need to click the Add button and hit save. We have successfully added a rule 🎉

Let's check if it's working!


I generated a new preview and filtered (list view!) the collection to only show the female models. Is something... wrong? 🤔 It seems like all of our female models have the same hairstyle now! We obviously don't want that. How do we fix it? Hint: I only have one hair accessory in my layers... did you get it? Correct! We need to add a blank!


After clicking on toggle blank in the corresponding layer (grid view) we end up with this. We can set the rarity for the blank item as well! The blank item will not end up in your metadata, it will be invisible forever!


There we go! Puhh.. Glad we were able to fix that! Now, if you're happy with your preview collection, we can generate our final collection...

Generating the final collection

Remember the generate collection button in the top-right? Now it's time to click it! It will open a modal, where you are asked to confirm the generation. The modal contains some additional information, read it carefully! After some time we should see the following message pop up:


Now we can click that IPFS tab we talked about earlier!


As you can see, your collection is already floating around in the InterPlanetary File System. Isn't that great? You can click any image to open the full res version in a new tab!

From here, we can create a website and a contract. We will look at creating a smart contract in part 2 of this series. I hope this article wasn't too long for you to read! Maybe the images made it a little more enjoyable!

As you can see, it's super easy to create NFT collections! Let's create our smart contract next.

Click here to get to part 2 of this series!

Join our community

Make sure to follow us on twitter, to stay up to date on our latest updates, articles, giveaways and more! You can follow us on twitter here.

If you want to get up close with us, join our discord community! We're active in there most of the time, so if you have questions or need anything, let us know!

Continue Reading