Skip to main content
Managing end-client assets includes enabling withdrawals from subaccounts to external wallets. The process differs by asset type.

USD withdrawals

Key considerations before initiating a USD withdrawal:
  • External wire fees are covered by Anchorage Digital (subject to change).
  • Funds may only be transferred to the account from which they were initially deposited. To send to a different account, that account must be in the end client’s name.

USD withdrawal process

1

Wealth manager initiates a USD withdrawal via API

2

Anchorage Digital sends a DocuSign to the end client, copying the wealth manager

3

End client reviews and approves the DocuSign

4

Anchorage Digital initiates the wire to the end client's account

5

Withdrawal transaction completed on the ledger

Banks with master/subaccount structures

The following institutions typically use master + subaccount structures (common for investment accounts): JPMorgan, Morgan Stanley, TD Bank, Vanguard, Merrill Lynch For these institutions, format the API payload as follows:
  • bankAccountNr: "##-##-#####"
  • bankRoutingNr: "#####"
  • memo: "FCC [Client Name], FCC [recipient bank brokerage sub-account number########]"

API request

curl --request POST \
     --url https://api.anchorage-staging.com/v2/subaccounts/{subaccountId}/fiat/withdrawals \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '{
  "asset": {
    "amount": "1000.00",
    "assetType": "USD"
  },
  "customerDetails": {
    "beneficiary": {
      "accountNumber": "1234567890",
      "address": {
        "address": "123 Main St",
        "address2": "Apt 4B",
        "city": "Anytown",
        "country": "USA",
        "state": "CA",
        "zipcode": "90210"
      },
      "name": "Jane Doe"
    },
    "financialInstitution": {
      "address": {
        "address": "123 Main St",
        "address2": "Apt 4B",
        "city": "Anytown",
        "country": "USA",
        "state": "CA",
        "zipcode": "90210"
      },
      "code": "ABA",
      "id": "routing_id_123",
      "name": "Bank of America"
    },
    "intermediateFinancialInstitution": {
      "address": {
        "address": "123 Main St",
        "address2": "Apt 4B",
        "city": "Anytown",
        "country": "USA",
        "state": "CA",
        "zipcode": "90210"
      },
      "code": "ABA",
      "id": "123",
      "name": "Bank of America"
    },
    "memo": "For services rendered"
  }
}'
Before submitting, confirm the subaccount has sufficient funds and will continue to have sufficient funds while the request is processing. If the available balance falls below what’s needed to complete the withdrawal, Anchorage Digital will need to contact the wealth manager before proceeding.

In-kind digital asset withdrawals

New programmatic in-kind withdrawals (released 2025-04-15). Three key changes:
  1. New Create Trusted Destinations API.
  2. New DocuSign approval required from the end client before creating the trusted destination.
  3. Updated withdrawal API payload for withdrawals to trusted destinations.
  4. API permission and key updates required.

Step 1: Update API key permissions

Add the following two permissions to your API key permission group:
  • Withdrawal — Yes
  • Manage Trusted Destinations — Yes
Quorum approve the change before proceeding.

Step 2: Add trusted destinations

Submit trusted destination requests for each end-client’s external withdrawal address. For wealth management integrations, trusted destinations are tied to an owner representing the end client (customerId). After submission: A DocuSign is sent to the end client for each destination. Once signed, the Anchorage Digital ops team reviews and approves. If issues arise, Anchorage Digital will reach out.
curl --request POST \
     --url https://api.anchorage-staging.com/v2/trusted_destinations \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '{
  "idempotentId": "YOUR_GENERATED_UUID_HERE",
  "trustedDestinations": [
    {
      "assetType": "ETH",
      "address": "0x430EF7FAB8e10dFb8B7c50c2026d0e247FEE4B8",
      "name": "Test Ethereum Address 3",
      "trustedDestinationAmlQuestionnaire": {
        "destinationType": "SELFHOSTED_WALLET",
        "selfhostedDescription": "Personal ETH wallet for testing",
        "selfhostedWalletOwner": "PERSON_OR_ENTITY",
        "recipientType": "PERSON",
        "recipientFirstName": "John",
        "recipientLastName": "Doe",
        "recipientFullName": "John Doe",
        "recipientCountry": "US",
        "recipientStreetAddress": "123 Main St",
        "recipientCity": "San Francisco",
        "recipientStateProvince": "CA",
        "recipientPostalCode": "94105"
      },
      "description": "Test Ethereum wallet for demo purposes",
      "memo": "ETH demo wallet 3",
      "isNetworkLevel": false
    }
  ],
  "owner": {
    "type": "CUSTOMER",
    "id": "7266559476aac38fc8c7c2022f93a9d1b9b618b1c9e2b4387840b595dcd374aa"
  }
}'

Step 3: Initiate the withdrawal

Use the Create Withdrawal endpoint. Anchorage Digital account admins will need to verify on their iOS devices. Once quorum is complete, the operation proceeds through risk review, then broadcasts on-chain.
Admins can batch approve multiple operations on iOS. See the batched endorsements guide.
Multiple withdrawals for the same asset queued simultaneously may be processed sequentially rather than in parallel. Flagged withdrawals may also delay same-asset withdrawals.
Withdrawal request
{
  "source": {
    "id": "15bb8b12-d991-45d2-b784-c83c4449265b",
    "type": "SUBACCOUNT"
  },
  "assetType": "ETH",
  "destination": {
    "id": "0xf0Ed16EeedD8111B40De252467eE9d0E14cbfe99",
    "type": "ADDRESS"
  },
  "amount": "1",
  "description": "",
  "withdrawalAmlQuestionnaire": {
    "useTrustedDestinationAml": true,
    "purpose": "INTRA_COMPANY"
  }
}
purpose values: TRADING_SETTLEMENT, LENDING, INVESTMENT, EXPENSES, FEE_PAYMENT, GRANT_PAYMENT, PRIZE_AWARD, GIFT, REIMBURSEMENT, REBALANCE, INTRA_COMPANY

(Deprecated) Digital asset withdrawals — manual process

The programmatic in-kind withdrawal API (above) supersedes this manual process. This section is retained for reference only.

Manual withdrawal process

1

Wealth manager emails Anchorage Digital

Send withdrawal request to accountexecutive@anchorage.com with the end client’s details using the digital asset withdrawal instructions form.
2

Anchorage Digital sends DocuSign template to wealth manager

Wealth manager fills out the form on the end client’s behalf.
3

End client receives and signs the DocuSign

4

Anchorage Digital processes the withdrawal

  1. Test payment — Anchorage Digital ops sends a small test amount to the destination address.
  2. Wealth manager confirmation — Confirm with ops that the end client received the test amount.
  3. Full payment — Anchorage Digital ops sends the remaining balance.
5

Withdrawal transaction completed on the ledger

Digital asset withdrawal instruction form fields

  • Date
  • Program customer name
  • Program customer subaccount name
  • Program customer subaccount ID
  • Digital asset (name + symbol)
  • Quantity of asset (in-kind)
  • Destination wallet address
  • Where is the address held?
    • Financial institution (custodian, exchange, OTC desk) — if so, name of counterparty/institution
    • Self-hosted wallet (e.g., Ledger, MetaMask)
  • Legal name of ultimate underlying beneficiary
  • Country of ultimate underlying beneficiary
  • Purpose of withdrawal: Trading settlement, Lending, Investment, Expenses, Fee payment, Grant payment, Prize award, Gift, Reimbursement, Rebalance, Intra-company transfer