Let's say, there's manufacturer that produces luxury watches, and he uses Cardano NFTs to track their authenticity. He embeds unique serial number of a watch into metadata of NFT. One watch - one NFT, that is.

But a bad actor could:

  • buy the simplest but real watch along with an NFT from the manufacture
  • create a replica of the most expensive watch of the manufacturer
  • change the metadata of that NFT -- the serial number and photo of a watch, such that metadata would describe a replica
  • sell the replica along with the updated NFT which now embeds metadata which describes the expensive replica

What prevents this from being possible?

2 Answers 2


The uniqueness of an NFT comes from its minting policy, not the metadata. If you create a script that can only mint one token, then you know any token with that address as its currency symbol is unique, and thus non-fungible.

One possible solution to your problem is a smart contract that holds the proof-of-ownership NFT for you. When the watch maker manufactures a watch, they generate an NFT and engrave the currency symbol on that watch. They then add that NFT to the contract with your address as the owner datum. If you ever sell the watch, you can use the contract to change the "owner" datum to the new owner.

  • engrave the currency symbol on that watch. --> what currency symbol? There may be thousands of watches, and there're only a dozen or two currency symbols in the world.
    – valik402
    Jan 21, 2022 at 18:23
  • Each token in Cardano has a currency symbol and a token name. The currency symbol is always the minting policy address for that token. For an NFT, that can only exist for a single token. Jan 21, 2022 at 18:37
  • 1
    Also on-chain metadata can not be changed Jan 21, 2022 at 19:01
  • @AliciaBasilio on-chain metadata can not be changed but data presented by comunity tools respect NFT metadata standard which will show updated metadata, but only in case minting policy is unlocked. If minting policy is locked and can't be used any more than users have a guarantee metadata won't change (as described in linked nft standard above)
    – akegalj
    Sep 15, 2022 at 18:08

@Mitchell Turner is right.

I want to add this. In Cardano you can mint NFTs using:

  • Native scripts: using this option you're the owner of the policy keys (files) to mint a NFT with that policy Id. Unless your keys are stolen, then nobody else could use them to mint a NFT using the same policy Id. That means, nobody can update the metadata of your NFTs.

  • Plutus scripts: using this option you can create any kind of validation in the minting policy, i.e. allowing to mint only from certain addresses. Although, so far (as I know) it's not possible to attach metadata to your NFTs using Plutus scripts, but you can create NFTs: currency symbols + token name

Regarding to these terms currency symbol, token name, policy id and asset name, please take a look on this: What are the differences between policyId & currencySymbol and assetName & tokenName?

  • I think you can just attach metadata and a script using the cli which allows for minting "true" NFTs that are based on unique UTxO consumption (no timelocks). That way you can use plutus scripts + attach metadata.
    – Will
    Apr 8, 2022 at 10:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.