Testing: Examples use the staging host https://api.anchorage-staging.com and "USD_R" for USD-side legs. In production, use https://api.anchorage.com and "USD".
Key concepts
All three stablecoin operations use the same endpoint — direction is set by the asset pair:
- Mint — convert USD into a stablecoin (
sourceAssetType: USD, destinationAssetType: <stablecoin>).
- Burn (redeem) — convert a stablecoin back to USD (
sourceAssetType: <stablecoin>, destinationAssetType: USD).
- Bridge — move a stablecoin between chains (
sourceAssetType and destinationAssetType are the same stablecoin on different chains, e.g. USDX_BSC_T → USDX_HOODI). Internally executes a burn on the source chain and a mint on the destination chain through a shared reserve.
| Operation Type | Direction | Transaction Type |
|---|
| Mint | USD → stablecoin | USD leg: TRANSFER; Stables leg: MINT |
| Burn | stablecoin → USD | USD leg: BURN; Stables leg: DEPOSIT |
| Bridge | stablecoin (chain A) → stablecoin (chain B) | BURN and MINT (one of each) |
Two endpoints support tracking conversions:
GET /v2/stablecoins/history — one record per conversion with status and pointers to underlying transactions, operationType indicates the type of operation carried out.
GET /v2/transactions — underlying ledger entries, filterable by types.
Action availability
| Action | API | Web platform |
|---|
| Mint stablecoins | Live | Live |
| Burn (redeem) stablecoins | Live | Live |
| Bridge stablecoins | Live | Live |
| Query conversion history | Live | Live |
Stablecoin swaps (operationType: SWAP) | In development | In development |
/v2/stablecoins/history may return records with operationType: SWAP once stablecoin swaps go live. Treat unknown operationType values as a forward-compatibility fallback, not an error.
1. Set up
Before making a conversion, identify source/destination wallets and confirm exact assetType strings.
GET /v2/vaults/{vaultId} — retrieve walletId values and balances for the vault holding source funds.
GET /v2/asset-types — look up exact assetType strings, including chain-specific variants like USDX_BSC_T.
Permission required: API key must have the Convert Stablecoins vault permission. Configure via Permission Groups.
Authentication: stablecoin conversion and history endpoints require only the Api-Access-Key header. No Api-Signature or Api-Timestamp headers are needed.
2. Mint
Convert USD into a stablecoin.
POST /v2/stablecoins/conversion — Reference
{
"destinationAssetType": "USDX_HOODI",
"destinationWalletId": "82936bb546cf1fc83955b6d9ca76ff16",
"idempotencyKey": "z763a50d-aa82-4ec7-b5a3-89ad0462d248",
"sourceAssetType": "USD_R",
"sourceWalletId": "940afa950652ed4fdffceb73b2745d02",
"amount": "10"
}
| Field | Description |
|---|
amount | USD amount as a string |
sourceWalletId | ID of the USD wallet being debited — retrieve via GET /v2/vaults/{vaultId} |
destinationAssetType | Stablecoin to mint (e.g., USDX_HOODI) — confirm via GET /v2/asset-types |
destinationWalletId | ID of the destination stablecoin wallet |
idempotencyKey | Unique string ≤128 chars. Use a distinct key per conversion to prevent duplicate submissions on retry. |
Response (201): returns authorizationOperationId. Conversion enters INITIATED status pending endorsement approval.
Monitor status: query GET /v2/stablecoins/history or GET /v2/transactions with types=MINT.
3. Burn (redeem)
Convert a stablecoin back to USD.
POST /v2/stablecoins/conversion — Reference
{
"destinationAssetType": "USD_R",
"destinationWalletId": "940afa950652ed4fdffceb73b2745d02",
"idempotencyKey": "z763a50d-aa82-4ec7-b5a3-89ad0462d248",
"sourceAssetType": "USDX_HOODI",
"sourceWalletId": "82936bb546cf1fc83955b6d9ca76ff16",
"amount": "10"
}
| Field | Description |
|---|
amount | Stablecoin amount as a string |
sourceAssetType | Stablecoin being redeemed |
sourceWalletId | ID of the source stablecoin wallet |
destinationWalletId | ID of the USD wallet being credited |
idempotencyKey | Unique string ≤128 chars |
Monitor status: same as mint, with types=BURN on the transactions filter.
4. Bridge across chains
Move a stablecoin between chains.
POST /v2/stablecoins/conversion — Reference
{
"destinationAssetType": "USDX_HOODI",
"destinationWalletId": "82936bb546cf1fc83955b6d9ca76ff16",
"idempotencyKey": "z763a50d-aa82-4ec7-b5a3-89ad0462d248",
"sourceAssetType": "USDX_BSC_T",
"sourceWalletId": "940afa950652ed4fdffceb73b2745d02",
"amount": "10"
}
| Field | Description |
|---|
sourceAssetType | Stablecoin on the source chain |
destinationAssetType | Same stablecoin on the destination chain — confirm via GET /v2/asset-types |
sourceWalletId / destinationWalletId | Wallet IDs on each respective chain |
A bridge produces one record in /v2/stablecoins/history (operationType: BRIDGE) but two transactions in /v2/transactions — a BURN on the source chain and a MINT on the destination chain. To inspect both legs, retrieve sourceOperationId and destinationOperationId from history, then look each up via GET /v2/transactions/{transactionId}.
Monitor status: use types=MINT,BURN to see both legs.
5. Query conversion history
GET /v2/stablecoins/history — Reference
Returns one record per conversion with status, asset types, wallet IDs, and pointers to underlying transactions. Results are paginated, ordered newest first. Requires Convert Stablecoins permission.
Query parameters:
| Parameter | Description |
|---|
limit | 1–100, default 100 |
lastCreatedAt | Pagination cursor — RFC3339 timestamp from createdAt of the last record on the previous page |
{
"data": [
{
"amount": "100.80",
"authorizationOperationId": "auth_op_01HX...",
"createdAt": "2026-05-01T22:51:00.082Z",
"destinationAssetTypeId": "PYUSD",
"destinationOperationId": "tx_01HX...",
"destinationWalletId": "wallet_01HX...",
"issueRedeemId": "ir_01HX...",
"operationType": "MINT",
"sourceAssetTypeId": "USD",
"sourceOperationId": "tx_01HX...",
"sourceWalletId": "wallet_01HX...",
"status": "EXECUTING",
"subStatus": null
}
],
"page": {
"next": "<next page url>"
}
}
page.next is a fully formed URL for the next page, or null when exhausted. Alternatively, paginate manually with lastCreatedAt set to the createdAt of the last record from the prior page.
To drill into a specific transaction, pass sourceOperationId or destinationOperationId to GET /v2/transactions/{transactionId} for blockchain hash, fee, and confirmation details.
6. Filter transactions endpoint
GET /v2/transactions — Reference
GET /v2/transactions?types=MINT,BURN&walletId={stablecoinWalletId}&startDate=2026-05-01&endDate=2026-05-31&limit=100
| Parameter | Description |
|---|
types | Comma-separated types. Stablecoin values: MINT, BURN, DEPOSIT, TRANSFER |
walletId | Filter to a specific wallet; omit for all wallets in the org |
startDate / endDate | Inclusive UTC date range, YYYY-MM-DD. Earliest valid startDate: 2017-01-01 |
limit | 1–100, default 25 |
afterId | Pagination cursor from the prior response’s page.next |
Key terms
| Term | Definition |
|---|
authorizationOperationId | Operation ID returned by /v2/stablecoins/conversion. Tracks endorsement and approval. |
issueRedeemId | Unique identifier for the conversion as a whole. Stable across both legs of a bridge. |
operationType | In /v2/stablecoins/history: MINT, BURN, or BRIDGE. |
sourceOperationId / destinationOperationId | Nullable transaction IDs for each leg. Pass to GET /v2/transactions/{transactionId} for full ledger details. |
status | INITIATED (awaiting endorsements), EXECUTING (approved, pending settlement), COMPLETED, FAILED, or UNKNOWN (forward-compat fallback). |
subStatus | Optional qualifier on status. Currently the only customer-observable value is REJECTED_BY_CUSTOMER (paired with status: FAILED). |
idempotencyKey | Client-supplied string ≤128 chars on /v2/stablecoins/conversion. Use a distinct key per conversion. |
Changelog
2026-05-01
Added: GET /v2/stablecoins/history — query mints, burns, and bridges with status, asset, wallet, and pointers to underlying transactions.