<p>There are at least 2 errors in the message you showed, we'll go over them</p>
<h2><code>MissingRedeemers</code></h2>
<p>This is the very first; you should always look for the errors from the first to the last.</p>
<p>In particular the error comes with wome additional infos: &quot;<code>(MissingRedeemers [(Minting (PolicyID {policyID = ScriptHash \&quot;e6584023b2579776600aaefc75c081ef027c5860a8dc7504b7b4d18c\&quot;}),ScriptHash \&quot;e6584023b2579776600aaefc75c081ef027c5860a8dc7504b7b4d18c\&quot;)]))</code>&quot;
which indicates the hash of the minting script that is missing the redeemer.</p>
<p>You need to specify your redeemer even if it is not used in the contract.</p>
<p>You probably want to specify it in the &quot;mintAssets&quot; call.</p>
<blockquote>
<p><strong>NOTE</strong> there is a third error <code>(CollectErrors [NoRedeemer ...</code> which is realted to this one, the reason for this should be the same.</p>
</blockquote>
<h2><code>PPViewHashesDontMatch</code></h2>
<p>This is an error raised only during transaction submission.
In particular, every transactions that uses a plutus script needs to include the current protocol parameters cost models.</p>
<p>This should be done automatically by lucid to my uinderstanding, so you likely want to make sure you are using the correct network ( if you are submiting in preview testnet you need to build the transaction for preview testnet, not for some other network (eg. mainnet))</p>

CC BY-SA 4.0
2023-09-08T01:57:41.053Z
Heyyyyyy Michele!!!! ```Adding Data.void()``` in the ```.mintAssets``` solved the problem. Thankssss alot!
jycappucino
CC BY-SA 4.0
2023-09-07T07:56:06.027Z
2023-09-07T07:56:06.027Z
Michele Nuzzi
<p>I hope I can get help from someone on here. I built a minting transaction on preprod using Lucid that uses a validator that always pass, and I am stuck with this error:
<code>error: Uncaught (in promise) Error: &quot;transaction submit error ShelleyTxValidationError ShelleyBasedEraBabbage (ApplyTxError [UtxowFailure (FromAlonzoUtxowFail (MissingRedeemers [(Minting (PolicyID {policyID = ScriptHash \&quot;e6584023b2579776600aaefc75c081ef027c5860a8dc7504b7b4d18c\&quot;}),ScriptHash \&quot;e6584023b2579776600aaefc75c081ef027c5860a8dc7504b7b4d18c\&quot;)])),UtxowFailure (FromAlonzoUtxowFail (PPViewHashesDontMatch SNothing (SJust (SafeHash \&quot;75be5e37c2a7f07027713f0cf852aabedb84498d31182e96a4d2390dc2817d3f\&quot;)))),UtxowFailure (UtxoFailure (FromAlonzoUtxoFail (UtxosFailure (CollectErrors [NoRedeemer (Minting (PolicyID {policyID = ScriptHash \&quot;e6584023b2579776600aaefc75c081ef027c5860a8dc7504b7b4d18c\&quot;}))]))))])&quot;</code></p>
<p>here is the built transaction:</p>
<pre><code>  .newTx()
  .collectFrom([utxo], Data.void())
  .attachMintingPolicy(into)
  .attachMetadata(&quot;721&quot;, metadata)
  .mintAssets({ [assetName]: BigInt(1) })
  .payToContract(
      contractAddress,
      { inline: Data.void() },
      { lovelace }
  )
  .complete();

const txSigned = await tx.sign().complete();

const txHash = await txSigned.submit();
</code></pre>
<p>After a thorough testing, I found that the problem is in <code>.attachMintingPolicy (into)</code> where <code>into</code> is the validator. Here is the validator definition:</p>
<pre><code>  const validator_ = JSON.parse(await Deno.readTextFile(&quot;plutus.json&quot;)).validators[0];
  return {
    type: &quot;PlutusV2&quot;,
    script: toHex(cbor.encode(fromHex(validator_.compiledCode))),
    };
  }
const validator = await readValidator();

corresponding aiken code:
validator {
  fn store(datum: Data, context: Data) -&gt; Bool {
    1 == 1
  }
}
</code></pre>
<p>Does anybody know what's going on? Thanks in advance.</p>

<transaction><minting><validator><error><lucid>
Error submitting a transaction (Error: PPViewHashesDontMatch)
# Error submitting a transaction (Error: PPViewHashesDontMatch)

(Asked by: username_0 on 2023-09-07)

I hope I can get help from someone on here. I built a minting transaction on preprod using Lucid that uses a validator that always pass, and I am stuck with this error:
error: Uncaught (in promise) Error: "transaction submit error ShelleyTxValidationError ShelleyBasedEraBabbage (ApplyTxError [UtxowFailure (FromAlonzoUtxowFail (MissingRedeemers [(Minting (PolicyID {policyID = ScriptHash \"e6584023b2579776600aaefc75c081ef027c5860a8dc7504b7b4d18c\"}),ScriptHash \"e6584023b2579776600aaefc75c081ef027c5860a8dc7504b7b4d18c\")])),UtxowFailure (FromAlonzoUtxowFail (PPViewHashesDontMatch SNothing (SJust (SafeHash \"75be5e37c2a7f07027713f0cf852aabedb84498d31182e96a4d2390dc2817d3f\")))),UtxowFailure (UtxoFailure (FromAlonzoUtxoFail (UtxosFailure (CollectErrors [NoRedeemer (Minting (PolicyID {policyID = ScriptHash \"e6584023b2579776600aaefc75c081ef027c5860a8dc7504b7b4d18c\"}))]))))])"
here is the built transaction:
  .newTx()
  .collectFrom([utxo], Data.void())
  .attachMintingPolicy(into)
  .attachMetadata("721", metadata)
  .mintAssets({ [assetName]: BigInt(1) })
  .payToContract(
      contractAddress,
      { inline: Data.void() },
      { lovelace }
  )
  .complete();

const txSigned = await tx.sign().complete();

const txHash = await txSigned.submit();

After a thorough testing, I found that the problem is in .attachMintingPolicy (into) where into is the validator. Here is the validator definition:
  const validator_ = JSON.parse(await Deno.readTextFile("plutus.json")).validators[0];
  return {
    type: "PlutusV2",
    script: toHex(cbor.encode(fromHex(validator_.compiledCode))),
    };
  }
const validator = await readValidator();

corresponding aiken code:
validator {
  fn store(datum: Data, context: Data) -> Bool {
    1 == 1
  }
}

Does anybody know what's going on? Thanks in advance.

**Tags:** transaction, minting, validator, error, lucid

---

## 1 answers

### Answer by username_1 on 2023-09-07. Score: 1

There are at least 2 errors in the message you showed, we'll go over them

## `MissingRedeemers`

This is the very first; you should always look for the errors from the first to the last.

In particular the error comes with wome additional infos: "`(MissingRedeemers [(Minting (PolicyID {policyID = ScriptHash \"e6584023b2579776600aaefc75c081ef027c5860a8dc7504b7b4d18c\"}),ScriptHash \"e6584023b2579776600aaefc75c081ef027c5860a8dc7504b7b4d18c\")]))`"
which indicates the hash of the minting script that is missing the redeemer.

You need to specify your redeemer even if it is not used in the contract.

You probably want to specify it in the "mintAssets" call.

> **NOTE** there is a third error `(CollectErrors [NoRedeemer ...` which is realted to this one, the reason for this should be the same.

## `PPViewHashesDontMatch`

This is an error raised only during transaction submission.
In particular, every transactions that uses a plutus script needs to include the current protocol parameters cost models.

This should be done automatically by lucid to my uinderstanding, so you likely want to make sure you are using the correct network ( if you are submiting in preview testnet you need to build the transaction for preview testnet, not for some other network (eg. mainnet))

> **Comments:**
> **username_0**: Heyyyyyy Michele!!!! ```Adding Data.void()``` in the ```.mintAssets``` solved the problem. Thankssss alot!  

---

