NFTs creation with metadata

Hi! How are you?

I’ve been reading a lot for the last three weeks and I managed to create a token on the testnet network. I read a lot of proposals for metadata, specially with images. I understand that the chosen one was something like this:

{
  "721": {
    "<policy>": {
      "nft0": {
        "id": 0,
        "name": "<nft-name>",
        "image": "<link-to-image>",
      }
    }
  }
}

So, question one, would be. Am I correct?
Question two would be, if I extend this to something like:

{
  "721": {
    "<policy>": {
      "nft0": {
        "id": 0,
        "name": "<nft-name>",
        "image": "<link-to-image>",
      },

    "<policy>": {
      "nft0": {
        "id": 0,
        "name": "<nft-name>",
        "image": "<link-to-image>",
      }
    }
  }
}

Is this supposed to mint more than one nft? I don’t get that, I think I should pass a parameter to cardano-cli to let it know I want to mint more than one nft and not just one with all that metadata together, right?

Thank you very much in advance.

1 Like

Re #1: About 60% of the NFTs minted so far have the nested 721 . . . policy . . . nft pattern in your example, and 92% of those contain name and image, but only 32% of those also contain id. Tokens containing minting metadata like this should render well in pool.pm.

There is no guarantee about what an official metadata standard will be like, but this pseudo-standard seems pretty influential. (I recently minted four batches of 20 NTFs in this way, but I left open the before-slot far enough into the future so I could re-mint the NFTs when there is official metadata standard.)

Re #2: Yes, the minting arguments in cardano-cli do the actual minting, and you can mint multiple tokens at once: the pattern for --tx-out is address+lovelace+1 policy.nft0+1 policy.nft1+... and for --mint is 1 policy.nft0+1 policy.nft1+.... Sites like pool.pm will use the asset IDs for each minted token to look up the appropriate metadata for that particular token in the minting transaction.

BTW, there is a limit of 16 kB of metadata per transaction, so around 50 NTFs can typically be minted per transaction if one’s using metadata like this.

2 Likes

For a batch of 20 NFTs (2x10) what amount do you need to enter? I am getting OutputTooSmall. I enter 1.5ADA for the transaction.

1 Like

Here are the formulas to calculate min-ADA, and there are some examples at the end.

For reference, I recently minted a batch of 14 NFTs, with pretty heavy metadata, and it cost ~ 0.42 ADA in fees and required that I send ~ 4 ADA along with the NFTs to the (intra-wallet) output.

4 Likes

Thank you so much! It was exactly what I was looking for.

I managed to mint all my batches.

3 Likes

Any idea how the 721 top-level integer key came about? Without further context, it seems so arbitrary.

721 is the number for NFT standard in Ethereum. I think, since there is no standard yet in Cardano, devs are referencing 721:

1 Like