# Mint MPT tokens

Issue new tokens to a specific holder address.

## How minting works

Minting uses the standard `Payment` transaction with the issuer as the source. When an issuer sends MPT tokens to a holder, new tokens are created (minted).

Unlike traditional minting operations, MPT minting uses the `Payment` transaction type. When the issuer sends tokens, the supply increases automatically.

## Prerequisites

- You are the issuer of the MPT
- The destination holder has authorized the MPT (or `lsfMPTRequireAuth` is not set)
- You have sufficient XRP for transaction fees


## Mint tokens

To mint tokens to a holder, submit a payment from the issuer account:


```json
{
  "payload": {
    "id": "{{intent_id}}",
    "accountId": "{{issuer_account_id}}",
    "parameters": {
      "type": "XRPL",
      "feeStrategy": {
        "priority": "Medium",
        "type": "Priority"
      },
      "operation": {
        "type": "Payment",
        "destination": {
          "address": "rHolderAddress...",
          "type": "Address"
        },
        "amount": "1000000",
        "currency": {
          "issuanceId": "000004C463C52827307480341125DA0577AFFC21D4B2D0831E",
          "type": "MultiPurposeToken"
        }
      }
    },
    "customProperties": {},
    "type": "v0_CreateTransactionOrder"
  }
}
```

## Parameters

| Field | Type | Required | Description |
|  --- | --- | --- | --- |
| `destination` | object | Yes | The holder to receive minted tokens. |
| `destination.type` | string | Yes | One of: `Account` (internal account UUID), `Address` (XRPL address), or `Endpoint` (endpoint UUID). |
| `destination.address` | string | Conditional | The holder's XRPL address. Required when `destination.type` is `Address`. |
| `destination.accountId` | string | Conditional | Internal account UUID. Required when `destination.type` is `Account`. |
| `destination.endpointId` | string | Conditional | Endpoint UUID. Required when `destination.type` is `Endpoint`. |
| `amount` | string | Yes | The amount to mint (raw integer value). |
| `currency.issuanceId` | string | Yes | The 192-bit MPT issuance ID. |
| `currency.type` | string | Yes | Must be `MultiPurposeToken`. |


## Verify authorization before minting

If your MPT has `lsfMPTRequireAuth` set, verify the holder has authorized the MPT before minting. Minting to an unauthorized holder will fail on-chain.

You can check authorization status by querying the holder's MPT entries.

## Response

A successful request returns the transaction order with status `Pending`. After confirmation, the holder's balance increases by the minted amount, and the total supply increases accordingly.

## Related topics

- [Multi-purpose tokens](/products/custody/v1.36/accounts-and-assets/tokenization/xrpl-mpts#supported-operations) — Overview of MPT operations.
- [Create issuance](/products/custody/v1.36/accounts-and-assets/tokenization/xrpl-mpts/issuer/create-issuance) — Create a new MPT.
- [Authorize holder](/products/custody/v1.36/accounts-and-assets/tokenization/xrpl-mpts/issuer/authorize-holder) — Manage holder authorization.
- [Burn tokens](/products/custody/v1.36/accounts-and-assets/tokenization/xrpl-mpts/issuer/burn) — Reduce token supply.