🔃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

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.

NFT Metadata Object:

Attribute Object:

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