🔃Evolve NFTs

Generate multiple NFTs for an existing SmartContract.

Endpoint

POST /v1/nft/generate-nft/:smartContractId?evolveNFT=true

Authentication

API key is required in the headers.

Path Parameters

ParameterTypeDescription

smartContractId

string

The unique identifier of the SmartContract.

Request Body

The request body should be an array of objects, each containing the following parameters: Note that at least one of those fields userWallet or email should be present in the request.

ParameterTypeDescriptionRequired

metadata

object[]

An array of NFT metadata objects containing image, name, description, and attributes.

NFT Metadata Object:

ParameterTypeDescriptionRequired

image

string

The image URL for the NFT.

name

string

The name of the NFT.

idToEnvolve

string

Id (0,1,2...) Of NFT

description

string

The description of the NFT.

attributes

object[]

An array of attribute objects containing key-value pairs describing the NFT.

Attribute Object:

ParameterTypeDescription

key

string

The key or name of the attribute.

value

string

The value or description of the attribute.

Example

RAW

POST /v1/nft/generate-nft/12345?evolveNFT=true

Headers:
API_KEY: YOUR_API_KEY
Content-Type: application/json

Body:
[
  {
    "metadata": [
      {
        "image": "<SOME_IMAGE URL>", // imageName (if use upload-image)
        "name": "First NFT evolved",
        "description": "This is the first NFT evolved",
        "idToEvolve" : 0,
        "attributes": [
          {
            "key": "Characteristic evolved",
            "value": "Characteristic Value evolved"
          },
          {
            "key": "Characteristic 2",
            "value": "Characteristic Value 2"
          }
        ]
      },
      {
        "image": "<SOME_IMAGE URL>",
        "name": "Second NFT evolved",
        "idToEvolve" : 1,
        "description": "This is the second NFT evolved",
        "attributes": [
          {
            "key": "Characteristic evolved ",
            "value": "Characteristic Value 1"
          },
          {
            "key": "Characteristic 2",
            "value": "Characteristic Value 2"
          }
        ]
      }
    ]
  }
]

Response

  • result: Response data

    • totalToMint: Total NFTs to mint at this moment

    • addresses: NFT sending address

    • amounts: Number of NFTs to mint for each address

    • uris: IPFS urls for each NFT

    • ids: ids NFT in Backend

    • smartContractAddress: Smart Contract Address

    • blockchain: Blockchain

    • blockchainId: Decimal chain id

  • error: Error data if request fail

Status: 200 OK
{
    "result": {
        "totalToMint": 6,
        "addresses": [
            "0x11112222333344445555666677778888",
            "0x88887777666655554444333322221111"
        ],
        "amounts": [
            1,
            1
        ],
        "uris": [
            "XXXX",
            "YYYY",
        ],
        "ids": [
            0,
            1,
        ],
        "_ids": [
            "660e02406878e6ef809b9667",
            "660e02406878e6ef809b9668"
        ],
        "smartContractAddress": "Ox...",
        "smartContractId": "<smartContract_id>",
        "typeBlockchain": 4,
        "blockchainId": "80001",
        "nftsCreated": [
            {
                "smartContractId": "660d6e384c23124d6a0653ad",
                "ipfsUrl": "QmVmSzvth73L4xeYS7CZXSusWyeUTRsPPHxDLioY9pm3JF",
                "path": "6dcc04e9-61a0-4e04-8e0a-b579c8e7462b.png",
                "json": "6fb00a0c04a05ed646438a38ef7c83c1.json",
                "idNFT": 0,
                "name": "NFT Evolved",
                "description": "Tests",
                "ipfsImage": "ipfs://QmU5YHNmQn3dNsrGXKMfCBWpNbY63dJUvk9RWu3XNkMtmd",
                "wallet": "020361b86e8e6cbd50a9d2589b9d8de43565f32bfa4439ef41cd78a9054caed63979",
                "contentType": "image/png",
                "status": 0,
                "type": 1,
                "isEvolution": true,
                "attributes": [
                    {
                        "key": "Version",
                        "value": "2.0"
                    },
                    {
                        "key": "Test",
                        "value": "1"
                    }
                ],
                "includeMint": true,
                "paid": false,
                "_id": "660e02406878e6ef809b9667",
                "__v": 0,
                "createdAt": "2024-04-04T01:28:32.486Z",
                "updatedAt": "2024-04-04T01:28:32.486Z"
            },
            {
                "smartContractId": "660d6e384c23124d6a0653ad",
                "ipfsUrl": "QmVmSzvth73L4xeYS7CZXSusWyeUTRsPPHxDLioY9pm3JF",
                "path": "6dcc04e9-61a0-4e04-8e0a-b579c8e7462b.png",
                "json": "6fb00a0c04a05ed646438a38ef7c83c1.json",
                "idNFT": 1,
                "name": "NFT Evolved 2",
                "description": "Tests 2",
                "ipfsImage": "ipfs://QmU5YHNmQn3dNsrGXKMfCBWpNbY63dJUvk9RWu3XNkMtmd",
                "wallet": "020361b86e8e6cbd50a9d2589b9d8de43565f32bfa4439ef41cd78a9054caed63979",
                "contentType": "image/png",
                "status": 0,
                "type": 1,
                "isEvolution": true,
                "attributes": [
                    {
                        "key": "Version",
                        "value": "2.0"
                    },
                    {
                        "key": "Test",
                        "value": "2"
                    }
                ],
                "includeMint": true,
                "paid": false,
                "_id": "660e02406878e6ef809b9667",
                "__v": 0,
                "createdAt": "2024-04-04T01:28:32.486Z",
                "updatedAt": "2024-04-04T01:28:32.486Z"
            }
        ]
    },
    "error": null
}

CURL

curl --location --request POST 'https://api-testnet.minteando.me/v1/nft/generate-nft/62e6cb8cece6b853fb6db8b4' \
--header 'API_KEY: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data-raw '[
  {
    "metadata": [
      {
        "image": "<SOME_IMAGE URL>", // imageName (if use upload-image)
        "name": "First NFT evolved",
        "description": "This is the first NFT evolved",
        "idToEvolve" : 0,
        "attributes": [
          {
            "key": "Characteristic evolved",
            "value": "Characteristic Value evolved"
          },
          {
            "key": "Characteristic 2",
            "value": "Characteristic Value 2"
          }
        ]
      },
      {
        "image": "<SOME_IMAGE URL>",
        "name": "Second NFT evolved",
        "idToEvolve" : 1,
        "description": "This is the second NFT evolved",
        "attributes": [
          {
            "key": "Characteristic evolved ",
            "value": "Characteristic Value 1"
          },
          {
            "key": "Characteristic 2",
            "value": "Characteristic Value 2"
          }
        ]
      }
    ]
  }
]'

Example Typescript (axios)

import axios, { AxiosResponse } from 'axios';

interface Attribute {
  key: string;
  value: string;
}

interface NFTMetadata {
  image?: string;
  name: string;
  description: string;
  attributes?: Attribute[];
}

interface NFTGenerationRequest {
  userWallet?: string;
  email?: string;
  metadata: NFTMetadata[];
}

interface GeneratedNFT {
  tokenId: string;
  userWallet: string;
}

const API_KEY = 'YOUR_API_KEY';
const smartContractId = '12345';
const endpoint = `https://api-testnet.minteando.me/v1/nft/generate-nft/${smartContractId}`;

// Set request headers
const headers = {
  API_KEY,
  'Content-Type': 'application/json',
};

// Request body
const requestBody: NFTGenerationRequest[] = [
  {
    metadata: [
      {
        image: '<SOME_IMAGE>',
        name: 'First NFT evolved',
        idToEvolve : 1,
        description: 'This is the first NFT evolved',
        attributes: [
          { key: 'Characteristic 1', value: 'Characteristic Value 1' },
          { key: 'Characteristic 2', value: 'Characteristic Value 2' },
        ],
      },
      {
        image: '<SOME_IMAGE>',
        name: 'Second NFT evolved',
        description: 'This is the second NFT evolved',
        idToEvolve : 1,
        attributes: [
          { key: 'Characteristic 1', value: 'Characteristic Value 1' },
          { key: 'Characteristic 2', value: 'Characteristic Value 2' },
        ],
      },
    ],
  },
];

// Make the request
axios
  .post(endpoint, requestBody, { headers })
  .then((response: AxiosResponse) => {
    const responseData = response.data;
    // Process the response data
    console.log(responseData);
  })
  .catch((error) => {
    console.error('Error:', error.message);
  });

Example PHP

<?php

$apiKey = 'YOUR_API_KEY';
$smartContractId = '12345';
$endpoint = "https://api-testnet.minteando.me/v1/nft/generate-nft/{$smartContractId}";

// Request data
$requestData = [
    [
        "userWallet" => "0x11112222333344445555666677778888",
        "metadata" => [
            [
                "image" => "<SOME_IMAGE>",
                "name" => "First NFT",
                "description" => "This is the first NFT",
                "attributes" => [
                    [
                        "key" => "Characteristic 1",
                        "value" => "Characteristic Value 1"
                    ],
                    [
                        "key" => "Characteristic 2",
                        "value" => "Characteristic Value 2"
                    ]
                ]
            ]
        ]
    ],
    [
        "userWallet" => "0x88887777666655554444333322221111",
        "metadata" => [
            [
                "image" => "<SOME_IMAGE>",
                "name" => "Second NFT",
                "description" => "This is the second NFT",
                "attributes" => [
                    [
                        "key" => "Characteristic 1",
                        "value" => "Characteristic Value 1"
                    ],
                    [
                        "key" => "Characteristic 2",
                        "value" => "Characteristic Value 2"
                    ]
                ]
            ]
        ]
    ]
];

// Create request headers
$headers = [
    'API_KEY: ' . $apiKey,
    'Content-Type: application/json'
];

// Initialize cURL
$ch = curl_init();

// Set cURL options
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Execute the request
$response = curl_exec($ch);

// Check for errors
if (curl_errno($ch)) {
    echo 'Error: ' . curl_error($ch);
} else {
    // Process the response
    $responseData = json_decode($response, true);
    // Do something with the response data
    var_dump($responseData);
}

// Close cURL
curl_close($ch);
?>

Last updated