Minting Services Terms

Overview

Before an enterprise can mint or burn stablecoins through the BitGo platform, a user must accept the minting services terms on behalf of the enterprise. This guide describes how to review and accept the terms through the API.

If you don't agree to the terms, calls to Create Stablecoin Order fail with a 401 Unauthorized response.

Prerequisites

Stablecoin Overview

1. Review Terms

Review the BitGo Coin Minting & Redemption Services Terms in full. Crypto-as-a-Service (CaaS) clients should present the full terms to their end users. Use the link above to retrieve the terms verbiage, as no API endpoint currently exists to fetch them programmatically.

2. Check Terms Status (Optional)

Retrieve the enterprise details to check whether your enterprise has accepted the minting services terms. If stablecoinAgreement is absent or empty, proceed to Step 3 to accept the terms.

Endpoint: Get Enterprise

export BITGO_ENV="test"  # or "prod" for production
export ENTERPRISE_ID="<ENTERPRISE_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"

curl -X GET \
  "http://$BITGO_EXPRESS_HOST/api/v2/enterprise/$ENTERPRISE_ID" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Step Result

  • Not Accepted - The response includes a stablecoinAgreementLatestVersion field that contains a version number that will be used to accept the terms in the next step.
  • Accepted - The response includes a stablecoinAgreement field that contains an array of agreement records when your enterprise has confirmed the terms.
{
  "stablecoinAgreementLatestVersion": 1, // This value becomes your version in the next step.
}
{
  "id": "6437d9ae435d8b0007635c3f0db52154",
  "name": "Example Enterprise",
  "stablecoinAgreement": [
    {
      "user": "682de31be80bbf9a733a2553d30e5cb5",
      "date": "2026-03-23T14:20:58.892Z",
      "ip": "10.24.183.6",
      "version": 1
    }
  ],
  "stablecoinAgreementLatestVersion": 1,
  ...
}

3. Accept the Terms

When you accept the terms on behalf of your enterprise, the version field must match the current version of the terms. You can retrieve the latest version from the stablecoinAgreementLatestVersion field in the enterprise details response in Step 2.

Endpoint: Accept Minting Terms

export BITGO_ENV="test"  # or "prod" for production
export ENTERPRISE_ID="<ENTERPRISE_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export STABLECOIN_AGREEMENT_LATEST_VERSION="<STABLECOIN_AGREEMENT_LATEST_VERSION"> 

curl -X PUT \
  https://app.bitgo-$BITGO_ENV.com/api/stablecoin/v1/enterprise/$ENTERPRISE_ID/agreement \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
    "version": $STABLECOIN_AGREEMENT_LATEST_VERSION
  }'

Step Result

{
  "enterpriseId": "6437d9ae435d8b0007635c3f0db52154",
  "version": 1
}

See Also