- Fund with USD
- Fund in-kind with digital assets
- Attribute deposits
- Move funds between subaccounts
- Update billing fees and dates
Fund with USD
Generate a USD wire memo per subaccount via API and share with the end client. Include the memo in the wire to Anchorage Digital to ensure proper attribution.USD funding considerations
- ACH not supported — ACH makes attribution unreliable.
- Wires without memos are returned — Any wire without a memo field is subject to return. Anchorage Digital will use best efforts to determine the recipient but requires written confirmation from the wealth manager before attributing.
- Multiple subaccounts — If the end client has multiple subaccounts, they can fund one and rebalance USD across subaccounts using the Subaccount Transactions API.
- Third-party wires not supported — The originating bank account must be held in the end client’s name. Payments from accounts not in the end client’s name will be returned.
Fund in-kind with digital assets
Steps must be completed in order — out-of-sequence execution risks funds being lost or returned.Create a subaccount-specific deposit wallet
Create one wallet per subaccount per asset using the Create Wallet endpoint, specifying
subaccountId.Create wallets on demand (when the customer requests a deposit address) rather than pre-creating wallets for all supported assets.Recommended naming convention: [PC name]_[Subaccount #]_Deposit WalletWallet creation is limited to 10 wallets per asset per 30 minutes. This limit will increase in coming months.
Share with end client
Share the deposit address with the correct end client along with the blockchain details (e.g., Ethereum mainnet vs. Base), deposit attribution requirements, and any other relevant account information.
Monitor for deposits
Use webhooks to get notified of deposit events, or poll pending deposit attributions via API.Deposit confirmations are not immediate — typically require 2 on-chain confirmations, which may take a few minutes.
Attribute the deposit
See Attribution steps below.
Deposit attribution
Status values
status | Details |
|---|---|
PENDING | Deposit landed after Anchorage Digital auto-attribution attempt. Spam deposits marked by Anchorage will not appear here. |
INITIATED | Deposit detected; auto-attribution in progress. Moves to PENDING if auto-attribution fails. |
ATTRIBUTED | Terminal state — happy path. |
UNDER_REVIEW | Attributed but triggered a sanctions hit pending compliance clearance. |
BLOCKED | Confirmed true sanctions hit. |
NON_ATTRIBUTABLE | Semi-terminal state for specific edge cases. |
Attribution type values
attributionType | Details |
|---|---|
MANUAL_STAFF | Attributed by Anchorage Digital staff. |
MANUAL_CLIENT | Attributed by wealth manager via web dashboard. |
CLIENT_API | Attributed by wealth manager via API key. |
AUTOMATIC | Attributed via travel rule message from originating VASP. |
SPAM | Attributed as spam by Anchorage Digital or the wealth manager. |
TRUSTED_SOURCES | Attributed automatically using a designated trusted source. |
Trusted sources
Trusted sources auto-attribute recurring deposits from the same address. Create them in the Anchorage Digital dashboard (API not available in production).Spam / unknown deposits
Attribute dust or spam deposits asSPAM using the spam attribution API. This prevents unwanted balances from appearing on the end client’s subaccount. Anchorage Digital will sweep these funds from on-chain wallets using the shared API key as needed.
Automated attribution from VASPs
Crypto deposits from VASPs over $2,100 (the travel rule threshold) are automatically attributed if Anchorage Digital receives a travel rule message from an active TRUST network VASP. This is not instant — use the attribution API for faster fund access.Integration steps
Step 1: Get your vaultId
GET /v2/vaults — Reference
Step 2: Create a deposit wallet for the subaccount
POST /v2/vaults/{vaultId}/wallets — Reference
Sandbox testnet assets:
BTC_T (BTC testnet), ETHHOL (ETH Holesky), USDANCHOL (USDC Holesky)Step 3: Identify a new deposit
Option A: Poll for pending attributions —GET /v2/deposit-attributions?status=PENDING — Reference
Response
deposit.pending-attribution:
Webhook payload
message_id maps to the depositTransactionId.
Step 4: Attribute the deposit
PATCH /v2/deposit-attributions/{depositTransactionId} — Reference
sourceWalletType values:
| Value | Description |
|---|---|
CUSTODIAL | Third party holds the private key (e.g., Binance, Coinbase, Kraken, BitGo). |
SELF_HOSTED | Owner holds the private key (e.g., MetaMask, Trust Wallet, Ledger, Trezor, Exodus, Phantom). |
Step 5: Generate a wire memo for USD funding
GET /v2/subaccounts/accounts/{subaccountId}/bank-info — Reference
Instruct clients to use the Message to Beneficiary (OBI) or Message to Recipient (OBI) field for the memo. If unavailable, use the Memo field. For international wires, share the
bankSwiftCode.Step 6: View subaccount balances
GET /v2/subaccounts/customers/{customerId}/accounts — Reference
Step 7: Move funds between same-client subaccounts
POST /v2/subaccounts/transactions — Reference
Only settled funds can be moved. Use availableForWithdrawal for the settled balance. Cannot move funds between different end clients.
Step 8: Update subaccount billing fees or dates
PATCH /v2/subaccounts/accounts/{subaccountId} — Reference
- Updates trigger email notifications to end clients and the wealth manager (including sandbox).
- Updated rates apply from the
startDatespecified. - Mid-cycle updates retroactively apply to the current billing period.
- End-of-month billing uses the latest rate set for that month.

