Using ICME's API to
Mint NFTs

ICME's NFT minting engine is now available via API. This means that you can mint and store NFTs entirely on chain from your own app simply by sending a few pieces of data.

Just add a "mint as NFT" button to your app and you're ready to go. ICME enables users to mint a wide variety of file types such as image, video, audio, and document files.

Upload File

The first step is to send data to ICME to upload your file. Sending data to ICME from your own app takes the form of POST calls using the Form-data Body Type.

The parameter values for uploading are as follows:

  • action: uploadAsset
  • apiKey: your API key
  • canisterId: the ICME storage canister ID
  • file: the actual file you want to mint

Once a file is uploaded, ICME will return a File ID.

Mint On-Chain NFT

After uploading, the next step is to send data to ICME to mint the file as an NFT that is stored on chain.

The parameter values for minting a file on chain are as follows:

  • action: mintNFT
  • apiKey: the same API key from the previous step
  • nftData: the File ID returned from the previous step
  • bucketCanisterId: the storage canister ID used in the previous step
  • canisterId: your specific minting canister ID
  • price, royalties, name, and description: the amounts and text of your choice
  • nftDataType: the type of file your are minting (image, audio, video, or PDF )
  • is_private and autoAcceptBuy: true or false depending on your choices

Once a file is minted as an NFT, ICME will return a count for NFTs in the canister.

You can view an example on-chain NFT here with its associated File ID, storage and minting canister IDs, and Token ID in the URL.

These steps can easily be combined so your users have a seamless "one-click" experience. ICME's API also enables bulk minting of NFT files.

Please get in touch with us to get started using ICME's API.

About The Author

Houman Shadab is a cofounder of ICME