Understanding Transaction Types
What Are Transaction Types?
Section titled “What Are Transaction Types?”PrivateACB automatically recognizes 60+ different transaction types from exchanges, wallets, and DeFi platforms. Each transaction type describes what happened (bought crypto, received rewards, swapped tokens, etc.) and determines how it’s taxed.
What you’ll learn:
- The transaction types PrivateACB recognizes
- How transaction types determine tax treatment
- Why you never need to manually categorize
Why Transaction Types Matter
Section titled “Why Transaction Types Matter”Tax treatment depends on what happened:
- Buying crypto creates an acquisition (affects cost basis)
- Selling crypto triggers a capital gain or loss
- Staking rewards are taxable income
- Transfers between your wallets are non-taxable
PrivateACB handles this automatically. When you import transactions, each type is classified into the correct tax category. No dropdown menus. No manual tagging.
The Five Tax Categories
Section titled “The Five Tax Categories”All transaction types map to 5 tax categories:
| Category | Tax Treatment | Common Examples |
|---|---|---|
| Exchange | Capital gains/losses | Buys, sells, trades |
| Income | Taxable income at fair market value | Staking, mining, airdrops, interest |
| Transfer | Non-taxable (tracking only) | Wallet-to-wallet transfers, deposits, withdrawals |
| DeFi | Capital gains (varies by context) | Swaps, liquidity operations, lending |
| Ignored | Excluded from calculations | Spam, failed transactions, dust |
How it works:
- Import CSV file with transactions
- Classification engine reads each transaction type
- Automatically maps to the correct tax category
- Tax calculations apply appropriate rules
- Reports show accurate results
Zero manual work.
Transaction Types by Category
Section titled “Transaction Types by Category”Exchange / Trading
Section titled “Exchange / Trading”Create acquisitions (buys) or dispositions (sells) for capital gains calculations.
| Type | Description |
|---|---|
buy / purchase | Purchase cryptocurrency |
sell / sale | Sell cryptocurrency |
trade | Exchange one crypto for another |
limit_buy / market_buy | Limit or market buy order |
limit_sell / market_sell | Limit or market sell order |
spend | Crypto spent on a real-world purchase (Kraken-style) — treated as a disposition at FMV |
Income
Section titled “Income”Generate taxable income at fair market value on the date received. These become acquisitions in your cost basis at FMV.
| Type | Description |
|---|---|
mining / mined | Mining rewards (proof-of-work) |
staking / staked | Staking rewards (proof-of-stake) |
reward / rewards | General rewards |
airdrop | Free tokens from an airdrop |
fork / hard_fork | Tokens from a blockchain fork |
interest | Interest earned |
dividend | Dividend distributions |
cashback / cash_back | Cashback rewards |
bonus | Promotional bonuses |
referral | Referral rewards |
yield_farming / yield | Yield farming rewards |
realized_pnl / pnl | Realized profit/loss (from futures, margin, etc.) |
Income reporting by jurisdiction:
All income types default to Passive Income. You can override the reporting form on each jurisdiction’s Income Report via the form selector dropdown. Your choice persists across sessions.
| Jurisdiction | Default Form | Override Options |
|---|---|---|
| Canada (CRA) | Line 13000 (Other Income) | T2125 (Business), T4 (Employment), Line 13000 (Other) |
| US (IRS) | Schedule 1 (Other Income) | Schedule C (Business), Schedule 1 (Other) |
| Australia (ATO) | Other Income | Personal Services, Business Income, Other |
| UK (HMRC) | Miscellaneous Income | Trading Income, Miscellaneous Income |
Transfer
Section titled “Transfer”Non-taxable movements between wallets you control.
| Type | Description |
|---|---|
deposit | Deposit to exchange |
withdrawal / withdraw | Withdrawal from exchange |
transfer_in / transferin | Incoming transfer |
transfer_out / transferout | Outgoing transfer |
send / sent | Send to another wallet |
receive / received | Receive from another wallet |
Important: Transfers between your own wallets are non-taxable. However, sending crypto to someone else as payment would be classified as a disposition.
When a transfer-in has no matching cost basis
Section titled “When a transfer-in has no matching cost basis”If a deposit or transfer-in has no matching purchase event in your imports — for example, an external wallet transfer from a wallet you didn’t import, or a fork credit credited directly to your exchange account — PrivateACB blocks the calculation at preflight rather than guessing the cost basis.
You have three resolution paths:
- Edit your CSV to add a Purchase row representing the original acquisition, then re-import.
- Re-import and reclassify the deposit as Income in Step 3. The receipt enters your pool at the receipt-date market price as the cost basis.
- Exclude the asset from calculations.
The reclassify-as-Income path has tax meaning: the asset enters the pool at fair market value on the receipt date, with cost basis equal to that day’s market price. CRA, IRS, ATO, and HMRC each treat this kind of receipt as ordinary income at FMV under their respective income-tax rules — confirm the specifics with a tax professional.
When PrivateACB recognizes a known fork or airdrop event in its registry (currently the post-Merge ETHW airdrop on September 15, 2022, with more entries to come), it also surfaces a heuristic source hint in the preflight popover (e.g., “Looks like an airdrop”) to help you remember where the units came from.
See the Preflight Errors Guide for the full walkthrough.
DeFi (5 types)
Section titled “DeFi (5 types)”Decentralized finance operations, generally treated as capital gains events.
| Type | Description |
|---|---|
swap | DEX token swap |
liquidity_add / add_liquidity | Add liquidity to pool |
liquidity_remove / remove_liquidity | Remove liquidity from pool |
lending / lend | Lend crypto to protocol |
borrowing / borrow | Borrow crypto from protocol |
Other (5 types)
Section titled “Other (5 types)”Special situations and edge cases.
| Type | Description |
|---|---|
fee / fees / gas | Transaction or network fees |
lost / loss | Lost cryptocurrency (e.g., lost wallet) |
stolen | Stolen cryptocurrency |
gift | Gift of cryptocurrency |
donation / donate | Charitable donation |
Unknown
Section titled “Unknown”| Type | Description |
|---|---|
unknown | Unrecognized type (flagged for review) |
Unknown types are flagged during import. You can review and reclassify them in the Classification Review step of the import process, or later in the Data Viewer.
Stablecoin Normalization
Section titled “Stablecoin Normalization”PrivateACB normalizes the major fiat-pegged stablecoins to USD at import time:
| Stablecoin | Treated as |
|---|---|
| USDT (Tether) | USD |
| USDC (USD Coin) | USD |
| BUSD (Binance USD) | USD |
| DAI | USD |
| TUSD (TrueUSD) | USD |
| FDUSD (First Digital USD) | USD |
This applies to the asset side of trades AND to fees denominated in those stablecoins. After import, the database stores USD as the currency on those rows — the original symbol from your CSV is preserved in the audit trail but doesn’t affect calculation.
Why: all six stablecoins target a 1:1 peg to USD, and tax authorities don’t expect separate accounting for “USDT vs USD” in cost-basis calculations. Normalization simplifies the data model and matches how exchanges themselves treat these instruments. If a stablecoin meaningfully de-pegs (as happened to UST during the Terra collapse), PrivateACB does not automatically treat the de-pegged asset as USD — UST is not on the normalized list, and any future de-pegging stablecoin would need to be removed from the list before normalization continues.
Subtype hints from exchanges
Section titled “Subtype hints from exchanges”Some exchanges encode additional information beyond the transaction type. PrivateACB reads these subtypes during import to make better classification decisions:
| Exchange | Subtype | What it tells PrivateACB |
|---|---|---|
| Kraken | spotfromfutures | The receipt is from your futures account being credited to spot — typically a fork credit or airdropped asset (e.g., ETHW post-Merge). Used as a heuristic hint when the receipt has no matching cost basis. |
| Kraken | tradingfee / referralfee | Distinguishes fee rows in the Ledger CSV from actual transactions. |
The list grows as new exchange formats are added; Kraken is currently the most fully integrated.
How Classification Works
Section titled “How Classification Works”When you import a CSV file, PrivateACB’s classification engine:
- Reads the transaction type from each row in your CSV
- Normalizes the text — handles variations in case and naming (e.g., “Staking Reward”, “STAKING”, “staked” all map to
staking) - Maps to a tax category — Assigns the correct class (Exchange, Income, Transfer, DeFi, or Ignored)
- Stores both values — The specific type (e.g.,
staking) and the class (e.g.,income) are saved to your database
During import, you have the opportunity to review and override classifications in the Classification Review step. User overrides are remembered for future imports from the same source.
The result: Tax calculations automatically apply the correct rules based on each transaction’s category. Income types create taxable events at fair market value. Exchange types trigger capital gains calculations. Transfer types track holdings without tax impact.
Frequently Asked Questions
Section titled “Frequently Asked Questions”What if my platform uses different terminology?
Section titled “What if my platform uses different terminology?”The classification engine handles variations automatically. “Earn” maps to “reward”, “Purchase” maps to “buy”, “Staking Reward” maps to “staking”, etc. Case doesn’t matter.
Can I override a classification?
Section titled “Can I override a classification?”Yes, in two ways:
- During import — The Classification Review step lets you reclassify types before they’re saved
- After import — Edit individual transactions in the Data Viewer tab
Do I need to memorize all the types?
Section titled “Do I need to memorize all the types?”No. The classification engine handles everything automatically. You only need to understand the 5 tax categories when reviewing reports.
What if a type is “unknown”?
Section titled “What if a type is “unknown”?”Unknown types are flagged during import validation. You can reclassify them during the import’s Classification Review step, or edit them later in the Data Viewer.
How are DeFi swaps taxed?
Section titled “How are DeFi swaps taxed?”Token swaps are treated as dispositions of one asset and acquisitions of another — creating a taxable event. The capital gain or loss is calculated based on the cost basis of the disposed asset.
Are transfers between my own wallets taxable?
Section titled “Are transfers between my own wallets taxable?”No. Transfers between wallets you control are non-taxable movements. PrivateACB tracks the transfer for inventory purposes but does not create a tax event.
Summary
Section titled “Summary”60+ transaction types cover:
- All major exchanges and platforms
- DeFi protocols (swaps, liquidity, lending)
- Staking, mining, and rewards
- Wallet transfers
- Special situations (gifts, losses, donations)
Automatic classification means:
- Zero manual categorization
- Tax-accurate from import to reports
- Handles complex portfolios effortlessly
Just import your data. PrivateACB handles the rest.
Related guides:
- Import Flow Guide — How to import transaction data
- Classification Review Guide — Reviewing and overriding classifications
- Canadian ACB Calculation Guide
- US Tax Calculation Guide
Last Updated: May 2026 PrivateACB Version: 2.8.1