# Mint Validator

{% hint style="warning" %}
**Note**: This guide is currently in development and will be completed soon
{% endhint %}

## Mint Validator

### Overview

Mint validators (also called minting policies) control the creation and destruction of native tokens on Cardano. They define the rules under which tokens can be minted (created) or burned (destroyed), acting as a programmatic authority over asset supply management.

### Real-world Use Cases

* **NFT Collections**: Regulate minting of unique, non-fungible assets with provable scarcity
* **Fungible Tokens**: Create tokens with controlled supply mechanisms
* **Token Burning**: Implement redemption or destruction policies
* **Evolving NFTs**: Enable assets that can change state or properties over time
* **Multi-stage Releases**: Control phased distribution of limited assets

### Required Fields for Token Minting

{% hint style="info" %}
**For mint validators, you need two key components in your transaction:**

1. **mint**: An array defining what tokens to mint or burn
2. **scriptInteractions**: Specifies the validator hash, purpose, and redeemer

The policy ID in the mint array must match the validator hash in the scriptInteractions:

```json
{
  "mint": [{ 
    "type": "plutus",
    "policyId": "policy_id_here",
    "assetName": "TOKEN_NAME",
    "quantity": 1,
    "metadata": { ... } // Optional token metadata
  }],
  "scriptInteractions": [{
    "hash": "policy_id_here", // Must match policyId above
    "purpose": "mint",
    "redeemer": { ... }
  }]
}
```

**Note**: For native scripts (non-Plutus policies), use `type: "simple"` in the mint array and omit the scriptInteractions entry.
{% endhint %}

{% hint style="warning" %}
**PREREQUISITE: DEPLOYED SMART CONTRACT**

Before you can interact with any validator, you must have a compiled and deployed smart contract blueprint. The validator hash used in these examples comes from your deployed blueprint.

Refer to the [Blueprint Management](/guides/smart-contract/blueprint-management.md) guide for details on how to deploy your smart contract blueprint.
{% endhint %}

### Mint Validator API Interaction Example

Use the below examples to build transactions that interact with mint validators.

If you are unfamiliar with the Anvil API transaction builder, review the [Transaction Overview](/guides/transaction.md) guide first.

#### 1. Minting NFTs (CIP-25 Standard)

#### 2. Minting Fungible Tokens (CIP-68 Standard)

### See Examples

{% content-ref url="/pages/sIDc3mGeCPs5eUafjqfo" %}
[Mint with Smart Contract](/guides/smart-contract/mint-smart-contract.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dev.ada-anvil.io/guides/smart-contract/validators/mint-validator.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
