A basic primer on collections, schemas, templates, and minting

Hive Digital
6 min readMar 9, 2023


If you’re new to the world of NFTs or coming from another chain, you may be a bit confused by how NFTs are grouped and organized on WAX. Minting an NFT requires you to set up a collection, a schema, and a template. This article goes through each stage step by step and explains the underlying ideas.

If you have not created anything thus far, the first time you navigate to nfthive.io/creator you will be greeted by a “New Collection” button. The collection is the top-level layer for a group of related NFTs. This could be a game, an artist, or a set of collectibles. Check out https://nfthive.io/collections to get a feeling for collections.

The starting point of your journey as a creator on WAX

As experienced users may have noticed, we also use the atomicassets standard.

Clicking on the “New Collection” Button takes you to a new page.

Setting up a new collection

A collection itself doesn’t hold that much information. As you can see from the screenshot, you will need to provide a representative image, a name, a shortened unique name (which appears in URLs, etc.), a basic description, a URL where users can find further information, and the market fee. The market fee is the cut you as the creator will receive on any trades of any of the NFTs that belong to this collection.

You will have some further options to fill out your socials as well as information about your company (this is important for game developers).

After hitting “Save Changes” and going back to the overview, you will now find your new collection:

The collection we just created has appeared in the overview

At this point, you are presented with four options. Making further changes to the collection itself (adding schemas, templates, and minting NFTs), creating basic or PFP drops, creating packs, and creating crafting recipes. This article will cover the “Collection Editor” option.

We can now go ahead and add our first schema

You will find a screen that looks very similar to the one before, but with a new “schema” section at the bottom (schema is a term that’s not been quite properly translated from German to English by the atomicassets authors. “scheme”, “category” or “group” would have been more accurate. But since everyone is using the term by now, we’ll stick with it). Schemas are the next layer collections are broken down into. A schema will hold all possible attributes an NFT that belongs to it can have. Clicking on “New Schema” will take you to the schema editor.

Setting up the name and attributes of the new schema

In this example, we will set up a schema “collectibles”. “Name” and “img” are default attributes expected from basically any NFT. These are added by our editor as defaults. We also add the quite common “rarity” attribute, which we’ll use later to indicate how abundant our NFTs will be.

Once we hit “Create Schema” we will unlock a new section of the page: the templates.

(The option “Bulk Template Creation & Minting” will be the subject of a separate article)

We’re getting closer to minting our first NFT! If you’ve already looked around WAX NFT markets, you will notice that a huge amount of NFTs are not unique. For example, there are dozens of the same blockchain brawler to buy. All of these NFTs share the same template. In the vast majority of cases, all NFTs of the same template have the same attribute values. You could say all “Scotty Wideyes” are “the same”.

Attribute — Values of the Scotty Wideye template

There are exceptions to this rule, and we will briefly touch on them in this article, but we consider it to be good practice to design your NFTs in a way where any two NFTs of the same template have the same attributes.

Going back to our example, and clicking on “New NFT Template” will take you to a new editor view.

All NFTs of this template will have the same attributes

This view allows us to assign values to our attributes. In this case, we select an image, name the NFT “Wooden Sword” and set the rarity to “common”. Notice the dropdown on the right. If we leave it as is, all NFTs minted from this template will have these attributes. You can also opt to set any attribute to “Exclude from Template”, which, on minting, will enable you to either assign an immutable or mutable value for each NFT individually, or ignore it there as well, and create an NFT without the attribute. When an attribute is “immutable” it means it will never be able to be changed again. This is usually the desired scenario, as a user wants to know what they get before they buy it. A mutable attribute can be changed down the road. This is usually done very sparingly and only in very specific scenarios, for example when NFTs are used in games and can be updated, altered, degraded, etc. over the course of the game. With mutable attributes, the status of the NFT can be stored within itself.

After the template has been created (the max supply can be set in the creation pop-up) we can go back to the overview and take a look at it.

The template is ready for minting

Clicking on “View / Mint” takes us to a screen that, yet again, feels very familiar. The attribute values that we set during template creation can no longer be altered (they could be, had we decided to set them to “Exclude from Template”), and we now get a new “Mint NFT…” button.

The attribute values can no longer be updated

Clicking on that button opens a new popup with some options and information.

Final options for minting an NFT

We’ll ignore the top section (mint to nfthivepacks / mint to nfthivedrops) for now, these will be covered in the packs and drops articles.

The receiver is set to the wallet you’re logged in with per default, but you can update it to any wallet or contract you like. Clicking on “Mint NFT” at the bottom will do just that, and afterward, you can check out the NFT in your inventory!

The NFT has been minted and can be sold on the market

In the next article, we’re looking at how to drop NFTs like these