<p>as @Fermat already answered</p>
<blockquote>
<p>Currently Value is parametrized by a currency symbol and a token name. Here the currency symbol is not arbitrary, it is the hash of the minting policy script. This script determines under which conditions the tokens under this policy can be minted or burned.</p>
</blockquote>
<p>so <strong>NO</strong> you cannot have multiple policy ids for the same token since then we wouldn't know how to properly mint/burn it.</p>
<p>what you could do instead is to associate multiple validators to the policy which is supposed to mint or burn you token or NFT.</p>
<p>as an example say you want to check for <code>validatorA</code> and <code>validatorB</code> to both have signed the transaction (therefore have been executed with success) and <code>validatorC</code> to succeed in order to burn</p>
<p>your minting policy would look like this:</p>
<pre><code>mintingPolicyLogic :: BuiltinData -&gt; ScriptContext -&gt; Bool
mintingPolicyLogic _red ctx =
    if isMinting then
        validatorASucceeded &amp;&amp;
        validatorBSucceeded
    else
        validatorCSucceeded
    where
        validatorSucceded :: ValidatorHash -&gt; Bool
        validatorSucceded valHash = forwardToValidator valHash () ctx

        validatorASucceeded = validatorSucceded &lt;insert validatorA hash here&gt;
        validatorBSucceeded = validatorSucceded &lt;insert validatorB hash here&gt;
        validatorCSucceeded = validatorSucceded &lt;insert validatorC hash here&gt;

        isMinting = case Value.flattenValue (LedgerApi.txInfoMint txInfo) of
            [] -&gt; False
            [( _sym, _tn, amount )] -&gt; amount &gt; 0
            _ -&gt; traceError &quot;multiple mints per tx not allowed&quot;
</code></pre>
<p><a href="https://playground.plutus.iohkdev.io/doc/haddock/plutus-ledger/html/Ledger-Typed-Scripts-MonetaryPolicies.html" rel="nofollow noreferrer">forwardToValidator docs</a></p>
<blockquote>
<p><strong><em>NOTE:</em></strong> the script provided is by no mean production ready, lots of improvements can (and should) be made, the script is here for educational purposes only</p>
</blockquote>

CC BY-SA 4.0
2022-06-22T12:37:24.043Z
Note that a mintingPolicy only uses a redeemer and the context, not a datum.
Fermat
CC BY-SA 4.0
2022-06-22T13:31:14.563Z
@Fermat you're rigth, my bad
Michele Nuzzi
CC BY-SA 4.0
2022-06-22T08:42:29.367Z
2022-06-22T13:30:57.633Z
2022-06-22T13:30:57.633Z
Michele Nuzzi
<p>Currently <code>Value</code> is parametrized by a currency symbol, a tokenname and the amount of tokens of this type<a href="https://playground.plutus.iohkdev.io/doc/haddock/plutus-ledger-api/html/Plutus-V1-Ledger-Value.html#v:flattenValue" rel="nofollow noreferrer">(1)</a>. Here the currency symbol is not arbitrary, it is the hash of the minting policy script. This script determines under which conditions the tokens under this policy can be minted or burned.</p>
<p>To answer your question, it depends. If you want tokens with the same Tokenname and different policies, then yes. But if you want one token with currency symbol <code>x</code> and tokenname <code>y</code> that you can mint via multiple minting policies that both hash to <code>x</code>, then no.</p>
<p>Perhaps you could specify what you want to do with the token? If you just want two condition that both can mint/burn you could always combine two minting policies to get one policy.</p>

CC BY-SA 4.0
2022-06-22T07:15:20.140Z
2022-06-22T08:36:33.653Z
2022-06-22T08:36:33.653Z
Fermat
<p>We want to associate multiple policy ids with the same token/nft. Is this possible?</p>

<policy>
Multiple policies associated with the same token/nft
# Multiple policies associated with the same token/nft

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

We want to associate multiple policy ids with the same token/nft. Is this possible?

**Tags:** policy

---

## 2 answers

### Answer by username_1 on 2022-06-22. Score: 1

as @Fermat already answered

Currently Value is parametrized by a currency symbol and a token name. Here the currency symbol is not arbitrary, it is the hash of the minting policy script. This script determines under which conditions the tokens under this policy can be minted or burned.

so NO you cannot have multiple policy ids for the same token since then we wouldn't know how to properly mint/burn it.
what you could do instead is to associate multiple validators to the policy which is supposed to mint or burn you token or NFT.
as an example say you want to check for validatorA and validatorB to both have signed the transaction (therefore have been executed with success) and validatorC to succeed in order to burn
your minting policy would look like this:
mintingPolicyLogic :: BuiltinData -> ScriptContext -> Bool
mintingPolicyLogic _red ctx =
    if isMinting then
        validatorASucceeded &&
        validatorBSucceeded
    else
        validatorCSucceeded
    where
        validatorSucceded :: ValidatorHash -> Bool
        validatorSucceded valHash = forwardToValidator valHash () ctx

        validatorASucceeded = validatorSucceded 
        validatorBSucceeded = validatorSucceded 
        validatorCSucceeded = validatorSucceded 

        isMinting = case Value.flattenValue (LedgerApi.txInfoMint txInfo) of
            [] -> False
            [( _sym, _tn, amount )] -> amount > 0
            _ -> traceError "multiple mints per tx not allowed"

forwardToValidator docs

NOTE: the script provided is by no mean production ready, lots of improvements can (and should) be made, the script is here for educational purposes only

> **Comments:**
> **username_2**: Note that a mintingPolicy only uses a redeemer and the context, not a datum.  
> **username_1**: @Fermat you're rigth, my bad  

---

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

Currently `Value` is parametrized by a currency symbol, a tokenname and the amount of tokens of this type[(1)](https://playground.plutus.iohkdev.io/doc/haddock/plutus-ledger-api/html/Plutus-V1-Ledger-Value.html#v:flattenValue). Here the currency symbol is not arbitrary, it is the hash of the minting policy script. This script determines under which conditions the tokens under this policy can be minted or burned.

To answer your question, it depends. If you want tokens with the same Tokenname and different policies, then yes. But if you want one token with currency symbol `x` and tokenname `y` that you can mint via multiple minting policies that both hash to `x`, then no.

Perhaps you could specify what you want to do with the token? If you just want two condition that both can mint/burn you could always combine two minting policies to get one policy.


---

