<p>The reason you have to provide a public key hash to mint an NFT is to verify that any future NFTs minted under the same policy are originating from the same private key.  The public key is a cryptographic identifier that only the developer/creator with access to the private key is able to reliably generate.  See <a href="https://en.wikipedia.org/wiki/Public-key_cryptography" rel="nofollow noreferrer">Wikipedia's entry on Public/Asymmetric Key Cryptography</a> for a good primer.</p>
<p>Deeper dive: &quot;NFTs&quot; are created using <a href="https://cardano.stackexchange.com/questions/7951/how-to-get-started-with-cardano-native-script">Cardano Native Scripts</a> that declare: &quot;this was minted by a specific secret key, [optionally before a specific expiration time], belonging to the NFT creator&quot;.  When you generate your policy ID for a Cardano NFT, that policy ID is actually hashed based off of the public key you are seeing in that minting script.  So long as the Cardano nodes agree that &quot;this is the way we mint NFTs&quot;, no one will be able to create a new NFT under the creator's specific policy ID without the private key corresponding to that public key hash you are seeing.</p>

CC BY-SA 4.0
2022-06-16T18:12:31.667Z
2022-06-16T18:12:31.667Z
iOddestHumanDad
<p>The forgeContract is responsible for minting NFT's and in the arguments we have a token name and amount, why do we have a public hash key for minting NFT?</p>

CC BY-SA 4.0
2022-06-13T15:16:31.063Z
Hello, I have been asked to review this question and have found that most people would not know which contract your on about. So can I ask you to link to the contract in the question. Thank you
KryptoKing
<smart-contract>
Why does forgeContract receives a PubKeyHash?
# Why does forgeContract receives a PubKeyHash?

(Asked by: username_0 on 2022-06-13)

The forgeContract is responsible for minting NFT's and in the arguments we have a token name and amount, why do we have a public hash key for minting NFT?

**Tags:** smart-contract
> **Comments:**
> **username_1**: Hello, I have been asked to review this question and have found that most people would not know which contract your on about. So can I ask you to link to the contract in the question. Thank you  

---

## 1 answers

### Answer by username_2 on 2022-06-16. Score: 0

The reason you have to provide a public key hash to mint an NFT is to verify that any future NFTs minted under the same policy are originating from the same private key. The public key is a cryptographic identifier that only the developer/creator with access to the private key is able to reliably generate. See [Wikipedia's entry on Public/Asymmetric Key Cryptography](https://en.wikipedia.org/wiki/Public-key_cryptography) for a good primer.

Deeper dive: "NFTs" are created using [Cardano Native Scripts](https://cardano.stackexchange.com/questions/7951/how-to-get-started-with-cardano-native-script) that declare: "this was minted by a specific secret key, [optionally before a specific expiration time], belonging to the NFT creator". When you generate your policy ID for a Cardano NFT, that policy ID is actually hashed based off of the public key you are seeing in that minting script. So long as the Cardano nodes agree that "this is the way we mint NFTs", no one will be able to create a new NFT under the creator's specific policy ID without the private key corresponding to that public key hash you are seeing.


---

