How to Calculate ACB for Crypto in Canada

by | Apr 29, 2026 | Accounting

The single most common reason a Canadian crypto return gets reassessed by the CRA is wrong cost-basis math — and the math is wrong because most self-prepared filers either guess at adjusted cost base crypto Canada rules, copy a U.S.-style FIFO method that the CRA does not accept, or simply let their exchange’s “average cost” report stand without checking whether it correctly pools across wallets and respects the superficial loss rule. None of those approaches will hold up under the structured CARF data the CRA starts receiving on January 1, 2026.

This guide covers the adjusted cost base crypto Canada calculation end-to-end: the formula the CRA actually mandates, four worked examples with real numbers (multi-buy ACB pools, cross-exchange aggregation, the superficial loss rule, and crypto-to-crypto swaps), the seven mistakes we see most often when we take over crypto books from another preparer, and the tools that handle the math correctly so you don’t have to do it in a spreadsheet that breaks at 200 transactions.

If you haven’t read our companion piece on what changes January 1, 2026, start there: the Canadian Crypto Tax Guide 2026 covers CARF, the CRA reporting framework, and the broader compliance landscape this guide sits inside.


Table of Contents

  1. What ACB Means — and Why the CRA Mandates It
  2. The Adjusted Cost Base Formula in One Page
  3. Adjusted Cost Base Crypto Canada: A Five-Transaction Worked Example
  4. Cross-Exchange Pooling: All Your ETH Is One Pool
  5. How Fees Affect ACB: Gas, Network Fees, and Exchange Commissions
  6. The Superficial Loss Rule: How Wash Trades Get Denied
  7. Crypto-to-Crypto Trades: Computing Proceeds in CAD
  8. The Seven ACB Mistakes Canadian Crypto Investors Make
  9. Tools That Actually Handle ACB Correctly
  10. Frequently Asked Questions
  11. Get Your ACB Calculated by a Crypto Tax Specialist

What ACB Means — and Why the CRA Mandates It

Adjusted Cost Base is the Canadian tax-system term for what other countries call “cost basis” — the running, fees-included cost of a capital asset, expressed in Canadian dollars, that you subtract from your proceeds to figure out a capital gain or loss. The “adjusted” part of the name matters: the cost base is recalculated every time you acquire more of the same identical property, and certain events (like a denied superficial loss) can adjust it further upward.

What makes adjusted cost base crypto Canada rules distinctive is the identical-property pooling rule. Section 47 of the Income Tax Act treats all units of the same identical property as a single pool with a single average cost — meaning you cannot pick which specific units you sell to optimize your tax outcome. Every disposal disposes of an average-cost slice of the pool, regardless of which exchange or wallet the units physically came from.

The CRA explicitly excludes other cost-basis methods for crypto held as capital property:

  • FIFO (First-In, First-Out) — common in U.S. crypto reporting; not permitted for Canadian capital-property purposes
  • LIFO (Last-In, First-Out) — also not permitted for Canadian crypto capital-property reporting
  • HIFO (Highest-In, First-Out) — sometimes used in U.S. tax-loss harvesting; explicitly disallowed for Canadian capital-property purposes
  • Specific identification — the CRA’s position is that taxpayers cannot physically distinguish between identical units of crypto, so specific-identification claims are not accepted

If your crypto activity is on business account rather than capital account, inventory accounting rules apply instead — but those are a separate regime, and most retail and active-investor crypto activity in Canada is on capital account. We covered the capital-vs-business classification factors in the Crypto Tax Canada 2026 Guide; the rest of this article assumes capital-property treatment.


The Adjusted Cost Base Formula in One Page

The formula has two parts: the running pool calculation, and the disposal calculation.

Pool calculation (after each acquisition):

New ACB per unit = (Existing total cost in CAD + New acquisition cost in CAD including fees) ÷ (Existing units + New units acquired)

Disposal calculation (each time you sell, swap, spend, or gift):

Capital gain or loss = Proceeds in CAD − Disposal fees − (ACB per unit × units disposed)

After a disposal, the remaining pool’s ACB per unit stays the same; only the total cost and unit count drop proportionally. The ACB per unit only changes when you acquire more of the asset, when a denied superficial loss gets added to a re-acquired position, or when a return-of-capital-style adjustment applies.

Three things to keep in mind whenever you apply this formula:

  • Everything must be in CAD. If you bought ETH for USDT on a U.S. exchange, the CAD value of that USDT at the moment of trade is what enters the pool — not the USDT face value or the USD equivalent.
  • Fees on acquisition increase the cost base. Trading commissions, network gas, withdrawal fees that are part of the acquisition — all of it is added to the cost.
  • Fees on disposal reduce the proceeds. Don’t add disposal fees to ACB — they come off the proceeds line.

Adjusted Cost Base Crypto Canada: A Five-Transaction Worked Example

Below is a realistic running pool calculation for a Canadian investor named Priya, who buys and sells BTC on Newton over the course of 2025. Every transaction includes a small exchange fee. Priya is on capital account.

DateActionUnitsPrice/Unit (CAD)Fee (CAD)Pool After: Total Cost / Units / ACB per BTC
Jan 5Buy0.5 BTC$50,000$25$25,025 / 0.5 / $50,050
Mar 12Buy0.3 BTC$45,000$25$38,550 / 0.8 / $48,187.50
Jun 20Sell0.4 BTC$55,000$25$19,275 / 0.4 / $48,187.50
Sep 8Buy0.1 BTC$60,000$25$25,300 / 0.5 / $50,600
Dec 1Sell0.2 BTC$65,000$25$15,180 / 0.3 / $50,600

The two disposals produce two capital-gain calculations:

  • June 20 sale: Proceeds $22,000 − $25 fee = $21,975. ACB on 0.4 BTC = 0.4 × $48,187.50 = $19,275. Capital gain: $2,700.
  • December 1 sale: Proceeds $13,000 − $25 fee = $12,975. ACB on 0.2 BTC = 0.2 × $50,600 = $10,120. Capital gain: $2,855.

Total 2025 capital gain: $5,555. Half of that — $2,777.50 — is added to Priya’s taxable income on Schedule 3 of her 2025 T1 return. The remaining 0.3 BTC sits in the pool with an ACB of $50,600 per BTC ($15,180 total), which will be the starting point for her 2026 ACB math.

Notice what changes and what doesn’t. The September 8 acquisition raised the per-unit ACB from $48,187.50 to $50,600 because it was bought above the existing average. The two disposals didn’t change ACB per unit — only total cost and units in the pool. This is the running-average behaviour that defines adjusted cost base crypto Canada math.


Cross-Exchange Pooling: All Your ETH Is One Pool

Cryptocurrency tax accountant in Canada reviewing Bitcoin and Ethereum CRA reporting

The single biggest place self-prepared crypto returns go wrong is treating each exchange as its own cost-basis universe. The CRA does not. Identical property held across every exchange, custodial wallet, and self-custody address you control rolls into one pool with one running ACB.

Concretely: if you hold 1 ETH on Newton with an ACB of $4,005, 1 ETH on Coinbase with an ACB of $3,507, and 0.5 ETH on a Ledger wallet you transferred from Newton, the CRA’s view is that you hold 2.5 ETH in a single pool with a total cost of $7,512 and an ACB of $3,004.80 per ETH. When you sell 1 ETH on Coinbase for $4,500 (less $9 fee), the calculation is:

  • Proceeds: $4,500 − $9 = $4,491
  • ACB on 1 ETH (from the unified 2.5 ETH pool): $3,004.80
  • Capital gain: $4,491 − $3,004.80 = $1,486.20
  • Pool after sale: 1.5 ETH at $3,004.80 = $4,507.20 total cost

If Priya from the previous example had used the Coinbase exchange’s own gain reporting — which calculates against only the Coinbase-purchased ETH at $3,507 ACB — her reported gain would be $984, almost $500 less than the correct number. Multiply that across years of activity and dozens of identical-property pools, and the cumulative misstatement gets large enough to attract CRA attention once CARF data lands in 2027.

Wallet-to-wallet transfers between addresses you own are not taxable dispositions. The 0.5 ETH that moved from Newton to Ledger above generated no capital gain or loss — it just moved within the same unified pool. But you must keep records of those transfers, because in an audit the CRA will want to see that the transfers are genuinely between accounts you control, not sales to third parties masquerading as transfers.


How Fees Affect ACB: Gas, Network Fees, and Exchange Commissions

The fee landscape in crypto is multi-layered, and applying the right treatment to each fee category is where DIY filers most often get tripped up. Below is the treatment we use across every crypto engagement at BBA Tax.

Fee TypeWhen It OccursTax Treatment
Exchange trading commissionOn buyIncreases ACB of the acquired position
Exchange trading commissionOn sellReduces proceeds on disposal
Network/gas feeOn acquisition (e.g., DEX swap in)Increases ACB of the acquired token
Network/gas feeOn disposal (e.g., DEX swap out)Reduces proceeds on the disposed token
Network/gas feeOn transfer between own walletsTechnically a small disposition of the gas-paying token; track it but immaterial in practice
Withdrawal fee (CAD off-ramp)On fiat withdrawalGenerally not a capital event; deductible against income for business filers
Margin/borrowing interestThroughout position lifeDeductible against business income for business-account filers; generally not deductible for capital-account filers

The wallet-to-wallet gas case deserves a footnote. When you pay 0.002 ETH in gas to move tokens between your own wallets, you are technically disposing of 0.002 ETH at fair market value, with proceeds equal to the FMV of that gas (which is itself the ETH used). In a high-volume DeFi context this can produce hundreds of micro-dispositions per year. Specialized crypto tax tools handle this automatically; manual spreadsheets typically don’t, which is why every BBA Tax crypto engagement runs the underlying transaction data through Koinly, CoinTracking, or CoinLedger before any return is prepared.


The Superficial Loss Rule: How Wash Trades Get Denied

The superficial loss rule lives in section 54 of the Income Tax Act and prevents Canadian taxpayers from generating an artificial capital loss by selling a position at a loss and immediately buying back the same identical property. It applies to crypto held as capital property the same way it applies to stocks, and the consequences of triggering it are clearly defined.

The two conditions that trigger a superficial loss:

  • You (or an affiliated person — spouse, common-law partner, a controlled corporation, certain trusts) acquire identical property during the period from 30 calendar days before the sale through 30 calendar days after the sale, and
  • You (or that affiliated person) still own (or have a right to acquire) the substituted property at the end of the 30-day post-sale window.

If both conditions are met, the loss is denied — meaning you cannot use it to offset other capital gains in the year. The denied loss does not vanish, however: it is added to the ACB of the substituted property, which reduces a future capital gain (or increases a future capital loss) when you eventually dispose of that re-acquired position.

Worked example. Marc holds 1 ETH with an ACB of $4,000. On March 10, 2025, he sells the 1 ETH at $3,000 (after fees), generating a $1,000 capital loss. On March 25, 2025 — 15 days later — he buys 1 ETH back at $3,200. He still owns the re-acquired ETH at the end of the 30-day post-sale window.

  • Both superficial-loss conditions met → the $1,000 loss is denied for 2025.
  • The denied $1,000 is added to the ACB of the re-acquired ETH: $3,200 + $1,000 = $4,200 ACB.
  • If Marc later sells that 1 ETH for $5,500, his future gain is $5,500 − $4,200 = $1,300 (rather than the $2,300 it would have been without the denied-loss adjustment).

Two nuances worth knowing. First, “identical property” is interpreted broadly — the CRA may treat economically equivalent stablecoins (USDT vs. USDC) as identical for superficial-loss purposes, depending on facts and circumstances, and the rule is not avoided by buying back through a different wallet or exchange. Second, partial dispositions and partial re-acquisitions trigger a partial superficial loss, calculated under a specific CRA formula in Technical Interpretation 2004-0073011E5; you can claim the non-superficial portion of the loss while the matched portion is denied.

Note also that the superficial loss rule applies only to losses. Tax-loss harvesting in crypto requires staying outside the 30-day window or accepting that the loss will be added to the cost base of the re-acquired position rather than offsetting current-year gains.


Crypto-to-Crypto Trades: Computing Proceeds in CAD

A crypto-to-crypto swap — BTC for ETH, ETH for SOL, USDC for any token — is a taxable disposition in Canada. The asset you give up is treated as sold at fair market value in CAD at the moment of the trade, and the asset you receive is treated as acquired at the same CAD value (which becomes its starting ACB).

Worked example. On May 1, 2025, Aanya buys 1 BTC for $60,000 plus a $30 fee, giving her a 1 BTC pool with $60,030 ACB. On July 15, 2025, she swaps that 1 BTC for 15 ETH on a centralized exchange. At the moment of the trade, BTC trades at $65,000 CAD. The disposition math:

  • Deemed proceeds on disposal of 1 BTC: $65,000 (FMV in CAD at the moment of swap)
  • ACB of the 1 BTC: $60,030
  • Capital gain on the BTC disposition: $65,000 − $60,030 = $4,970
  • Acquisition of 15 ETH: total ACB = $65,000 (the deemed proceeds become the new pool’s cost basis); per-unit ACB = $65,000 ÷ 15 = $4,333.33

Two important details. First, the CRA expects you to use a reasonable, consistent valuation method for FMV — an average of high/low/open/close from major Canadian exchanges, or the same exchange you transacted on. Document your method and use it consistently. Second, the gain on the disposed asset is realized immediately, even though you didn’t end up with any CAD in your bank account. Many active DeFi traders find themselves with five-figure capital gains on paper but no CAD liquidity to pay the resulting tax — which is why active traders should reserve a portion of every gain in CAD as it accrues.

The same principle applies to spending crypto on goods or services — that’s also a barter-style disposition at FMV — and to gifting crypto to a non-spouse, which triggers a deemed disposition at FMV in the giver’s hands.


The Seven ACB Mistakes Canadian Crypto Investors Make

The pattern of errors we see when taking over crypto books from another preparer (or from a client doing it themselves) is remarkably consistent. The seven most common, ranked by how often they show up:

  1. Using FIFO instead of average-cost ACB. Imported from U.S. tax software defaults or copied from foreign exchange reports. Material at scale — can shift gains by 10% to 30% on volatile holdings.
  2. Not pooling across exchanges and wallets. Treating Newton-bought BTC and Coinbase-bought BTC as separate cost-basis universes. The CRA pools all identical property regardless of where it sits.
  3. Forgetting that crypto-to-crypto swaps are dispositions. “I didn’t cash out, so I didn’t have a tax event” is a common reasoning error. Swaps are taxable in CAD at FMV at the moment of trade.
  4. Ignoring DeFi gas fees in ACB calculations. Each gas-paying transaction is a micro-disposition of the gas token. In high-volume DeFi activity these add up to material amounts and need to be reflected in the pool math.
  5. Misapplying the superficial loss rule. Either denying a loss that wasn’t actually superficial (because there’s no re-acquisition in the 30-day window), or claiming a loss that was superficial and didn’t get added to the cost base of the re-acquired position.
  6. Not tracking ACB at the time of every transaction. Reconstructing ACB pools two years after the fact from incomplete CSV exports is several times more expensive than monthly bookkeeping done in real time, and the audit trail is meaningfully weaker.
  7. Treating staking rewards, mining rewards, and airdrops as zero-cost-basis dispositions. These are income at FMV on receipt, and that FMV becomes the cost basis for future disposal. We covered the protocol-level mechanics in our companion guide on how DeFi, NFTs, mining, and staking are each taxed in Canada.

Three of these seven (FIFO use, missing cross-exchange pooling, skipped DeFi fees) are exactly the patterns CARF data will surface immediately when CRA matches XML reports against filed returns starting in 2027. Cleaning them up before the 2025 return is filed — rather than during the 2026 reassessment cycle — is materially cheaper.


Tools That Actually Handle ACB Correctly

Three crypto tax tools handle the Canadian adjusted cost base method correctly out of the box, including cross-exchange pooling and the superficial loss rule. These are the three we use across every crypto engagement at BBA Tax — selected after testing roughly a dozen alternatives over the years.

ToolStrengthBest For
KoinlyCleanest UI, broad exchange support, native Canadian ACB and superficial-loss handling, generates Schedule 3 summary directlyMost retail Canadian crypto investors with activity across major centralized exchanges and a few self-custody wallets
CoinTrackingDeepest historical pricing data, advanced reporting, handles obscure altcoins and older blockchain history wellLong-time holders with messy historical data and traders with broad altcoin exposure
CoinLedgerStrong DeFi protocol coverage, particularly for newer L2 chains and complex liquidity-pool transactionsActive DeFi participants with high transaction volume across Ethereum L2s and newer protocols

None of the three is a substitute for human review. Each requires that you classify ambiguous transactions correctly (is this a swap or a transfer? is this airdrop income or a zero-cost-basis acquisition?), reconcile flagged items, and verify the output against your filing position. The tool gets the math right; you still have to get the inputs right.

For Canadian filers we typically integrate Koinly with QuickBooks Online — Koinly handles the ACB pool and superficial-loss calculations, the export feeds into QuickBooks for ongoing bookkeeping and annual financial statements, and the Schedule 3 summary feeds directly into the T1 return. This stack scales cleanly from a few hundred transactions per year up to high-volume active traders.


Frequently Asked Questions

Is FIFO ever acceptable for adjusted cost base crypto Canada calculations?

For capital-property crypto activity, no. The CRA mandates the average-cost ACB method on identical property held as capital property, and FIFO is not an accepted alternative. FIFO can appear in some business-account inventory contexts, but those are governed by separate inventory-accounting rules and are not the framework that applies to most retail and active-investor crypto holdings.

How do I calculate ACB for crypto received as a staking reward, airdrop, or fork?

Staking and mining rewards are income at fair market value in CAD at the moment of receipt, and that FMV becomes the cost basis of the received tokens for future disposal calculations. Airdrops and hard-fork tokens are typically treated by the CRA as having a zero cost basis on receipt — the full proceeds become the capital gain when you eventually dispose. The income-vs-zero-cost-basis split is one of the most fact-specific corners of Canadian crypto tax, and we cover the protocol mechanics in detail in our DeFi, NFT, mining, and staking guide.

Does the superficial loss rule apply if I sell on Newton and buy back on Binance?

Yes. The superficial loss rule applies to acquisition by you or any affiliated person, regardless of which platform the re-acquisition happens on. Buying back the same crypto on a different exchange — or from a different wallet — does not avoid the rule. The rule is about the identity of the property and the timing window, not about the venue.

Are stablecoins like USDT and USDC treated as identical property?

The CRA’s general guidance on “identical property” looks at substantive economic equivalence, and two USD-pegged stablecoins issued by different issuers may or may not be treated as identical depending on facts. The conservative position — and the one we apply in practice — is that two stablecoins of the same currency peg are likely identical property for superficial-loss purposes, even if issued by different entities. If your fact pattern depends on the distinction, document the reasoning and consider the conservative treatment.

What if I can’t reconstruct ACB from years ago?

The CRA expects you to maintain records of every transaction with date, asset, units, CAD value, and fees. If those records are genuinely lost, you have to reconstruct ACB to the best of your ability using exchange transaction histories, blockchain explorers, and historical CAD pricing data — and document your methodology so it is defensible. If the gap is substantial and you suspect prior-year underreporting may result, the Voluntary Disclosures Program is the appropriate vehicle to clean it up before CARF data flows in 2027. We described the VDP timing window in the Crypto Tax Canada 2026 guide.

Do wallet-to-wallet transfers between my own addresses change ACB?

No, with one minor footnote. Transfers between wallets you own are not taxable dispositions — they are internal movements of property within a unified pool, and the per-unit ACB is unchanged. The footnote: if you pay gas in the same chain’s native token to execute the transfer, that gas payment is technically a small disposition of the gas token at FMV. In high-volume DeFi activity these gas-payment dispositions need to be tracked; for occasional self-custody transfers they are usually immaterial but should still be in your records.

Can I have a different ACB for crypto held inside a corporation versus crypto I hold personally?

Yes. A corporation is a separate legal taxpayer, so its crypto holdings sit in a separate ACB pool from your personal holdings. Identical property pooling applies within each legal entity but not across them. This is one of the structural reasons some active crypto traders incorporate — see our cryptocurrency tax service overview for how Section 85 rollovers can transfer existing personal holdings into a new corporation tax-free.


Get Your ACB Calculated by a Crypto Tax Specialist

Adjusted cost base crypto Canada calculations get expensive to fix in arrears, and they get materially harder to defend in a CARF-era CRA reassessment if the methodology was wrong from the start. Every BBA Tax crypto engagement begins with a full ACB reconciliation across every wallet and exchange in scope, applies cross-exchange pooling and superficial-loss treatment correctly, and produces a defensible audit trail that maps directly to Schedule 3, T2125, and T1135 as appropriate for your situation.

At BBA Tax, Karim Bitar and our team work with HODLers, day traders, miners, stakers, NFT collectors, DeFi yield farmers, and incorporated crypto operations across Canada. We integrate Koinly, CoinTracking, and CoinLedger with QuickBooks Online so the ACB math is automated, the Schedule 3 output is clean, and the same data feeds your monthly bookkeeping, annual T2 (if incorporated), and any audit response that may be needed.

If you’d rather not run the math yourself — or want a second opinion on what your existing tool is producing — get an instant quote for an ACB reconciliation engagement, or read our full cryptocurrency tax service overview.