Skip to main content
A transfer is a fully programmatic movement of assets to an internal or external destination without per-transfer quorum approval. A withdrawal is a quorum-approved movement of assets to an external address, initiated via the iOS app or API.

Key concepts

ActionDescription
View whitelistList Trusted Destinations on file and retrieve Trusted Destination IDs
Manage whitelistCreate, modify, or delete Trusted Destinations
WithdrawSend USD out of an ADB fiat account
TransferMove USD between accounts you own (internal) or to a Trusted Destination (external)

Action availability

ActionAPIWeb PlatformPath
View Trusted DestinationsAvailable for testingLiveAPI or web platform
Manage Trusted DestinationsNot yet availableLiveWeb platform
WithdrawAvailable for testingLiveAPI or web platform
Transfer API, internalAvailable for testingN/AAPI
Transfer API, externalAvailable for testingN/AAPI

1. Trusted Destination management

Current path: web platform only. To add a fiat Trusted Destination, follow the Adding Trusted Destinations guide. When selecting destination type, choose Fiat. If testing pre-release, contact api@anchorage.com after completing this step to have destinations enabled for your account. Create, modify, and delete API endpoints are in development.

2. Fetch Trusted Destinations

To initiate a fiat withdrawal or external transfer via API, call the list endpoint and filter on type == "fiat" to retrieve the id of the target Trusted Destination. GET /v2/trusted_destinationsReference
Example response
{
  "data": [
    {
      "id": "42731847-0250-43e6-879c-0a1b30817dd2",
      "name": "Acme Holdings Operating Account",
      "description": "Primary USD operating account",
      "type": "fiat",
      "fiat": {
        "beneficiaryName": "Acme Holdings LLC",
        "beneficiaryAccount": "123456789",
        "beneficiaryType": "BUSINESS",
        "beneficiaryAddress": "1 Main Street",
        "beneficiaryCity": "New York",
        "beneficiaryState": "NY",
        "beneficiaryZipCode": "10001",
        "beneficiaryCountry": "US",
        "institutionName": "Example Bank",
        "institutionId": "021000021",
        "institutionCode": "F",
        "institutionAddress": "100 Bank Plaza",
        "institutionCity": "New York",
        "institutionState": "NY",
        "institutionZipCode": "10001",
        "institutionCountry": "US"
      }
    },
    {
      "id": "7326220826746077690",
      "name": "Acme Holdings ETH Wallet",
      "description": "Counterparty ETH address",
      "type": "crypto",
      "crypto": {
        "address": "0xdaeeba8c1a5E1965682e42bfcaB19a8C5802c86B",
        "assetType": "ETH",
        "isNetworkLevel": false,
        "networkId": "ETH"
      }
    }
  ],
  "page": {
    "next": null
  }
}

3. Withdraw

Send USD from an ADB fiat account to a Trusted Destination. Use the wallet ID as source and the Trusted Destination ID (from step 2) as destination. POST /v2/withdrawalsReference
Example payload
{
  "assetType": "USD_R",
  "amount": "100",
  "source": {
    "id": "1f5f8952a2b1362639e24c5ccec6c189",
    "type": "WALLET"
  },
  "destination": {
    "id": "6a13b95f-ab01-4c99-bdd5-850ee425132c",
    "type": "TRUSTED_DESTINATION"
  },
  "assetParametersFiatTrustedDestination": {
    "purpose": "TRADING_SETTLEMENT",
    "memo": "test memo"
  }
}
FieldDescription
amountUSD amount as a string
source.idID of the source ADB fiat wallet — retrieve via GET /v2/wallets
destination.idTrusted Destination ID from step 2
purposeEnum classifying the reason for the transfer (e.g., TRADING_SETTLEMENT)
memoFree-text description sent with the wire
Monitor status via GET /v2/transactions or webhook events.

4. Transfer

Move USD between accounts you own (internal) or to a Trusted Destination (external). The destination.type field discriminates the two flows:
  • WALLET — internal transfer
  • TRUSTED_DESTINATION — external transfer (filter step 2 response on type == "fiat")
POST /v2/transfersReference
{
  "source": {
    "id": "1f5f8952a2b1362639e24c5ccec6c189",
    "type": "WALLET"
  },
  "transferMemo": "test transfer",
  "destination": {
    "id": "71d3f2a8841f7991b09f22fac52781ef",
    "type": "WALLET"
  },
  "assetType": "USD_R",
  "amount": "100"
}
FieldDescription
source.idID of the source ADB wallet — retrieve via GET /v2/wallets
destination.idDestination wallet ID (internal) or Trusted Destination ID (external)
transferMemoFree-text description attached to the transfer
amountUSD amount as a string
Monitor status via GET /v2/transactions, GET /v2/transfers, or webhook events.

Key terms

TermDefinition
Trusted Destination (TD)An external counterparty (bank account or crypto address) pre-registered with Anchorage and approved to receive funds
Fiat TDA TD representing a bank account — identified by type: "fiat" in API responses
Crypto TDA TD representing a blockchain address — identified by type: "crypto" in API responses
trustedDestinationIdThe id field on a TD; used in withdrawal and transfer payloads
institutionCodeIdentifier type for the receiving bank: F = ABA/Fedwire (domestic US), B = SWIFT/BIC (international)
institutionIdRouting identifier value — format depends on institutionCode
assetParametersFiatTrustedDestinationWrapper object for fiat-specific transfer parameters
purposeClassifies the reason for the transfer (e.g., TRADING_SETTLEMENT)
memoFree-text description sent with the wire

Changelog

2026-04-30

Added: View whitelist, Withdraw, Transfer (internal), Transfer (external to any whitelisted destination) — all available for testing.