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
recipient.type accepts address, walletId, or vaultAccountId.
Response (202)
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 sameIdempotency-Key are safe and return the original operation.