How to mint NFTs on Tezos
In this tutorial with 5 modules, we will create our first Tezos NFT collection, mint one of the NFTs to our address, learn how to verify ownership + metadata and how to admire the minted token in a web wallet.
Setup - Clone and run the NFT-Kit
A new collection - Configurations and Deployment of the NFT Smart Contract
First NFT - Minting of the collection NFTs
Verification - How to verify NFT ownership + metadata fields
Wallet - Viewing the NFT in a web-wallet
Before we can start with configuring our NFT collection, we need to clone and run the NFT-Kits REST API on our machine.
Make sure you have a JDK 16 build environment including Gradle installed on your machine
Make sure you have a Node.js and the npm installed on your machine.
Clone the project
2. Change the folder
3. Put the configuration needed by the file under the path: js/.env
of the project
4. Run the following command:
4. Run the following command:
5. Open new terminal under the path: waltid-nftkit
6. Make the rest of the configuration
7. Build the project
8. Run the executable
In build/distributions/
you have two archives, a .tar, and a .zip.
Extract the one that is built for your system and run it.
Now we can visit the REST API at the endpoint displayed in the terminal after running the project. In the next section, we will be configuring our NFT collection and deploy the Smart Contract on Tezos.
NFTs verification enables multiple use cases. The NFT Kit provides numerous approaches to verify the ownership of the NFTs and that the NFTs have customized properties.
1- You can verify that an account owns a particular NFT.
2- You can verify that an account owns an NFT in a specific collection.
3- You can verify that an account owns a particular NFT with a specific NFT metadata property.
4- You can also verify that an NFT metadata confirms a policy. The policy is implemented using the high-level declarative language called Rego. It is based on open policy agent(OPA).
You need to add new policy:
Then, you can apply the policy to any NFT metadata.
Now, you're able to mint your first NFT. We will use the deployed smart contract in the previous section to mint a new NFT. Every NFT must have metadata. Using the NFT Kit, you have two options to provide the NFT metadata. Either give the metadata URI directly or let the NFT Kit generate the metadata URI based on IPFS. This tutorial will provide the metadata and let the NFT Kit generate the metadata URI.
We also need to provide the token id and the recipient account for the NFT.
The amount parameter must be an empty string because the type of the deployed smart contract is "SINGLE". If you use the "MULTIPLE" smart contract type, you should provide the number of copies of the minted NFT.
Before we can mint an NFT, we need to define the collection, of which the NFT will be a part, via the deployment of a smart contract. Thanks to the REST-API from the NFT-Kit, we can easily deploy a contract based on the FA2 unified token standard from Tezos with the multiple implementation (equal to ERC-721 or ERC-1155on Ethereum). Which is one of the standards for creating NFTs.
Before you mint a new NFT, you need to have an already deployed smart contract or deploy a new one. For this tutorial, we will deploy a new smart contract.
We will deploy the smart contract on the Tezos testnet "GHOSTNET". We need to provide the owner and the type of smart contract(our NFT Kit supports two smart contract implementations: you can click here for more details).
Response:
After that, you must define who can mint new tokens within an already deployed smart contract. In our case, we take the previously deployed contract.
The "minteraddress" is the account that will sign the mint transaction.
Response: