Crypto bookkeeping fails in a predictable way: transactions get recorded when the exchange statement arrives at filing time, using whatever value the statement shows for the cash-out, instead of being tracked transaction by transaction as they happen. By the time a contractor with any meaningful crypto activity sits down to file, reconstructing adjusted cost base from platform exports alone is often no longer possible with confidence.
This guide covers the record-keeping discipline itself. For how crypto income is classified and taxed, see Crypto, Tokens, and Digital Asset Income for Tech Consultants, and for the invoicing side of crypto payments, see Receiving Cryptocurrency as Payment for IT Consulting Services.
Why Exchange Statements Are Not Enough
An exchange statement shows what happened on that exchange: deposits, trades, and withdrawals. It does not know what a token’s cost base was before it arrived, if it was transferred in from another wallet or exchange, and it does not know what happened to it after it left. A contractor who received crypto as payment on one platform, moved it to a personal wallet, then traded part of it on a second exchange has three separate partial records, none of which reconstructs the full ACB history on its own. Relying on year-end statements alone, rather than a running ledger, is the single most common reason crypto files require a slow, expensive reconstruction at filing time.
Every Transaction Type Needs Its Own Entry
- Receipt as payment. Date, fair market value in CAD, transaction type, client or source, and the resulting ACB for the units received.
- Purchase on an exchange. Date, CAD cost including fees, and the resulting ACB.
- Crypto-to-crypto trade. A disposition of the first asset at fair market value on the trade date, and an acquisition of the second asset at that same value. This is a taxable event, not a deferred exchange, and needs to be recorded as both a sale and a purchase.
- Disposition to CAD. Date, proceeds, and the ACB of the units disposed of, to calculate the gain or loss.
- Wallet-to-wallet transfer. Not a disposition, since beneficial ownership does not change, but still needs a record showing which wallet now holds which portion of the ACB history, so a later disposition from that wallet can be valued correctly.
- Mining or staking reward. Fair market value in CAD on the date received, which becomes both the income amount and the ACB of the units received.
Adjusted Cost Base: Averaging, Not Lot Selection
Where a contractor holds multiple units of the same crypto acquired at different times and prices, CRA generally requires the adjusted cost base to be calculated as an average across all identical units held, similar to the identical-property rules that apply to shares. This means a disposition of part of a holding uses the pooled average cost, not a specific-lot method chosen to produce a favourable result. A ledger that tracks each acquisition with its date, quantity, and CAD cost makes this average straightforward to calculate; reconstructing it after multiple exchanges and transfers is considerably harder.
Setting Up QuickBooks Online for Crypto Holdings
Set up a distinct asset account for each crypto held, rather than one combined account, since each token has its own ACB history and needs to be tracked separately. Record each receipt, purchase, trade, and disposition as it happens, with the fair-market-value support, a screenshot, exchange export, or rate source, attached to the entry as a memo or linked document. Batch-entering a quarter or a year of crypto activity from an exchange statement at close tends to lose the transaction-level detail that supports the valuation on review. This follows the same discipline covered in the monthly close guide, applied to an asset type that changes value daily.
Common Record-Keeping Failures
- Recording the year-end cash-out value instead of the fair market value on the date each transaction actually occurred
- Treating a crypto-to-crypto trade as a non-event because no cash changed hands
- Losing the cost base connection when crypto moves between wallets or exchanges before a later sale
- Using a different pricing source for different entries, so the ACB ledger does not reconcile with the income or GST/HST figures
- No separate tracking by crypto type, so ACB for one token gets mixed with another
- Waiting until filing time to pull exchange statements, after price history and transaction context are harder to source
Rebuilding a File That Is Already Behind
A contractor with a year or more of unrecorded crypto activity is not unusual. The rebuild starts the same way any bookkeeping catch-up does: establish the last clean period, then work forward transaction by transaction using exchange exports, wallet histories, and blockchain explorers as the source documents, applying fair market value at each transaction date rather than a single year-end estimate. See the behind on books guide for the general sequencing this follows; crypto activity adds the fair-market-value sourcing step to each transaction rather than changing the overall approach.