Zelus Labs API
  • Welcome!
  • Features
  • Quick Start
  • Reference
    • OpenAPI
    • Account API
      • Account Status
      • Account Contracts
    • Wallet API
      • Wallet Create
      • Wallet Balance
      • Wallet NFTs
    • NFT API
      • Minting an NFT
      • Get NFT metadata
Powered by GitBook
On this page
  • Endpoint Details
  • Examples

Was this helpful?

  1. Reference
  2. NFT API

Minting an NFT

PreviousNFT APINextGet NFT metadata

Last updated 1 year ago

Was this helpful?

Use this endpoint to mint an NFT to an existing wallet, identified by one of the following parameters:

  • wallet address

  • wallet ID

  • email address

  • phone number

Make sure to supply a contract ID for a contract that your account has permission to mint on. Need help getting set up?

Endpoint Details

Description
Data

API Name

HTTP Method

POST

URL

/v1/nft/mint

Headers

Key
Value

Content-Type

application/json

x-api-key

API_KEY

Query Parameters

Parameter
Type
Description

contractId

string

Identifier for the contract, formatted as contract_<UUID>

nftTokenId

string

Identifier for the NFT. (required)

quantity

number, optional

Number of NFTs to mint.

User can be identified by one of the parameter:

Parameter
Type
Description

walletAddress

string, optional

Address

walletId

string, optional

Wallet ID (wallet_UUID)

email

string, optional

Wallet email

phone

string, optional

Wallet phone, format: "+12223334444"

Payload Example:

{
  "contractId": "contract_6635e90e-31f0-11ee-be56-0242ac120002",
  "nftTokenId": "123456",
  "quantity": 2,
  "walletId": "wallet_43fba5e9-e2ae-4417-a198-16c646c7c9f1"
}

Successful Response

{
  "result": {
    "status": "pending",
    "id": "wallet_43fba5e9-e2ae-4417-a198-16c646c7c9f1"
  }
}

Error Response

{
  "error": {
    "code": 400,
    "message": "Error message"
  }
}

Error Messages

  • Validation error:

    • { "code: 400, "message": "Validation error: \"email\" with value \"...\" fails to match the Email pattern" }

  • More than one user identifier:

    • { "code": 400, "message": "Validation error: \"value\" failed custom validation because More than one wallet identifier is defined in the request." }

  • Contract not assigned:

    • { "code": 400, "message": "Contract not found" }

  • Unauthorized API Key:

    • { "code": 400, "message": "Invalid API key" }

  • Wallet not found:

    • { "code": 400, "message": "Wallet not found" }

Examples

curl -X POST "https://sandbox.api.labs.zelus.io/v1/nft/mint" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "contractId": "contract_6635e90e-31f0-11ee-be56-0242ac120002",
  "nftTokenId": "1",
  "quantity": 1,
  "walletId": "wallet_43fba5e9-e2ae-4417-a198-16c646c7c9f1"
}'
import requests

url = "https://sandbox.api.labs.zelus.io/v1/nft/mint"
headers = {
    "x-api-key": "YOUR_API_KEY",
    "Content-Type": "application/json"
}
data = {
    "contractId": "contract_6635e90e-31f0-11ee-be56-0242ac120002",
    "nftTokenId": "2",
    "quantity": 1,
    "walletId": "wallet_43fba5e9-e2ae-4417-a198-16c646c7c9f1"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const axios = require('axios');

const url = "https://sandbox.api.labs.zelus.io/v1/nft/mint";
const headers = {
    "x-api-key": "YOUR_API_KEY",
    "Content-Type": "application/json"
};
const data = {
    contractId: "contract_6635e90e-31f0-11ee-be56-0242ac120002",
    nftTokenId: "3",
    quantity: 1,
    walletId: "wallet_43fba5e9-e2ae-4417-a198-16c646c7c9f1"
};

axios.post(url, data, { headers: headers })
    .then(response => console.log(response.data))
    .catch(error => console.error(error));

Reach out to us
postNftMint