- Tax data overview and accounting method
- Critical transaction and cost basis considerations
- Supported tax forms
- Integration steps
Anchorage Digital does not provide financial, tax, or legal advice.
Tax data overview
Anchorage Digital reports tax data for two account types:- Taxable accounts — individual, trust, joint, etc.
- Individual Retirement Accounts (IRA)
HIFO accounting method
Anchorage Digital uses HIFO (highest-in, first-out) by default — the highest-priced units are sold first when calculating cost basis. This can be changed at the wealth manager level or overridden per account. Example: Investor holds 10 BTC at 22k, 15 BTC at $35k. Selling 25 BTC under HIFO:- 15 BTC from the $35k purchase sold first
- 10 BTC from the $22k purchase sold next
TaxBit partnership
Anchorage Digital has partnered with TaxBit to provide wealth managers and end clients with required tax data, compliance features, and tax forms.Transaction types
| Type | Description |
|---|---|
| On-chain transactions | Asset movement on-chain. Not relevant to tax APIs. |
| Subaccount transactions | Asset movement on the wealth manager’s ledger at Anchorage Digital. |
| Tax transactions | Any transaction with a taxable event — these are the transactions in the tax API. |
types: DEPOSIT, TRADE, WITHDRAW.
Cost basis tracking
Cost basis is tracked automatically throughout the asset lifecycle. For in-kind deposits, the wealth manager and end client must supply the cost basis via API.subaccountId and customerId mapping
Each subaccountId maps 1:1 to a TaxBit “Account Owner ID” (which Anchorage maps to customerId). This provides:
- Accurate, segregated tracking — clear traceability between strategies, trades, and their cost-basis impact.
- Tax-loss harvesting flexibility — losses can be realized within individual accounts without affecting others.
Tax terminology
| Term | Description |
|---|---|
| Tax transaction | Data used by TaxBit to generate tax outputs. Differs from subaccount or on-chain transactions. |
| Gain/loss | Difference between sale price and cost basis. Reported as SHORT_TERM or LONG_TERM by tax year. |
| Inventory | Total quantity and cost basis of a specific asset type held by a subaccount, comprised of multiple tax lots. |
| Tax lot | A group of units acquired at the same time and cost basis. |
| Acquisition date | Date an individual gains control of an asset. Determines long-term vs. short-term holding period in the US. |
| Cost basis | Value of an asset at acquisition time; used to calculate gain/loss on disposal. |
| Cost basis method | HIFO (default) or LIFO/FIFO (configurable). Individual lot selection is on the TaxBit roadmap. |
| Missing cost basis | Occurs when transferring assets in-kind into a deposit wallet. Can be supplied via API. |
| Holding period | Duration an asset is held. Long-term (>1 year) receives preferential US tax treatment. |
| Realized gain/loss | Gains/losses from actual sale or disposition of an asset. |
| Unrealized gain/loss | Gains/losses from price fluctuation without disposal. |
Critical considerations
- Missing cost basis is
null, not0. - Default method is HIFO — configurable per wealth manager or per account.
- All tax data is at the subaccount level, regardless of account owners.
- Trade rounding (dust): Trades cannot always settle to full decimal precision. Rounded values are stored in the ledger and used for balancing, but full-precision quantities appear in trade confirmations and tax reporting — meaning tax data and ledger values may differ slightly by a small “dust” amount. This is an industry-wide issue with trade confirms vs. custody precision.
Supported tax forms
Anchorage Digital does not perform tax reporting on behalf of wealth managers or end clients, and does not issue tax forms directly. TaxBit generates and provides forms based on the data Anchorage Digital provides.
| Account type | Form | Description | Deadline | Status |
|---|---|---|---|---|
| Taxable | Cost-basis data | Proceeds and cost basis per transaction for Form 8949 and Schedule D. | Preferred by Feb 15 | Supported |
| Taxable | 1099-B | Proceeds from brokerage/trading transactions. | Jan 31 | Supported |
| Taxable | 1099-MISC | Miscellaneous income (staking rewards, services, mining). | Jan 31 | Coming soon |
| Non-taxable | 1099-R | Distributions from retirement accounts. | Jan 31 | Coming soon |
| Non-taxable | Form 5498 | IRA contribution reporting. | June 2 | Coming soon |
Integration steps
Sandbox tax testing may be limited due to the absence of a full trade → settlement lifecycle for mainnet assets.
Step 1: Review tax transactions
GET /v2/tax/transactions/{subaccountId} — Reference
Returns tax transaction data for a subaccount. Check for missing cost basis on deposits.
Step 2: Update missing cost basis
PATCH /v2/tax/transaction/{transactionId} — Reference
Only cost basis data can be updated. Transaction asset and quantity cannot be changed.
Step 3: View asset inventory
GET /v2/tax/inventory/{subaccountId}/{assetType} — Reference
Returns total quantity and all tax lots for a specific asset in a subaccount.
GET /v2/tax/summary/inventory/{subaccountId} — Reference
Returns inventory summary across all assets.
Step 4: Review cost basis and gains
GET /v2/tax/gains/summary/{subaccountId} — Reference
Returns combined cost basis, proceeds, and gains/losses for a subaccount and time range.
GET /v2/tax/gains/costbasis/{subaccountId} — Reference
Returns per-disposal gain/loss records broken down into short-term and long-term, with cost basis and proceeds.
Step 5: Fetch tax forms
GET /v2/tax/subaccounts/{subaccountId}/forms — Reference
Returns pre-signed download links for a subaccount’s tax forms. Links are time-limited.
GET /v2/tax/clients/{customerId}/forms — Reference
Returns forms for all subaccounts belonging to a customerId. Use customerId as affiliateId.

