Quantum
  • Welcome to Quantum
  • Developer portal
    • Pricing
  • Self-Custody Infrastructure
    • Pincode Management
    • Private Key Management
  • Quickstart guide
  • Authentication
    • API Authentication
  • Faucets
  • Networks & URLs
  • Walletify Api
    • Overview
    • Getting started
    • User Management
    • Signing Methods
    • Testnet Assets
    • Basic Guides
      • Create a user
      • Retrieve a user
      • Update a user
      • Delete a user
      • Create a signing method
      • Update a signing method
      • Delete a signing method
      • Create a wallet
      • Retrieve wallet
      • Archive a wallet
      • Import a wallet
      • Export a wallet
      • Retrieve native balance
      • Retrieve ERC20 tokens
      • Retrieve NFTs
      • Transfer a native token
      • Transfer an ERC20 token
      • Transfer an NFT
      • Transfer a fungible token
      • Signatures
      • Read a contract
      • Execute a contract call
      • Get Transaction status
      • Resubmit a transaction
      • Get wallet events
      • Webhooks
    • Advanced Guides
      • Burn an NFT
      • Filter Spam NFTs
      • Filter NSFW NFTs
      • SWAP Token Pairs
      • Gasless/Meta Transactions
      • Sign RAW Transactions
      • Using Fiat Onramp with Walletify-API
      • Deploy an Ethereum contract
      • Integrate with WalletConnect
      • Set Up NFT Token Gating
      • Chain Specific Fields
      • Integrate with WalletConnect
      • Encrypted PIN Transfer
  • Nft Wizard Api
    • Overview
    • Getting started
    • Basic Guides
      • Get any NFT info
      • Get any NFT contract
      • Get NFTs by any wallet
      • Get wallets by any NFT
      • Create contract
      • Retrieve Contract
      • Delete Contract
      • Check Contract Status
      • Retrieve Contract Metadata
      • Update Contract Metadata
      • Create Token-type (NFT template)
      • Retrieve Token-type (NFT template)
      • Delete Token-type (NFT Template)
      • Check Token-type Status
      • Retrieve Token-type Metadata
      • Update Token-type Metadata
      • Mint an NFT
      • Batch Mint NFTs
      • Update NFT Metadata
      • Retrieve NFT Metadata
      • Add Audio to your NFTs
      • Add Video to your NFTs
      • Store NFT Media
      • Webhooks
    • Advanced Guides
      • Mass Minting
      • Speed Up Minting
      • Dynamic NFTs
      • Configure Royalties
      • Create Company Minter Wallet
      • Retrieve Company Minter Wallets
      • Store NFT Metadata on IPFS
      • View NFT on sandbox/testnet
    • NFT Configuration
      • Attributes
      • Animation & Media
      • Collection Info
      • Max Supply
      • Mint Number
      • Burnable
      • Metadata Storage
  • TMINTER API
    • Overview
    • Getting started
    • Basic Guide
      • Retrieve Any NFT Information
      • Retrieve NFT Contract Information
      • Retrieve NFTs by Wallet Address
      • Retrieve Wallets by NFT
      • Create a New NFT Contract
      • Retrieve a Contract
      • Delete a Contract
      • Check Contract Status
      • Retrieve Contract Metadata
      • Update Contract Metadata
      • Create Token-Type
      • Retrieve Token-Type
      • Delete Token-Type
      • Check Token-Type Status
      • Retrieve Token-Type Metadata
      • Update Token-Type Metadata
      • Mint a Single NFT
      • Batch Mint Multiple NFTs
      • Update NFT Metadata
      • Retrieve NFT Metadata
      • Add Audio to Your NFTs
      • Add Video to Your NFTs
      • Store NFT Media
      • Webhooks for NFT Events
    • Advance Guide
      • Dynamic NFT Creation
      • Token Economics and Supply Control
      • Advanced Minting: Royalty Distribution
      • Cross-Chain NFT Minting
      • NFT Sharding (Fractional Ownership)
      • Batch NFT Minting with Custom Metadata
      • Add Interactivity to NFTs
      • Advanced Media Integration: VR and AR
      • Webhook Triggers for Automated Processes
Powered by GitBook
On this page
  • What we cover in this guide
  • Prerequisites
  • 1. Authenticating
  • 2. Creating a Contract
  • 3. Check the status of the contract/collection
  • 4. Creating Token-type
  • 5. Check the status of token-type
  • 6. Minting an NFT
  • 7. Check the status of NFT mints
  • View your NFT on testnet
  1. Nft Wizard Api

Getting started

PreviousOverviewNextBasic Guides

Last updated 9 months ago

What we cover in this guide

In this guide, we will explain how to authenticate to our API service, as well as create your first NFT. We will walk you through several endpoints to help you get started. We will cover the following topics:

Prerequisites

  1. You need a Quantum business account, if you don't have one, click to register in our Developer Portal, or follow our step-by-step guide, .

  2. You need your Client ID and Client Secret which can be obtained from the as shown below.

📘

All the API calls for this guide run on a sandbox environment. You can test and experiment with API calls without causing any harm to the actual blockchain or data.

1. Authenticating

You will need your access credentials (Client ID and Client Secret) to obtain a bearer token and authorize all API calls. These credentials are necessary for authentication purposes.

📘

  • Please note that the base path for all NFT API endpoints is https://nft-api-sandbox.quantum.io

2. Creating a Contract

Let's start by defining your first contract. This contract will represent a collection for the NFTs. We will create a contract on the Polygon (MATIC) testnet chain.

📘

As the API calls are running in a sandbox environment, the contract will be created on a testnet chain. In this example we will create an NFT contract on the MATIC testnet chain.

HTTP

 POST /api/v2/contracts/deployments

Request Body:

Parameter
Description
Type
Required

name

The name of your NFT collection/contract

String

✅

description

The description of your NFT collection/contract

String

✅

image

The image URL for your NFT collection/contract that will be displayed

String

✅

externalUrl

This can be any link such as a link to your website, landing page, etc.

String

✅

chain

This is the blockchain on which you want to create the contract on

String

✅

JSON

{
  "name": "NFT Collection",
  "description": "Sample description",
  "image": "https://techround.co.uk/wp-content/uploads/2022/01/Quantum-logo.png",
  "externalUrl": "www.quantum.io",
  "chain": "MATIC"
}

Response Body:

📘

Save the result.id from the response body. This is the Deployment ID used to track the status of the contract creation request.

JSON

{
    "success": true,
    "result": {
        "name": "NFT Collection",
        "description": "Sample description",
        "id": "4c1a078e-1b48-4280-882c-d0cd1dbd9a8f",
        "secretType": "MATIC",
        "symbol": "NFCO",
        "externalUrl": "www.quantum.io",
        "image": "https://techround.co.uk/wp-content/uploads/2022/01/quantum-logo.png",
        "media": [],
        "transactionHash": "0xf2b1d8c0f993e51954ff7ce965dd5363497083254f3f67c1aafe932a40ccfe8f",
        "status": "PENDING",
        "storage": {
            "type": "cloud",
            "location": "https://metadata-staging.arkane.network/metadata/contracts/64265"
        },
        "contractUri": "https://metadata-staging.arkane.network/metadata/contracts/64265",
        "external_link": "www.quantum.io"
    }
}

3. Check the status of the contract/collection

This endpoint is used to check the status of a contract/collection on v2. The {deploymentId} in the path is for tracking the status of contract creation. It is in the response body of the create contract/collection endpoint as result.id.

HTTP

GET /api/v2/contracts/deployments/{deploymentId}

Example Request

HTTP

GET /api/v2/contracts/deployments/4c1a078e-1b48-4280-882c-d0cd1dbd9a8f

Response Body

📘

In the response body look for the result.status parameter. It can have three possible values:

  • SUCCEEDED

  • PENDING

  • FAILED

JSON

{
    "success": true,
    "result": {
        "name": "NFT Collection",
        "description": "Sample description",
        "address": "0xa90da02f49880320e4bb237c8ce0d2f4f42bfbd5",
        "id": "4c1a078e-1b48-4280-882c-d0cd1dbd9a8f",
        "secretType": "MATIC",
        "symbol": "NFCO",
        "externalUrl": "www.quantum.io",
        "image": "https://techround.co.uk/wp-content/uploads/2022/01/Quantum-logo.png",
        "media": [],
        "transactionHash": "0xf2b1d8c0f993e51954ff7ce965dd5363497083254f3f67c1aafe932a40ccfe8f",
        "status": "SUCCEEDED",
        "storage": {
            "type": "cloud",
            "location": "https://metadata-staging.arkane.network/metadata/contracts/64265"
        },
        "contractUri": "https://metadata-staging.arkane.network/metadata/contracts/64265",
        "external_link": "www.quantum.io"
    }
}

4. Creating Token-type

Next, we will create a token-type which serves as a template for minting NFTs. This means you just have to define the NFT template once with parameters like its name, image, attributes, etc, and then you can mint multiple NFTs directly to your end-users wallets.

HTTP

POST /api/v2/token-types/creations

Request Body:

Parameter
Description
Type
Required

secretType

The blockchain of the contract

String

✅

contractAddress

The contract address under which you want to create the token-type

String

✅

creations

An array of objects that can define one or multiple token-type details

Array of objects

✅

creations.name

The name of the token-type

String

✅

creations.description

The description of the token-type

String

❌

creations.image

The image URL for the token-type that will be displayed

String

❌

JSON

{
  "secretType": "MATIC",
  "contractAddress": "0xf5b11b4f458cc12a7989a146c5db2e7d500e2241",
  "creations": [
    {
      "name": "My first NFT Token-type",
      "description": "Quantum",
      "image": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png"
    }
  ]
}

Response Body:

📘

  • Save the result.creations.id from the response body. This is the token Creation ID and it's used to track the status of the token-type creation request.

  • The status attribute indicates the token-type creation status.

JSON

{
  "success": true,
  "result": {
    "creations": [
      {
        "id": "45cf858a-cb0d-4e31-b6e1-b3bf4c65d014",
        "status": "PENDING",
        "tokenTypeId": 5,
        "metadata": {
          "name": "My first NFT Token-type",
          "description": "Quantum",
          "image": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
          "imagePreview": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
          "imageThumbnail": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
          "animationUrls": [],
          "attributes": [
            {
              "type": "system",
              "name": "tokenTypeId",
              "value": "5",
              "traitType": "Token Type ID",
              "trait_type": "Token Type ID"
            }
          ],
          "contract": {
            "address": "0xf5b11b4f458cc12a7989a146c5db2e7d500e2241",
            "name": "Test",
            "symbol": "TE",
            "image": "string",
            "imageUrl": "string",
            "image_url": "string",
            "description": "Testing",
            "externalLink": "www.quantum.io",
            "external_link": "www.quantum.io",
            "externalUrl": "www.quantum.io",
            "external_url": "www.quantum.io",
            "media": [],
            "type": "ERC_1155"
          },
          "fungible": false
        }
      }
    ]
  }
}

5. Check the status of token-type

This endpoint is used to check the status of token-type creation. The {creationId} in the path is for tracking the status of token-type creation. It is in the response body of the create token-type endpoint as result.id.

HTTP

GET /api/v2/token-types/creations/{creationId}

Example Request

HTTP

GET /api/v2/token-types/creations/45cf858a-cb0d-4e31-b6e1-b3bf4c65d014

Response Body

📘

In the response body look for the result.status parameter. It can have three possible values:

  • SUCCEEDED

  • PENDING

  • FAILED

JSON

{
  "success": true,
  "result": {
    "id": "45cf858a-cb0d-4e31-b6e1-b3bf4c65d014",
    "status": "SUCCEEDED",
    "transactionHash": "0xd8a7677dadfb308be606746d6fd522f9b3361a6e81c09f41ceabd7abb2593407",
    "tokenTypeId": 5,
    "mints": [],
    "metadata": {
      "name": "My first NFT Token-type",
      "description": "Quantum",
      "image": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
      "imagePreview": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
      "imageThumbnail": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
      "animationUrls": [],
      "attributes": [
        {
          "type": "system",
          "name": "tokenTypeId",
          "value": "5",
          "traitType": "Token Type ID",
          "trait_type": "Token Type ID"
        }
      ],
      "contract": {
        "address": "0xf5b11b4f458cc12a7989a146c5db2e7d500e2241",
        "name": "Test",
        "symbol": "TE",
        "image": "string",
        "imageUrl": "string",
        "image_url": "string",
        "description": "Testing",
        "externalLink": "www.quantum.io",
        "external_link": "www.quantum.io",
        "externalUrl": "www.quantum.io",
        "external_url": "www.quantum.io",
        "media": [],
        "type": "ERC_1155"
      },
      "fungible": false
    }
  }
}

6. Minting an NFT

HTTP

 POST /api/v2/contracts/deployments

Request Body:

Parameter
Param Type
Description
Type
Required

contractAddress

Body

The contract address

String

✅

secretType

Body

The blockchain of the contract

String

✅

tokenTypeId

Body

This is the ID of the token-type. You can get it from the response body when you create a token-type.

String

✅

destinations

Body

The array which includes all the wallet addresses and the number of NFTs to mint per wallet address

Array of objects

✅

destinations.address

Body

The wallet address to mint and send the NFT

String

✅

destinations.amount

Body

The number of NFTs you want to mint and send

Integer

✅

JSON

{
  "contractAddress": "0xa90da02f49880320e4bb237c8ce0d2f4f42bfbd5",
  "secretType": "MATIC",
  "tokenTypeId": "1",
  "destinations": [
    {
      "address": "0x9282fc38931A3a613b8566b3E6a1027e49ABb712",
      "amount": 1
    }
  ]
}

📘

  • Make sure the destinations.address (wallet address) has the same chain as the contract. In this case, it should be a Polygon wallet(MATIC).

  • NOTE: The contractAddress, secretType (blockchain), and the tokenTypeId are defined in the request body.

Response Body:

📘

  • Under the mints array, you can find the id (mintId) for each minted NFT listed with the wallet address. This unique id can be used to track the status of the mint request.

  • The status attribute indicates the on-chain token mint status.

JSON

{
    "success": true,
    "result": {
        "mints": [
            {
                "id": "037d23c9-9163-4e16-894e-338e5b1628fe",
                "status": "PENDING",
                "destination": {
                    "address": "0x9282fc38931A3a613b8566b3E6a1027e49ABb712",
                    "amount": 1
                }
            }
        ],
        "metadata": {
            "name": "My first NFT Token-type",
            "description": "quantum",
            "image": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
            "imagePreview": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
            "imageThumbnail": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
            "animationUrls": [],
            "attributes": [
                {
                    "type": "system",
                    "name": "tokenTypeId",
                    "value": "1",
                    "traitType": "Token Type ID",
                    "trait_type": "Token Type ID"
                }
            ],
            "contract": {
                "address": "0xa90da02f49880320e4bb237c8ce0d2f4f42bfbd5",
                "name": "NFT Collection",
                "symbol": "NFCO",
                "image": "https://techround.co.uk/wp-content/uploads/2022/01/Quantum-logo.png",
                "imageUrl": "https://techround.co.uk/wp-content/uploads/2022/01/Quantum-logo.png",
                "image_url": "https://techround.co.uk/wp-content/uploads/2022/01/Quantum-logo.png",
                "description": "Sample description",
                "externalLink": "www.quantum.io",
                "external_link": "www.quantum.io",
                "externalUrl": "www.quantum.io",
                "external_url": "www.quantum.io",
                "media": [],
                "type": "ERC_1155"
            },
            "fungible": false
        }
    }
}

7. Check the status of NFT mints

This endpoint is used to check the status of NFT mints. The {mintId} in the path is for tracking the status of the NFT mint. It is in the response body of the Mint Fungible or Non-Fungible Tokens endpoint as result.mints.id.

HTTP

GET /api/v2/tokens/mints/{mintId}

Example Request

HTTP

GET /api/v2/tokens/mints/037d23c9-9163-4e16-894e-338e5b1628fe

Response Body

📘

  • You can get the tokenId in the response body.

  • In the response body look for the result.status parameter. It can have three possible values:

    • SUCCEEDED

    • PENDING

    • FAILED

JSON

{
    "success": true,
    "result": {
        "id": "037d23c9-9163-4e16-894e-338e5b1628fe",
        "tokenId": 2,
        "status": "SUCCEEDED",
        "transactionHash": "0xafcf35390cb5dcfde8aad4e14cb15d7bdcb1ba9888430cd6d22bab37bf788183",
        "destination": {
            "address": "0x9282fc38931A3a613b8566b3E6a1027e49ABb712",
            "amount": 1
        },
        "metadata": {
            "name": "My first NFT Token-type",
            "description": "Quantum",
            "image": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
            "imagePreview": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
            "imageThumbnail": "https://storage-qa.quantum.io/applications/1f64ded9-2a05-4824-b682-661023359357/StickFigureHi.png",
            "animationUrls": [],
            "attributes": [
                {
                    "type": "system",
                    "name": "tokenTypeId",
                    "value": "1",
                    "traitType": "Token Type ID",
                    "trait_type": "Token Type ID"
                },
                {
                    "type": "property",
                    "name": "mintNumber",
                    "value": "1",
                    "traitType": "Mint Number",
                    "trait_type": "Mint Number"
                }
            ],
            "contract": {
                "address": "0xa90da02f49880320e4bb237c8ce0d2f4f42bfbd5",
                "name": "NFT Collection",
                "symbol": "NFCO",
                "image": "https://techround.co.uk/wp-content/uploads/2022/01/Quantum-logo.png",
                "imageUrl": "https://techround.co.uk/wp-content/uploads/2022/01/Quantum-logo.png",
                "image_url": "https://techround.co.uk/wp-content/uploads/2022/01/Quantum-logo.png",
                "description": "Sample description",
                "externalLink": "www.quantum.io",
                "external_link": "www.quantum.io",
                "externalUrl": "www.quantum.io",
                "external_url": "www.quantum.io",
                "media": [],
                "type": "ERC_1155"
            },
            "fungible": false
        }
    }
}

View your NFT on testnet

📘


There are several ways to run API calls, but for this guide, you can use the or to execute the different endpoints.

Learn how to and authenticate API calls.

Request Endpoint:

Request Endpoint:

Defining token types helps structure the information such as and .

Request Endpoint:

Request Endpoint:

Request Endpoint:

Request Endpoint:

Learn how to .

Schedule a with our team to explore tailored solutions or dive in and start building right away on our .

API-Reference
Postman
retrieve a bearer token
reference
reference
attributes
animationUrls
reference
reference
reference
reference
view your NFT on sandbox/testnet
demo
portal
Authentication
Creating a Contract
Checking Contract Status
Creating Token-type (NFT template)
Checking Token-type Status
Minting NFT
Checking NFT Mint Status
here
Getting Started with Quantum
Portal
Access Credentials - Developer Portal
Access Credentials - Developer Portal