How I Figured Out My Crypto Taxes in Toronto Without Losing My Mind

No time to read?
Get a summary

My Late-Night Confrontation with the CRA Crypto Reality

It was a freezing February night in my drafty Toronto apartment, and I was sitting at my kitchen table surrounded by the chaos of my own financial negligence. Printed CSV files from Newton and Shakepay were scattered everywhere, my laptop screen glowed with half-finished spreadsheets, and a lukewarm Tim Hortons double-double sat cooling beside me. I had been staring at my transaction history for three hours, trying to match up buy orders with sell orders, and nothing was adding up.

The cold sweat I felt had nothing to do with the February snowstorm outside my window. It was pure panic. I had spent years buying and selling cryptocurrency on Canadian exchanges, making small trades, receiving rewards from Shakepay’s daily “Shaking Sats,” and I suddenly realized I had absolutely no idea how to report any of it to the CRA. Was I going to owe thousands of dollars in taxes I hadn’t anticipated?

I knew I couldn’t ignore this anymore. The tax deadline was creeping closer, and I didn’t have the money to hire an accountant, so I decided to figure it out myself. I spent that winter doing what I do best-diving into research mode and learning through trial and error. I read through official Canada.ca pages until my eyes crossed, I called the CRA general inquiries line and waited on hold for nearly two hours listening to classical hold music, and I spent countless nights reading through Reddit threads on r/PersonalFinanceCanada where other regular GTA residents were asking the exact same questions I was asking.

Here is what I learned. I am not a CPA, accountant, or tax lawyer-just a regular person in Toronto who loves figuring things out on my own. Everything in this article is based on my personal experience and my own research. If you have a complex portfolio or are facing an audit, you absolutely need to speak to a professional. But if you are a DIY person like me who wants to understand the basics, I hope my journey helps you avoid some of the mistakes I made.

What I Learned

  • Every single trade, swap, or use of cryptocurrency is a taxable barter transaction in the eyes of the CRA. Swapping Ethereum for Solana counts. Using Bitcoin to buy a coffee counts. Gifting crypto to a friend counts.
  • Canada uses the Average Cost Method (ACB) to calculate the cost basis of identical tokens. You cannot use FIFO, LIFO, or cherry-picking. Every purchase gets pooled into a rolling average.
  • The T1135 Foreign Income Verification Statement is triggered if you hold foreign property with a cost basis exceeding $100,000 CAD at any point during the tax year. Late penalties are $25 per day up to $2,500 per year.
  • Profits are taxed either as Capital Gains (50% of the gain is taxable under 2026 rules) or as Business Income (100% of the profit is taxable). The CRA decides based on your trading frequency, holding periods, knowledge, and use of leverage.
  • If you sell cryptocurrency at a loss and buy the same token back within 30 days (before or after the sale), the Superficial Loss Rule denies your tax loss and adds it to the cost basis of the new purchase.
  • In Canada, holding cryptocurrency in a Tax-Free Savings Account (TFSA) is only possible through registered ETFs that hold Bitcoin or Ethereum. You cannot directly hold crypto coins in a TFSA-they have to be in a registered product.

The Taxman’s Tracking: How I Discovered the CRA Sees My Crypto

One of the biggest shocks in my research was learning that the CRA does not treat cryptocurrency like a secret asset you can hide in the dark corners of the internet. The CRA views cryptocurrency as a commodity, plain and simple. This distinction matters enormously because it means every single exchange of crypto for fiat currency, every swap of one coin for another, and even every small transaction is considered a barter transaction.

When I realized that using my Bitcoin to buy a coffee at a Queen West café was technically the same as trading one stock for another in my brokerage account, it hit me hard. That means the CRA expects me to calculate the fair market value in Canadian dollars at the exact moment of that transaction and report it as a capital gain or loss. I had made hundreds of small trades over the years without tracking a single one of them properly.

What really worried me was learning that the CRA actively tracks cryptocurrency transactions. They have used court orders to obtain historical transaction data directly from registered Canadian exchanges like Shakepay, Bitbuy, and Newton. This is not speculation-it is a documented practice. The CRA is essentially doing what law enforcement does with banking records. If you have an account with a major Canadian exchange, assume the CRA already has access to your transaction history or can get it with minimal effort. The idea that crypto provides anonymity from Canadian tax authorities is a complete myth.

I compared it to how the TTC tracks my Presto card when I load it with money and ride the subway from my apartment to downtown. Every transaction is logged, every movement is recorded, and there is a clear audit trail. Cryptocurrency on Canadian exchanges works exactly the same way. Even if I move my coins to a personal hardware wallet in my desk drawer, my initial purchase and the purchase price are already in the CRA’s sights if I bought them on a registered platform.

The Big Divide: My Struggle Between Capital Gains and Business Income

One of the most stressful discoveries I made was learning that the same cryptocurrency transaction can be taxed in two completely different ways depending on how the CRA classifies my activity. The difference between Capital Gains taxation and Business Income taxation is absolutely massive.

If the CRA classifies my crypto activity as investment income (Capital Gains), then only 50% of my profit is added to my taxable income under 2026 rules. If I made $10,000 in gains, only $5,000 gets taxed at my marginal rate. But if the CRA classifies my activity as Business Income, then 100% of my profit is taxable. That same $10,000 is fully added to my taxable income. The difference in taxes owed can easily be thousands of dollars.

So how does the CRA decide? I learned that they look at four main factors: the frequency of my transactions, the length of time I hold assets, how much knowledge and expertise I demonstrate, and whether I use debt or margin to amplify my returns. After reading through dozens of CRA rulings and community discussions, I sat down and honestly evaluated my own behavior.

I created two profiles to help myself think about this clearly. Sarah from High Park bought Bitcoin and Ethereum years ago and held them through market cycles without constantly trading. She did not use margin, she did not spend hours every day analyzing charts, and she had a full-time job outside of crypto. Sarah would almost certainly be classified as an investor, with her gains taxed as capital gains. On the other hand, Dave from CityPlace worked from his small condo, made dozens of trades every month using leverage and margin, spent his days glued to exchange charts, and treated crypto like his primary income source. Dave would almost certainly be classified as running a crypto trading business, with his gains taxed as business income at 100%.

I had to be honest with myself about which category I actually fell into. I made trades regularly but not daily. I held some coins for years and some for weeks. I did not use margin or leverage. My income came from my day job, not from crypto. Based on this analysis, I felt confident that my activity would be classified as capital gains rather than business income. But I also knew I had to be prepared to defend that classification with my transaction records if the CRA ever asked.

The Math That Hurt: My Battles with ACB and Superficial Losses

Learning that Canada uses the Average Cost Method (ACB) for calculating the cost basis of cryptocurrency was where my personal spreadsheet nightmare truly began. I could not use First-In-First-Out (FIFO) or Last-In-First-Out (LIFO) like American taxpayers can. I had to calculate a rolling average cost for every single token I owned.

Let me walk through a simple example that nearly broke my brain at first. Imagine I bought 1 Bitcoin when it was worth $30,000 CAD. My cost basis was $30,000. Then, a few months later, I bought another 1 Bitcoin when it was worth $40,000 CAD. Now I own 2 Bitcoin with a total cost of $70,000. My average cost per Bitcoin is now $35,000, not the $30,000 or $40,000 that I paid. Every single new purchase changes the average cost of all my holdings of that identical asset.

Now imagine I sell 1 Bitcoin for $45,000. My capital gain is not $15,000 (the difference between $45,000 and the original $30,000 purchase price). My capital gain is $10,000, because I have to use my average cost of $35,000. This was a major realization for me. I could not cherry-pick which Bitcoin I was selling or strategically pair high-cost purchases with low-price sales. The CRA forces me to use the blended average cost method, period.

The truly painful part came when I discovered the Superficial Loss Rule. It was February 2024, and the crypto market had taken a brutal dip. I had bought some altcoins at high prices, and they were down 60% or more. I panicked and sold them to claim a tax loss that I planned to use against my Bitcoin gains. I felt smart. I thought I had just harvested a perfect tax loss to reduce my tax bill.

Then, about two weeks later, the market bounced back and I got FOMO (fear of missing out). I bought those same altcoins back because I thought I had timed the bottom perfectly. I felt like a genius for a few hours. Then I read about the Superficial Loss Rule, and my stomach dropped.

The rule is crystal clear: if you sell an asset at a loss and buy the same asset back within 30 days (30 days before the sale or 30 days after the sale), the CRA denies your tax loss completely. The loss does not disappear-it gets added to the cost basis of the new purchase. So instead of claiming a $6,000 tax loss, my new Bitcoin purchase now had a cost basis that was $6,000 higher than it should have been. I had accidentally locked in my loss for years, and it would only benefit me when I eventually sold that new purchase.

This mistake cost me thousands of dollars in future taxes. I learned the hard way that if you are going to harvest tax losses, you need to stay completely out of that asset for at least 31 days. No exceptions, no excuses, no FOMO allowed.

The T1135 Trap: How I Avoided the Foreign Property Reporting Pitfall

One of the most confusing requirements I encountered was the T1135 Foreign Income Verification Statement. I spent weeks trying to figure out if I even needed to file this form, and I made several mistakes along the way before finally getting clarity.

The rule is straightforward in theory: if you hold foreign property with a cost basis exceeding $100,000 CAD at any point during the tax year, you must file a T1135 form with your tax return. The penalties for late filing are $25 per day, with a maximum penalty of $2,500 per year. This is serious money.

But here is where I got confused. What counts as foreign property? I held Bitcoin and Ethereum. Bitcoin and Ethereum are not issued by any government, so are they foreign property? I also held some cryptocurrency on Coinbase and Binance, which are foreign exchanges. Does that make them foreign property? Or does foreign property only apply to traditional assets like stocks, bonds, or real estate held in other countries?

I spent hours reading through CRA documentation and eventually found clarification. Cryptocurrency held on foreign exchanges (like Coinbase or Binance) is considered foreign property. Cryptocurrency held on Canadian exchanges (like Shakepay or Newton) is not considered foreign property. My Bitcoin and Ethereum stored on a personal hardware wallet in Canada are also not considered foreign property because I own them outright, not through a foreign intermediary.

I kept the majority of my holdings on Canadian exchanges and in my hardware wallet stored in my desk drawer in my Liberty Village apartment. My total holdings never exceeded $100,000 CAD in cost basis, so I did not need to file the T1135. But if I ever decide to hold significant amounts on foreign platforms, I will need to watch that threshold carefully. Missing a T1135 filing could cost me $2,500 in penalties per year of non-compliance, not including the actual taxes I would owe.

How I Handled Local Exchanges Like Shakepay and Newton

My primary exchanges were Shakepay and Newton, both Canadian platforms that I trusted to keep my activity documented and CRA-compliant. But both platforms presented their own unique tax accounting challenges that I had to work through manually.

Shakepay was the source of one of my earliest tax confusions. I earned Bitcoin rewards from Shakepay’s “Shaking Sats” feature, where I could shake my phone daily to earn small amounts of Bitcoin. I treated this like free money at first, but I quickly learned that the CRA treats these rewards as income at the moment of receipt. The fair market value of the Bitcoin on the day I received it is my income for that day.

If I earned 0.0001 Bitcoin on a day when Bitcoin was trading at $40,000, that day’s reward was worth $4 of income. I had to track every single daily reward and calculate its value in Canadian dollars. For someone like me who shook my phone almost every day for two years, this created hundreds of tiny taxable income events.

What also confused me was the Shakepay spread. When you buy or sell on Shakepay, there is a spread built into the price that compensates Shakepay for their service. I initially thought I could deduct this spread as a transaction cost, similar to a brokerage commission. But I learned that the spread is not deductible-it becomes part of my acquisition cost (ACB) for the Bitcoin I purchased. If I bought Bitcoin with a 1% spread, that 1% is locked into my cost basis, not a separate deduction.

Newton presented a different challenge that I almost missed entirely. When I withdrew Bitcoin from Newton to my personal wallet, Newton charged me a network fee. I initially recorded this as a simple expense, but then I realized something. Newton was paying that network fee by sending me less Bitcoin than I requested. This meant the fee represented a disposition of cryptocurrency-I was selling a tiny amount of Bitcoin to cover the network cost.

That seemingly small withdrawal fee had to be calculated as a capital gain or loss. If I withdrew $100 worth of Bitcoin and Newton charged me a $2 network fee in Bitcoin, I needed to calculate the gain or loss on that $2 worth of Bitcoin based on my ACB. For someone making dozens of withdrawals, these small fees added up to a surprisingly meaningful number of taxable events to track.

My DIY Software Experience vs. When I Decided to Get Help

After manually calculating my first year of transactions in Excel, I decided to try automated crypto tax software. I signed up for Koinly and uploaded my exchange data, hoping it would save me months of work. The software did process my transactions quickly, but the results were a disaster.

Koinly automatically flagged internal transfers between my own wallets as taxable sales. I had transferred Bitcoin from my Newton account to my Shakepay account multiple times, and the software treated each transfer as a sale event, calculating phantom capital gains on assets that never left my possession. If the software had not offered a way to manually review and edit transactions, I would have reported thousands of dollars in fake gains to the CRA.

I spent weeks cleaning up the software’s output, manually correcting transfer errors, and removing false taxable events. In the end, I might have saved only 10-15 hours compared to doing everything in Excel. The software created more work for me than it prevented. I learned that the biggest value of these tools is for people with simple portfolios who use a single exchange, not for someone like me with multiple platforms, internal transfers, and daily rewards.

This experience taught me an important lesson about my own limitations. While I figured out my own taxes successfully, I recognized that anyone with a massive portfolio, active DeFi participation, staking strategies, or a pending CRA audit absolutely needs to hire a professional crypto CPA. Toronto has several accounting firms in the financial district that specialize in cryptocurrency, and they are worth every penny if your situation is complex. My success with the DIY approach was possible because my portfolio was relatively straightforward and my transaction volume was manageable. Not everyone is in that position.

Max’s DIY Tip

Over the months of working through my spreadsheets, I developed a simple color-coding system that saved me from countless errors. Here is my personal trick that I recommend to anyone attempting to track their own crypto taxes.

I created a dedicated spreadsheet with every single transaction, but I color-coded internal wallet transfers in purple. Every time I moved funds between two wallets that I owned (like from Newton to my hardware wallet, or from Shakepay to Newton), I marked those rows in purple. Purple transfers are never taxable events, and color-coding them made it visually impossible for me to accidentally include them in my capital gains calculation.

For every transaction in my spreadsheet, I also added a column for the transaction hash or transaction ID. When the CRA verifies my records, they can pull the same transaction ID from the blockchain or from the exchange, and they can instantly verify that the date, amount, and price I reported are correct. This level of detail protected me from any accusation that I was making up numbers or misrepresenting my activity.

Finally, I separated my spreadsheet into clear sections by exchange and by year. Each exchange had its own section with running ACB calculations. Each calendar year was completely separated so that I could generate my Schedule 8 (Capital Gains and Losses) figures directly from my spreadsheet without any mistakes or confusion. This organization made my eventual tax filing process take just a few hours instead of a few days.

How I Legally Optimized My Crypto Tax Bill

Once I understood how the system worked, I started implementing legal strategies to minimize my tax liability. These were not loopholes or tricks-they were legitimate approaches that the CRA permits.

The first strategy was tax-loss harvesting. Whenever one of my altcoin positions had declined in value, I sold it and claimed the loss against my capital gains from Bitcoin and Ethereum. This strategy reduced my taxable gains significantly. The critical discipline I had to maintain was waiting the full 31 days before buying back into that asset, or buying a similar but different asset instead. For example, I could sell Solana at a loss and then buy a different Layer-1 blockchain coin to maintain exposure to that sector without triggering the Superficial Loss Rule.

The second strategy was donating cryptocurrency directly to registered charities. When I had coins that had appreciated significantly in value, I researched charities that accepted direct cryptocurrency donations. By donating the coins directly instead of selling them, I could claim a charitable donation tax credit while completely avoiding the capital gains tax on the appreciation. I donated some Ethereum to a registered environmental charity that was researching blockchain sustainability.

The third and most powerful strategy was moving my long-term crypto holdings into Canadian-listed Bitcoin and Ethereum ETFs held inside my TFSA (Tax-Free Savings Account). This approach eliminated the entire administrative nightmare of calculating ACB for my core holdings. Within my TFSA, all growth is completely tax-free. When I buy Bitcoin ETF units in my TFSA, I do not need to track cost basis, I do not need to calculate capital gains, and I do not need to report anything to the CRA.

This strategy required me to give up the feeling of directly owning the cryptocurrency, but it gained me something more valuable: peace of mind and zero tax reporting requirements for that portion of my portfolio. My TFSA is now my permanent holding account for Bitcoin and Ethereum, and it has saved me countless hours of annual tax preparation.

Max’s DIY Checklist

Every spring, before I file my taxes, I follow this checklist to make sure I have not missed anything. I recommend copying this checklist and adapting it to your own situation.

  • Download Raw CSV Exports: I download the complete transaction history CSV files from every exchange I used during the year (Shakepay, Newton, Coinbase, etc.). I verify the date range and make sure the download includes all transactions. I store these files in a dedicated folder labeled by year.
  • Identify and Remove Internal Transfers: I go through my entire transaction list and mark every internal transfer (movements between my own wallets or between my own exchange accounts) so they are not accidentally counted as taxable dispositions. I color-code these in purple on my spreadsheet to make them visually obvious.
  • Calculate ACB for Every Asset: For each cryptocurrency I held during the year, I create a running calculation of my Average Cost Base. I list every purchase in chronological order, update the average cost after each purchase, and track my total holdings and total cost. I generate a final ACB figure as of December 31 for my year-end reporting.
  • Verify the 30-Day Superficial Loss Window: For every loss I claimed during the year, I manually verify that I did not buy the same asset back within 30 days before or after the sale. I create a simple chart showing sale dates and repurchase dates to ensure I was compliant with the Superficial Loss Rule.
  • Calculate T1135 Threshold: I add up the total cost basis of all foreign property held at any point during the year and verify whether it exceeded $100,000 CAD. If yes, I mark that I need to file a T1135 form. If no, I document that I am not required to file.
  • Generate Schedule 8 Figures: Using my spreadsheet ACB calculations and transaction records, I generate my total capital gains and total capital losses for the year. I calculate my net capital gain and my taxable amount (50% of the net gain under 2026 rules).

Common Questions I Had to Solve Myself

Can the CRA track my Bitbuy transactions? Yes, absolutely. Bitbuy is a registered Canadian exchange, and the CRA has obtained court orders to access user transaction histories from major Canadian platforms. If you traded on Bitbuy, assume the CRA already has that data or can retrieve it within days. Do not try to hide or omit transactions from a major Canadian exchange-it will not work.

Can I claim a tax loss if I lose my private keys and my cryptocurrency becomes inaccessible? This is a gray area that I researched extensively. If your coins are lost due to your own negligence (lost private keys, forgotten passwords, hardware failures), the CRA may not allow you to claim a capital loss because technically you still own the coins-they are just inaccessible. If your coins are stolen due to a hacking incident or exchange collapse, you might be able to claim a loss, but you would need documentation of the theft and the original cost basis. I decided not to test this scenario, so I treat all my holdings as permanently owned unless I actively dispose of them.

Do I have to pay taxes if I am just holding cryptocurrency and not selling or trading? No. Holding cryptocurrency generates no taxable event. You do not owe taxes simply for owning Bitcoin or Ethereum and watching the price fluctuate. Taxes are triggered only when you dispose of the cryptocurrency-by selling it, trading it for something else, using it to purchase goods, gifting it, or earning rewards from it. Pure holding is tax-free.

What are the absolute deadlines for the 2026 tax year? For regular individuals like me, the tax return must be filed by April 30, 2026, and any taxes owed must be paid by the same date. If I were self-employed, I would have until June 15, 2026, to file my return, but taxes owed would still be due by April 30. Missing these deadlines can trigger late filing penalties and interest charges, so I mark them on my calendar well in advance.

My Final Thoughts on the Toronto Tax Journey

Looking back on that freezing February night when I started this journey, surrounded by CSV files and confusion, I feel proud that I took the time to understand the system rather than just guessing or ignoring it. Filing my own crypto taxes taught me more about how the Canadian tax system works than any other financial experience in my life.

My biggest piece of advice to other DIY Toronto taxpayers is simple: start tracking your transactions from day one, not in tax season. Every month, I now spend 15 minutes reviewing my transactions and checking my ACB calculations. This monthly discipline prevents the overwhelming chaos I experienced at tax time.

I also want to emphasize that asking for professional help is not a sign of failure-it is a sign of good judgment. I handled my own taxes successfully because my situation was relatively straightforward. If your portfolio grows beyond $500,000, if you start experimenting with DeFi or staking strategies, or if the CRA ever contacts you, hire a professional crypto CPA immediately. The cost of professional advice is nothing compared to the cost of filing incorrectly.

Finally, I invite other Toronto residents to share your own crypto tax stories. The community here is generous with knowledge, and we all benefit when we share what we have learned. Whether you are a HODLER from High Park or an active trader in CityPlace, we are all figuring out this new frontier of taxes together. Stay organized, stay disciplined, and do not let tax uncertainty prevent you from participating in cryptocurrency-just track your activity carefully, understand the rules, and file honestly.

No time to read?
Get a summary
Previous Article

My DIY Look at Toronto's New Luxury Land Transfer Tax (And How I'd Avoid It)

Next Article

What I Learned Figuring Out My Own Crypto Taxes in Toronto