Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Proof of State Blockchain - Open-Source, Self-Upgradable, Energy-Efficient
Tezos is an open-source, self-upgradable, energy-efficient and built to last Proof of Stake blockchain protocol for assets and applications, backed by a global community of validators, researchers, and builders. Tezos will drive social, political and economic innovation on a global scale.
Depending on your preference, start exploring with the deep dive or a tutorial.
Deep dive
Architecture - See how Tezos was integrated into the NFT-Kit
NFT | Minting - How to deploy Smart Contracts and mint NFTs
NFT | Ownership - How to verify NFT ownership within a collection and traits
NFT | Wallet - View NFTs via a Web-Wallet
Tutorials
Minting NFTs on Tezos - Deploy a contract, mint, validate and view an NFT in a web wallet
Tezos offers a platform to create smart contracts and build decentralized applications, that cannot be censored or shut-down by third parties. Furthermore, Tezos facilitates formal verification, a technique used to improve security by mathematically proving properties about programs such as smart contracts. This technique, if used properly, can help avoid costly bugs and the contentious debates that follow.
You can use this API to verify if an account is the real owner of an NFT existed in Tezos blockchain.
Path parameters:
chain
: [string] chain to work with. Either TEZOS
or GHOSTNET
.
contract
: [string] smart contract address.
Query parameters:
account
: [string] owner of the NFT.
tokenId
: [string] token id of the NFT
Example:
We use this API to verify that an account has a NFT within a particular collection.
Path parameters:
chain
: [string] chain to work with. Either TEZOS
or GHOSTNET
.
contract
: [string] smart contract address.
Query parameters:
account
: [string] owner of the NFT.
Example:
You can use this API to verify if an account is the real owner of an NFT existed in Tezos blockchain with NFT property verification.
Path parameters:
chain
: [string] chain to work with. Either TEZOS
or GHOSTNET
.
contract
: [string] smart contract address.
Query parameters:
account
: [string] owner of the NFT.
tokenId
: [string] token id of the NFT
traitType
: [string] name of the property you want to verify
tokenId
: [string] value of the property you want to verify
Example:
Create and mint NFTs via the FA2 (Financial Application 2) unified token standard on Tezos, offering the following token types:
fungible (equals ERC-20 on Ethereum)
non-fungible (equals ERC-721 on Ethereum)
non-transferable (equals ERC-1238 on Ethereum)
multi-asset contracts (equals ERC-1155 on Ethereum)
The FA2 standard has multiple implementations. We support the following:
Single
With this implementation, you can only have one collection. It is like the ERC-721 style. Only owner minter can mint new NFTs.
Multiple
With this implementation, you can have multiple collections. In each collection, you can define the number of copies of each NFT. It is somehow like the ERC-1155 style.
We offer a set of default FA2 based smart contract templates, providing the main functionality needed for NFT projects.
Path parameters:
chain
: [string] chain to work with. Either TEZOS
or GHOSTNET
.
owner
: [string] the owner(Admin) of the smart contract.
type
: [string] the FA2 smart contract implementation. Either SINGLE
or MULTIPLE.
For more explanation, you can click here.
Example:
The FA2 smart contract implementation allows minting NFTs from different accounts. The owner of the smart contract is allowed to add new minters.
Path parameters:
chain
: [string] chain to work with. Either TEZOS
or GHOSTNET
.
contract
: [string] smart contract address.
Body parameters:
minterAddress
: [string] an account address that will be able to mint new NFTs.
Example:
With this API, you can mint a new NFT. It have multiple options to manages NFT minting. You can generate NFT URI metadata by yourself or let the NFT KIT generate it.
Path parameters:
chain
: [string] chain to work with. Either TEZOS
or GHOSTNET
.
contract
: [string] smart contract address
Body parameters:
metadataUri
: [string] metadata URI of the new token.If you want to generate metadata URI using NFT KIT, set the "metadataUri "value as an empty string.
tokenId
: [string] the account address who will receive the NFT
amount
: [string] the account address who will receive the NFT
recipientAddress
: [string] the account address who will receive the NFT
metadata
: NFT KIT will use values inside metadata to generate metadata URI of the new token. It confirms the structure defined by ERC721 and ERC1155 standards. For more details about NFT metadata standard.
description
: [string] a description of the token
name
: [string] the name of this specific token
image
: [string] this is the URL to the image of the item. Can be just about any type of image and can be IPFS URLs or paths.
image_data
: [string] Raw SVG image data, if you want to generate images on the fly (not recommended). Only use this if you're not including the image parameter.
external_url
: [string] This is the URL that will appear below the asset's image on OpenSea and will allow users to leave OpenSea and view the item on your site.
attributes
: [string] To give your items a little more pizazz, we also allow you to add custom "attributes" to your metadata that will show up underneath each of your assets.
trait_type
: [string] the name of the trait
value
: [string] the value of the trait
Example:
You can get the NFT metadata based on the NFT smart contract address and the NFT token ID.
Path parameters:
chain
: [string] chain to work with. Either TEZOS
or GHOSTNET
.
contract
: [string] smart contract address
tokenId
: [string] token id of the NFT
Example:
You get the NFTs list of an account on the specified network.
Path parameters:
chain
: [string] chain to work with. Either TEZOS
or GHOSTNET
.
owner
: [string] owner address
Example:
This API allows fetching contract metadata.
Path parameters:
chain
: [string] chain to work with. Either TEZOS
or GHOSTNET
.
contract
: [string] smart contract address
Example:
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
Tezos + NFT-Kit Integration Diagramm
This diagram resume the integration of Tezos ecosystem in our NFT Kit. Tezos is rich ecosystem, theirs is flexibility in the integration of a such ecosystem. You can use our product either using REST APIs our as a library.
In general, there are two types of interactions: reading or writing from the Tezos blockchain.
For the writing operation, you need the smart contract (address or code), private key to sign operation, and an RPC connection. The NFT Kit will take care of the operation signing with the specified private key. Then, send the operation the the specified network(Mainnet or Testnet).
For reading operation, We use a Tezos indexer. We are making queries to TzKT API.
The smart contract is developed using the Archetype high-level programming language. We use FA2 Tezos standard.
Using our wallet, you can fetch and list your NFTs on Tezos blockchain.
Step1: Click on "Connect Tezos wallet" button.
Step 2: Choose an account.
Step 3: You will have the list of your NFTs in the main Tezos chain.
Step 4: You can switch between networks. Choose another network.
Step 5: You will have the list of your NFTs on the selected network.
Step 6: Click on the NFT you want to see their details.
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:
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 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 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
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.