> ## Documentation Index
> Fetch the complete documentation index at: https://docs.quantumapi.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Mint tokens

> Mint new supply of a deployed QRC token through Qustody.

## `POST /v1/tokens/{tokenId}/mint`

Increase the supply of a deployed QRC token by minting to a vault account, registered wallet, or external address. Subject to the token's supply policy and the configured approval policy.

| Aspect               | Detail                                                            |
| -------------------- | ----------------------------------------------------------------- |
| Method               | `POST`                                                            |
| Path                 | `/v1/tokens/{tokenId}/mint`                                       |
| Authentication       | Bearer API key                                                    |
| Required permissions | `tokens:mint` plus the on-chain `MINTER` role                     |
| Idempotency          | `Idempotency-Key` header **required**                             |
| Approval policy      | **Required** for any non-zero amount                              |
| Blockchain effect    | Contract call to `mint(address,uint256)` (or template-equivalent) |
| Webhook events       | `token.mint_requested`, `token.minted`, `token.operation_failed`  |

### Request body

```json theme={null}
{
  "amount": "1000000000000000000000",
  "recipient": {
    "type": "address",
    "address": "0x9a8e5e21f0c27d2c5c14b6e9bd8e4a0f9c9b4d12"
  },
  "feeStrategy": "MEDIUM",
  "idempotencyKey": "mint-2026-04-27-001"
}
```

`recipient.type` accepts `address`, `walletId`, or `vaultAccountId`.

### Response (202)

```json theme={null}
{
  "operationId": "op_mint_123",
  "tokenId": "token_abc123",
  "operationType": "MINT",
  "status": "PENDING_AUTHORIZATION",
  "amount": "1000000000000000000000",
  "transactionRequestId": "txreq_002",
  "createdAt": "2026-04-27T10:05:00Z"
}
```

### Errors

| Code | Type                          | Meaning                                                  |
| ---: | ----------------------------- | -------------------------------------------------------- |
| 1703 | `TOKEN_NOT_DEPLOYED`          | Token has no on-chain `contractAddress`.                 |
| 1704 | `TOKEN_OPERATION_NOT_ALLOWED` | Standard or template does not allow `mint`.              |
| 1705 | `TOKEN_SUPPLY_EXCEEDED`       | Resulting supply would exceed `supplyPolicy.maxSupply`.  |
| 1706 | `TOKEN_MINT_NOT_ALLOWED`      | Caller lacks the on-chain `MINTER` role.                 |
| 1712 | `TOKEN_INVALID_RECIPIENT`     | Recipient resolution failed (address, wallet, or vault). |
| 1713 | `TOKEN_INVALID_AMOUNT`        | Amount is zero, negative, or not a valid `uint256`.      |
| 1200 | `POLICY_DENIED`               | Approval policy denied the operation.                    |
| 1201 | `APPROVAL_REQUIRED`           | Approval is required and was not yet granted.            |
| 1601 | `IDEMPOTENCY_CONFLICT`        | Same `Idempotency-Key` reused with different body.       |

### Retry safety

Retries with the same `Idempotency-Key` are safe and return the original operation.

## Related

* [Token operations](/api-reference/tokens/list-token-operations)
* [Token roles](/api-reference/tokens/manage-token-roles)
* [Burn tokens](/api-reference/tokens/burn-tokens)
* [Guide — Mint and burn tokens](/guides/mint-and-burn-tokens)
* [Security model](/qustody/token-management/security-model)
