Issuer Stablecoins
Issuer Stablecoins Compliance
Overview
Compliance Requests let you submit and track on-chain compliance actions against your stablecoin. Each request goes through a BitGo Trust review and approval process before settling on-chain, with a full timestamped audit trail.
Prerequisites
- Get Started
- Enterprise admin role to create and cancel requests, or member role to view requests.
Cookbook
Want the steps without the walkthrough? Expand the cookbook below:
Compliance RequestsOpen Cookbook1. Check Compliance Request Settings
Return the supported compliance actions for each asset and chain pair your enterprise can access. baseAsset is required. Add chain to narrow the results to one asset and chain pair.
Endpoint: Get Compliance Request Settings
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export BASE_ASSET="<YOUR_BASE_ASSET>"
curl -X GET \
https://app.bitgo-test.com/api/stablecoin/v1/issuer/compliance-request-settings?baseAsset=$BASE_ASSET \
-H 'accept: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN"
Step Result
{
"assets": [
{
"assetId": "0438163a-d236-4865-978e-02ee7c2285b7",
"token": "eth:gousd",
"chain": "eth",
"baseAsset": "gousd",
"complianceRequestSettings": {
"freeze": true,
"unfreeze": true,
"pause": true,
"unpause": true
}
}
]
}
2. Create a Compliance Request
Submit a compliance request to take a compliance action against an on-chain address.
Note
If BitGo cannot start the on-chain transaction, the API returns an error instead of a live request.
Endpoint: Create Compliance Request
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export WALLET_ADDRESS="<WALLET_ADDRESS>"
export ASSET_ID="<ASSET_ID>"
curl -X POST \
https://app.bitgo-test.com/api/stablecoin/v1/issuer/compliance-requests \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"address": "'"$WALLET_ADDRESS"'",
"addressLabel": "Hot Wallet A",
"type": "freeze",
"assetId": "'"$ASSET_ID"'",
"comments": "Suspicious activity detected"
}'
Compliance Request Lifecycle
| Status | Description |
|---|---|
created |
Initial record; immediately advances to pending_approval. |
pending_approval |
Submitted and awaiting BitGo Trust approval. |
approved |
Approved by BitGo Trust; on-chain transaction is being settled. |
confirmed |
Freeze or unfreeze confirmed on-chain. Success. |
rejected |
Rejected by BitGo Trust. |
cancelled |
Issuer cancelled the request before it settled. |
failed |
On-chain settlement did not complete. |
Step Result
{
"id": "177dc9ed-64a7-4f68-9ba5-8d5b55fe5878",
"type": "freeze",
"status": "pending_approval",
"assetId": "0438163a-d236-4865-978e-02ee7c2285b7",
"requestSource": "issuer",
"baseAsset": "usd1",
"chain": "eth",
"address": "0xd0898d88e2c08b2a95e19441e412c0a708a8bd43",
"addressLabel": "Hot Wallet A",
"createdAt": "2025-06-23T07:28:17.042Z",
"updatedAt": "2025-06-23T07:28:17.042Z",
"enterpriseId": "6437d9f07d6a87000613e6c06e4218d3",
"userId": "6437d9f07d6a87000613e6c06e4218d3",
"comments": "Suspicious activity detected",
"pendingApprovalId": "pa_123",
"bitgoTransferId": "6437d9f07d6a87000613e6c06e4218d3",
"transactionHash": "0xabcdef1234567890",
"complianceRequestHistory": [
{
"status": "pending_approval",
"actorSource": "bitgo",
"timestamp": "2025-06-23T07:28:17.042Z",
"actorId": "6437d9f07d6a87000613e6c06e4218d3"
}
]
}
3. View Compliance Requests
View compliance requests for assets in your enterprise.
Endpoint: List Compliance Requests
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
curl -X GET \
https://app.bitgo-test.com/api/stablecoin/v1/issuer/compliance-requests \
-H "Authorization: Bearer $ACCESS_TOKEN"
Step Result
{
"requests": [
{
"id": "177dc9ed-64a7-4f68-9ba5-8d5b55fe5878",
"type": "freeze",
"status": "pending_approval",
"assetId": "0438163a-d236-4865-978e-02ee7c2285b7",
"requestSource": "issuer",
"baseAsset": "usd1",
"chain": "eth",
"address": "0xd0898d88e2c08b2a95e19441e412c0a708a8bd43",
"addressLabel": "Hot Wallet A",
"createdAt": "2025-06-23T07:28:17.042Z",
"updatedAt": "2025-06-23T07:28:17.042Z",
"enterpriseId": "6437d9f07d6a87000613e6c06e4218d3",
"userId": "6437d9f07d6a87000613e6c06e4218d3",
"comments": "Suspicious activity detected",
"pendingApprovalId": "pa_123",
"bitgoTransferId": "6437d9f07d6a87000613e6c06e4218d3",
"transactionHash": "0xabcdef1234567890"
}
],
"total": 1
}
Endpoint: Get Compliance Request by ID
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export COMPLIANCE_REQUEST_ID="<YOUR_COMPLIANCE_REQUEST_ID>"
curl -X GET \
https://app.bitgo-test.com/api/stablecoin/v1/issuer/compliance-requests/$COMPLIANCE_REQUEST_ID \
-H "Authorization: Bearer $ACCESS_TOKEN"
Step Result
{
"id": "177dc9ed-64a7-4f68-9ba5-8d5b55fe5878",
"type": "freeze",
"status": "pending_approval",
"assetId": "0438163a-d236-4865-978e-02ee7c2285b7",
"requestSource": "issuer",
"baseAsset": "usd1",
"chain": "eth",
"address": "0xd0898d88e2c08b2a95e19441e412c0a708a8bd43",
"addressLabel": "Hot Wallet A",
"createdAt": "2025-06-23T07:28:17.042Z",
"updatedAt": "2025-06-23T07:28:17.042Z",
"enterpriseId": "6437d9f07d6a87000613e6c06e4218d3",
"userId": "6437d9f07d6a87000613e6c06e4218d3",
"comments": "Suspicious activity detected",
"pendingApprovalId": "pa_123",
"bitgoTransferId": "6437d9f07d6a87000613e6c06e4218d3",
"transactionHash": "0xabcdef1234567890",
"complianceRequestHistory": [
{
"status": "pending_approval",
"actorSource": "bitgo",
"timestamp": "2025-06-23T07:28:17.042Z",
"actorId": "6437d9f07d6a87000613e6c06e4218d3"
}
]
}
4. Cancel a Compliance Request
Cancel a request that is pending approval.
Endpoint: Cancel Compliance Request
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export COMPLIANCE_REQUEST_ID="<YOUR_COMPLIANCE_REQUEST_ID>"
curl -X PATCH \
https://app.bitgo-test.com/api/stablecoin/v1/issuer/compliance-requests/$COMPLIANCE_REQUEST_ID/cancel \
-H "Authorization: Bearer $ACCESS_TOKEN"
Step Result
{
"id": "177dc9ed-64a7-4f68-9ba5-8d5b55fe5878",
"type": "freeze",
"status": "cancelled",
"assetId": "0438163a-d236-4865-978e-02ee7c2285b7",
"requestSource": "issuer",
"baseAsset": "usd1",
"chain": "eth",
"address": "0xd0898d88e2c08b2a95e19441e412c0a708a8bd43",
"addressLabel": "Hot Wallet A",
"createdAt": "2025-06-23T07:28:17.042Z",
"updatedAt": "2025-06-23T07:40:11.300Z",
"enterpriseId": "6437d9f07d6a87000613e6c06e4218d3",
"userId": "6437d9f07d6a87000613e6c06e4218d3",
"comments": "Suspicious activity detected",
"pendingApprovalId": "pa_123",
"complianceRequestHistory": [
{
"status": "created",
"actorSource": "issuer",
"actorId": "6437d9f07d6a87000613e6c06e4218d3",
"timestamp": "2025-06-23T07:28:17.042Z"
},
{
"status": "pending_approval",
"actorSource": "issuer",
"actorId": "6437d9f07d6a87000613e6c06e4218d3",
"timestamp": "2025-06-23T07:28:17.610Z"
},
{
"status": "cancelled",
"actorSource": "issuer",
"actorId": "6437d9f07d6a87000613e6c06e4218d3",
"timestamp": "2025-06-23T07:40:11.300Z"
}
]
}