# Mint Issuer Stablecoins

Source: https://developers.bitgo.com/docs/mint-issuer-stablecoins

## Overview

As an issuer, you can mint your stablecoin directly to a Go Account in a single API call. Issuer mint orders skips the deposit-confirmation step and is not subject to standard mint fees.

## Prerequisites

* [Get Started](/docs/get-started-intro)
* [Accept Issuer Minting Terms](/docs/accept-issuer-mint-terms)
* To enable issuer mint capabilities, contact your BitGo Customer Success Manager (CSM).

## Cookbook

Need just the steps? Expand the cookbook for the mint flow:

<Cookbook slug="issuer-mint-order" title="Mint Issuer Stablecoins" />

## 1. Create Mint Order

Create an issuer-direct mint order. `go_account` is the only supported `destinationType`.

> 📘 **Note**
>
> By default, `amount` uses USD base units (cents). If your enterprise enables `stablecoins-issuer-mint-stablecoin-units`, `amount` uses stablecoin base units. Confirm your enterprise configuration before you submit.

> Endpoint: [Create Issuer Stablecoin Order](/reference/stablecoinv1issuerorderpost)

```shell cURL
export ENTERPRISE_ID="<YOUR_ENTERPRISE_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export ASSET_ID="<YOUR_ASSET_ID>"
export WALLET_ID="<DESTINATION_WALLET_ID>"

curl -X POST \
  https://app.bitgo-test.com/api/stablecoin/v1/enterprise/$ENTERPRISE_ID/issuer/orders \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
    "type": "mint",
    "asset": "'"$ASSET_ID"'",
    "amount": "100000000000000000000",
    "destinationType": "go_account",
    "destinationWalletId": "'"$WALLET_ID"'"
  }'
```

#### Step Result

```json JSON
{
  "id": "95bdbd9c-9cdc-41a4-ae70-165387b7aa51",
  "type": "mint",
  "status": "created",
  "orderMethod": "issuer_direct",
  "asset": "eth:usd1",
  "fromAsset": "eth:usd1",
  "fromAmount": "100000000000000000000",
  "toAsset": "eth:usd1",
  "toAmount": "100000000000000000000",
  "destinationWalletId": "8iMXoeSpS1d1ziEJ",
  "destinationAddress": "d526909b2398a6d579c817dc07fc9d72",
  "enterpriseId": "67bc4ae090e8af8f9b412d3d67e85252",
  "transactions": [],
  "createdAt": "2025-04-04T09:25:48.216Z",
  "updatedAt": "2025-04-04T09:25:48.216Z"
}
```

## 2. Check Mint Orders

Fetch mint orders across all assets your enterprise issues.

> Endpoint: [List Issuer Stablecoin Orders](/reference/stablecoinv1issuerorderlistget)

```shell cURL
export ENTERPRISE_ID="<YOUR_ENTERPRISE_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"

curl -X GET \
  https://app.bitgo-test.com/api/stablecoin/v1/enterprise/$ENTERPRISE_ID/issuer/orders \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

#### Step Result

```json JSON
{
  "orders": [
    {
      "asset": "eth:usd1",
      "destinationWalletId": "8iMXoeSpS1d1ziEJ",
      "destinationAddress": "d526909b2398a6d579c817dc07fc9d72",
      "userId": "test-user",
      "clientDepositTxHash": "string",
      "transactions": [
        {
          "type": "clientDeposit",
          "txHash": "512f64d10b5f358f6dbf3303f90013cfa46006b02a03282456d6bd6432cc5daf",
          "asset": "eth:usd1",
          "amount": "500",
          "status": "confirmed",
          "createdAt": "2025-04-04T09:26:21.600Z",
          "updatedAt": "2025-04-04T09:26:21.600Z"
        }
      ],
      "memo": "Payment for invoice #1234",
      "createdAt": "2025-04-04T09:25:48.216Z",
      "updatedAt": "2025-04-04T09:55:09.136Z",
      "fromAssetId": "08c1271e-b15d-4af8-8929-f75383903da4",
      "toAssetId": "49ff49ea-3355-4717-bbb0-5e8f5cae2202",
      "fromAsset": "eth:usd1",
      "fromAmount": "500",
      "toAsset": "eth:usd1",
      "toAmount": "5000000",
      "orderMethod": "issuer_direct",
      "id": "95bdbd9c-9cdc-41a4-ae70-165387b7aa51",
      "type": "mint",
      "status": "fulfilled",
      "enterpriseId": "67bc4ae090e8af8f9b412d3d67e85252"
    }
  ]
}
```

<Accordion title="Mint Order Status Lifecycle">

| Status                    | Description                                                              |
| :------------------------ | :----------------------------------------------------------------------- |
| `created`                 | Order submitted; initial state.                                          |
| `approved_mint`           | Order validated and approved for on-chain execution.                     |
| `triggering_mint`         | On-chain mint transaction is initiating.                                 |
| `fulfilled`               | Tokens minted and delivered to the destination address.                  |
| `failed_mint_initiation`  | Error initiating the mint; order reverts to `approved_mint` and retries. This status appears in order history only, not as the current state. |
| `failed_mint_transaction` | Error while starting the minting process.                                |
| `failed_to_mint`          | Blockchain transaction broadcast but failed or was rejected.             |
| `rejected`                | Order rejected by a policy or compliance denial.                         |
| `expired`                 | Order expired before completion.                                         |

</Accordion>

## 3. Get an Orders Summary (Optional)

Retrieve aggregated mint amounts and counts, broken out by asset.

> Endpoint: [Issuer Orders Summary](/reference/stablecoinv1issuerorderssummaryget)

```shell cURL
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"

curl -X GET \
  https://app.bitgo-test.com/api/stablecoin/v1/issuer/orders-summary \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

#### Step Result

```json JSON
{
  "byAsset": {
    "key": {
      "chain": "hteth",
      "decimals": 18,
      "mint": {
        "amount": "110002428000000000000000000",
        "count": 12,
        "byStatus": {
          "created": {
            "amount": "45000000000000000000000000",
            "count": 5
          }
        }
      }
    }
  },
  "timeSeries": [
    {
      "period": "2024-01-01T00:00:00.000Z",
      "mintAmount": "1000000000000000000000",
      "mintCount": 5,
      "burnAmount": "500000000000000000000",
      "burnCount": 3
    }
  ]
}
```

## See Also

* [API Reference: Create Issuer Stablecoin Order](/reference/stablecoinv1issuerorderpost)
* [API Reference: List Issuer Stablecoin Orders](/reference/stablecoinv1issuerorderlistget)
* [API Reference: Issuer Orders Summary](/reference/stablecoinv1issuerorderssummaryget)
