Skip to main content
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_TUSDX_HOODI). Internally executes a burn on the source chain and a mint on the destination chain through a shared reserve.
Operation TypeDirectionTransaction Type
MintUSD → stablecoinUSD leg: TRANSFER; Stables leg: MINT
Burnstablecoin → USDUSD leg: BURN; Stables leg: DEPOSIT
Bridgestablecoin (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

ActionAPIWeb platform
Mint stablecoinsLiveLive
Burn (redeem) stablecoinsLiveLive
Bridge stablecoinsLiveLive
Query conversion historyLiveLive
Stablecoin swaps (operationType: SWAP)In developmentIn 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/conversionReference
Example payload
{
  "destinationAssetType": "USDX_HOODI",
  "destinationWalletId": "82936bb546cf1fc83955b6d9ca76ff16",
  "idempotencyKey": "z763a50d-aa82-4ec7-b5a3-89ad0462d248",
  "sourceAssetType": "USD_R",
  "sourceWalletId": "940afa950652ed4fdffceb73b2745d02",
  "amount": "10"
}
FieldDescription
amountUSD amount as a string
sourceWalletIdID of the USD wallet being debited — retrieve via GET /v2/vaults/{vaultId}
destinationAssetTypeStablecoin to mint (e.g., USDX_HOODI) — confirm via GET /v2/asset-types
destinationWalletIdID of the destination stablecoin wallet
idempotencyKeyUnique 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/conversionReference
Example payload
{
  "destinationAssetType": "USD_R",
  "destinationWalletId": "940afa950652ed4fdffceb73b2745d02",
  "idempotencyKey": "z763a50d-aa82-4ec7-b5a3-89ad0462d248",
  "sourceAssetType": "USDX_HOODI",
  "sourceWalletId": "82936bb546cf1fc83955b6d9ca76ff16",
  "amount": "10"
}
FieldDescription
amountStablecoin amount as a string
sourceAssetTypeStablecoin being redeemed
sourceWalletIdID of the source stablecoin wallet
destinationWalletIdID of the USD wallet being credited
idempotencyKeyUnique 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/conversionReference
Example payload
{
  "destinationAssetType": "USDX_HOODI",
  "destinationWalletId": "82936bb546cf1fc83955b6d9ca76ff16",
  "idempotencyKey": "z763a50d-aa82-4ec7-b5a3-89ad0462d248",
  "sourceAssetType": "USDX_BSC_T",
  "sourceWalletId": "940afa950652ed4fdffceb73b2745d02",
  "amount": "10"
}
FieldDescription
sourceAssetTypeStablecoin on the source chain
destinationAssetTypeSame stablecoin on the destination chain — confirm via GET /v2/asset-types
sourceWalletId / destinationWalletIdWallet 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/historyReference 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:
ParameterDescription
limit1–100, default 100
lastCreatedAtPagination cursor — RFC3339 timestamp from createdAt of the last record on the previous page
Example response
{
  "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/transactionsReference
GET /v2/transactions?types=MINT,BURN&walletId={stablecoinWalletId}&startDate=2026-05-01&endDate=2026-05-31&limit=100
ParameterDescription
typesComma-separated types. Stablecoin values: MINT, BURN, DEPOSIT, TRANSFER
walletIdFilter to a specific wallet; omit for all wallets in the org
startDate / endDateInclusive UTC date range, YYYY-MM-DD. Earliest valid startDate: 2017-01-01
limit1–100, default 25
afterIdPagination cursor from the prior response’s page.next

Key terms

TermDefinition
authorizationOperationIdOperation ID returned by /v2/stablecoins/conversion. Tracks endorsement and approval.
issueRedeemIdUnique identifier for the conversion as a whole. Stable across both legs of a bridge.
operationTypeIn /v2/stablecoins/history: MINT, BURN, or BRIDGE.
sourceOperationId / destinationOperationIdNullable transaction IDs for each leg. Pass to GET /v2/transactions/{transactionId} for full ledger details.
statusINITIATED (awaiting endorsements), EXECUTING (approved, pending settlement), COMPLETED, FAILED, or UNKNOWN (forward-compat fallback).
subStatusOptional qualifier on status. Currently the only customer-observable value is REJECTED_BY_CUSTOMER (paired with status: FAILED).
idempotencyKeyClient-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.