DeFi Tax in Canada: How the CRA Treats DeFi Activity
TokenTax content follows strict guidelines for editorial accuracy and integrity. We do not accept money from third party sites, so we can give you the most unbiased and accurate information possible.
The CRA's public crypto-asset guide has no DeFi chapter, so the general crypto rules govern. Most DeFi steps are either a taxable disposition or income. Internal T.I. 2023-0973071I7, issued March 20, 2024, treated a liquidity-pool deposit made in exchange for receipt tokens, and the later redemption of those tokens, as dispositions.
Yield-farming and liquidity-pool rewards are generally income at fair market value in Canadian dollars when you receive them or when they're credited to you. The same 2024 interpretation put native-token rewards in income under sections 3 and 9 of the Income Tax Act. That CAD figure then becomes the adjusted cost base of the new tokens.
DEX swaps are crypto-to-crypto trades, and the CRA's own worked example taxes the exchange of one crypto asset for another. Wrapped tokens and most bridge hops are usually filed as dispositions under the same reading, even when the dollar values barely move.
Why trust our crypto tax experts
How does the CRA tax DeFi activity?
Search for "DeFi tax Canada," and you still end up on US pages that talk about Form 8949. The CRA's own hub for crypto-asset users and tax professionals covers records, valuation, ordinary dispositions, mining and staking, GST/HST, and filing. However, it does not mention Uniswap, Aave, or wrapping ETH. Your job is to take those published rules and run them against the hashes you actually signed.
On that disposition page, it states that you trigger tax when you trade or exchange a crypto-asset for government-issued currency or for another type of crypto-asset, when you use it to pay for goods or services, or when you give it away. The CRA says the list is not complete. Moving coins between two wallets you can prove you own is not a disposition, which is the one break most people actually get.
Almost everything else in DeFi is one of two things listed in the table below.
What happened | Usual CRA bucket | What gets included |
You give up a token (DEX swap, LP deposit, wrap, bridge, spend, LP exit) | Disposition | Capital account: half the CAD gain. Business account: the full profit. |
A new token shows up (yield, fees you collect, native rewards, interest paid in extra units) | Income | CAD fair market value when received or credited, and that CAD amount is then ACB. |
If you are on capital account, paragraph 38(a) of the Income Tax Act still includes one-half of the gain. The Justice Laws consolidation of that section is up to date as of July 21, 2026 (last amended June 18, 2026). The CRA's own example runs the math: a $5,600 gain, $2,800 taxable. Budget 2024 had proposed two-thirds for corporations and trusts, and two-thirds on individuals’ gains above $250,000. Prime Minister Carney announced the cancellation of that hike on March 21, 2025, and the Department of Finance's 2026 Report on Federal Tax Expenditures says Budget 2025 confirmed the government would not proceed. There is no two-tier rate to model on a 2026 return.
Whether you are on capital or business depends on how you trade, not on which frontend you used. The CRA still points to archived Interpretation Bulletin IT-479R: how often you transact, how long you hold, whether you know the market, how much time you spend, financing, advertising. An isolated adventure in the nature of trade can still be income. Farming five chains every day can be a business even if the interface calls the payout a reward.
All of this is in Canadian dollars. The CRA will take fair market value from a method you can defend and reuse, including a rate from the exchange you used or an average across busy venues. Pick one and keep the worksheet.
Liquidity pool taxes in Canada
Liquidity pools are the one DeFi activity the CRA has addressed directly, in a severed internal ruling.
Internal T.I. 2023-0973071I7, March 20, 2024, involved a Canadian resident who deposited two crypto-assets into liquidity pools, received transferable receipt tokens that evidenced the deposit and could be used to claim the underlying assets, later redeemed them, and accrued a native reward token daily in the meantime. The Directorate held that both the deposit and the redemption were dispositions under subsection 248(1), on the reasoning that the common-law meaning of disposition applied and none of the exclusions in that definition did.
On income account, the same hops were barter exchanges under archived IT-490, and the rewards were income under sections 3 and 9. The memo leans on the CRA's position in document 2014-0525191E5 (March 28, 2014) that exchanging one type of virtual currency for another triggers a disposition. Like every severed letter, it carries the CRA's own warning that it was believed correct when issued but may not represent the agency's current position.
It is not a folio, and the facts involved receipt tokens from a single pooling platform, not Uniswap v2 pro-rata pool shares. A Canadian Tax Focus note said the memo "provides little analysis and comes to doubtful conclusions." You should still assume an auditor has read it. Conservative Canadian accounting treats a Uniswap-style deposit as a disposition because a different transferable token or an NFT arrives in the wallet.
Uniswap Labs is the better source for what you actually hold. Uniswap v2 mints UNI-V2 ERC-20 tokens. Uniswap v3 and v4 mint NFTs that store the range, fee tier, and amounts. Those are different properties, so you can't average a v3 NFT into a v2 LP token. Labs also notes that the interface doesn't burn the NFT when you pull liquidity, except on a v3-to-v4 migration, which burns the v3 NFT. An empty position NFT left sitting in MetaMask does not mean the position is still open.
Depositing into the pool
You dispose of the two tokens you send in and acquire the LP token or NFT, with ACB equal to the combined CAD fair market value at that block. If the deposited units had already gone up, that gain is realized then, even though no Canadian dollars hit a bank.
Collecting fees while you're in the pool
On v2, trading fees usually fatten the LP token and show up when you exit. On v3, they often sit in tokensOwed until you collect. A separate collect gives you a clean income date: CAD fair market value the day you claim, and that CAD amount becomes ACB in the tokens you pulled.
Withdrawing from the pool
You dispose of the LP interest and take back a different mix of the two assets. Proceeds are the CAD value of what comes out, minus the ACB of the LP token or NFT, minus eligible selling costs.
Here is an example. Sarah writes software in Toronto. On a Tuesday in March, she puts 1 ETH and 2,000 USDC into a Uniswap v3 ETH/USDC pool. Her ETH ACB is CAD $2,400. That afternoon, 1 ETH is worth CAD $4,000, and the 2,000 USDC is worth CAD $2,720, matching her ACB. She receives an NFT. On capital account the ETH leg is a CAD $1,600 gain, of which CAD $800 is taxable, and the NFT's opening ACB is CAD $6,720. If she later exits into 0.92 ETH and 2,180 USDC worth CAD $6,100 combined, she has a CAD $620 capital loss on the NFT before gas. Impermanent loss is not a third line on Schedule 3. It is already sitting in that mix.
Identical-property averaging does not pause because you provided liquidity. Subsection 47(1) and Guide T4037 require you to average identical units, so ETH already in the wallet, ETH that came back from the pool, and ETH sitting on Newton are one ETH ACB. The NFT is not ETH.
Yield farming tax treatment in Canada
Yield farming is the extra token on top of the pool: CRV on Curve, COMP on Compound, SUSHI after you stake an SLP token. Those units are income when they hit you. They only become a capital gain or loss later, when you sell them.
The CRA's staking page is written for a centralized exchange, and it treats rewards as income under the Income Tax Act when they are credited to the taxpayer's wallet on the platform. Internal T.I. 2023-0973071I7 reached the same income result for a DeFi native token that accrued daily to the wallet holding the receipt tokens. Each harvest is its own CAD snapshot, and so is a credit the protocol writes without you clicking anything.
Here is an example of this in action: David farms CRV on Curve from a MetaMask he keeps in Vancouver. Over April, he claims four times (12, 11, 14, and 13 CRV) at CAD $5.50, $4.80, $4.10, and $3.90. Income for April is (12 × $5.50) + (11 × $4.80) + (14 × $4.10) + (13 × $3.90), which is CAD $226.90, and that $226.90 is his ACB in the 50 CRV. In November, he sells the pile for CAD $380, which is a CAD $153.10 capital gain and a CAD $76.55 taxable capital gain. Selling after a crash does not unsay April. If the tokens are worthless at sale, the loss is measured against the ACB he already recognized as income.
Most retail farmers report on line 13000, where the CRA now lists "crypto-asset income that is not business income and not a capital gain." If the activity is a business, the CRA directs you to Guide T4002 to report it on Form T2125, with the full profit taxable. Write "Curve CRV rewards" beside line 13000. "Other" is how a reviewer starts asking questions.
DEX swaps: Uniswap, SushiSwap, PancakeSwap and beyond
A DEX swap is a trade of one crypto-asset for another, and the protocol on the router does not change the math. The CRA's worked example, dated July 30, 2025, has a taxpayer spend 2.5061 units of crypto-asset B (ACB $15,000, then worth $20,600) to buy 100 units of crypto-asset A. The gain on B is $5,600, half of it taxable. Uniswap, SushiSwap, PancakeSwap, a 1inch aggregator: same disposition.
Stablecoins sit on the CRA's list of crypto-asset categories, so USDC for DAI is still one crypto-asset exchanged for another. The CAD move is often a couple of dollars plus fees, but you should still report it. Skip enough "small" stablecoin hops and the ACB file will not tie by June.
Here is a worked example of that: Sasha swaps 0.4 ETH for 1,200 USDC on Uniswap. Her ACB in that 0.4 ETH is CAD $1,000, and the USDC is worth CAD $1,640 at the block, so proceeds are CAD $1,640, the capital gain is CAD $640, and the taxable capital gain is CAD $320. The 1,200 USDC takes an ACB of CAD $1,640. Two days later, she swaps it for 1,199 DAI worth CAD $1,638, which is another disposition and a CAD $2 capital loss before gas.
ETH spent on gas is a small disposal of that ETH at the day's CAD value. T4037 records the cost of acquiring property at ACB, and the outlays and expenses incurred to sell the property and realize proceeds. The CRA crypto pages never name network fees. Park the spent ETH on the correct side of that formula and keep the hash. A token approval, the signature that lets a router spend, does not by itself dispose of the approved token.
Crypto lending and borrowing on DeFi protocols
Aave and Compound are the two names Canadians actually search, and the CRA's published guidance does not address either protocol. The 2024 liquidity-pool memo is the closest comparison, because both protocols hand you a different token that represents the deposit.
Supplying to Aave or Compound
Aave's documentation is blunt: supply 100 USDC, and the protocol mints 100 aUSDC; interest accrues as the aToken balance grows over time. Those aTokens transfer, which makes them receipt tokens with a rising balance rather than a bank statement. A conservative filing treats the supply as a disposition of the underlying for aTokens (ACB equal to CAD fair market value at supply), then treats each later increase in the aToken balance as income at CAD fair market value as it is credited, the way the CRA treats staking rewards credited to a centralized-exchange wallet. Redeeming aTokens for the underlying is a second disposition.
Compound v2's cTokens work differently. The cToken exchange rate starts at 0.020000, so supplying 1,000 DAI at a rate of 0.020070 returns about 49,826 cDAI. From there, the number of cTokens in your wallet stays the same while the exchange rate rises, so each cToken becomes redeemable for more of the underlying asset over time. Some filers wait until redemption and pick up the extra as a capital gain on the cToken. Others still take COMP as income on receipt. Write down which method you used and use it every time. A material year belongs with a CPA and the raw log, not a Discord screenshot.
That's where TokenTax comes in: VIP includes advanced reconciliation and two 30-minute consults with a crypto tax specialist.
Borrowing against collateral
Receiving loan proceeds is not, by itself, a profit under section 9, because you owe the units back. The tax sits on the hops around the loan. Posting collateral can be a disposition if a different token comes back (same receipt-token analysis as a supply). Spending or swapping the borrowed coins is an ordinary disposal of those coins, with ACB equal to CAD value when you received them. Interest paid in crypto is a disposal of the fee tokens. A liquidation is a forced sale of collateral at whatever CAD value the protocol seized, and that gain or loss is real even though you never clicked sell.
Here is an example: Marcus wraps 3 ETH into WETH and supplies it to Aave, receiving aWETH. His ETH ACB is CAD $7,200, and the 3 ETH are worth CAD $12,000 at the wrap, so the conservative reading is a CAD $4,800 capital gain (CAD $2,400 taxable) and a WETH ACB of CAD $12,000. He then supplies that WETH and receives aWETH with the same CAD $12,000 ACB. He borrows 4,000 USDC, which is not income, and swaps that USDC for a memecoin, which is a disposal of the USDC. If the memecoin dies and Aave liquidates 1.1 ETH of collateral worth CAD $3,800 against an ACB slice of CAD $4,400 (1.1 of the 3 ETH behind the aWETH), that is a CAD $600 capital loss on the aWETH that left the position. Nobody at Aave mails a slip.
Wrapped tokens and bridge transactions
Wrapping and unwrapping
Wrapping ETH into WETH is a contract call that pays you a different ERC-20. The CRA has never said WETH is the same property as ETH. Read the 2014 virtual-currency exchange position and the 2024 memo strictly, and both directions are dispositions. The two tokens usually trade at the same CAD value, so the gain is often nil before gas, but the gas still has to go into ACB or against proceeds. File the wrap. Leave it out, and the WETH lot tends to import at no cost, which is a worse problem than a $0 gain on the wrap itself.
The aggressive analog is archived IT-387R2, where the CRA treated a gold certificate and the related bullion as the same property, so exchanging one for the other was not a disposition. Nobody at the CRA has written that sentence about ETH and WETH. If the amounts are large enough to care, take the position in writing with a CPA and use it on the unwrap too.
Bridging between chains
Bridges are messier because the token that arrives is often a different contract on a different chain (USDC on Ethereum versus USDC.e on a sidechain, or a locked-and-minted IOU). That is usually an exchange of one crypto-asset for another. An explorer label that says "bridge" is not a transfer between two addresses you own. Transfers you control stay non-taxable. Receiving a different token is where that stops.
How to report DeFi activity to the CRA
Uniswap will not send you a T-slip. The chain is the record, and the return has to match it.
Pull the wallets and the protocols. Export every address that signed a swap, LP mint, harvest, or borrow. Use that chain's explorer, and import the same addresses if you run tax software. The CRA books-and-records page wants units, dates and times, CAD values, what each hop was, counterparty addresses, wallet addresses, and beginning wallet balance (and its cost) and ending wallet balance for each crypto-asset for the year. That last pair is what next year's ACB stands on after the protocol UI is gone.
Build one ACB pool per identical asset, in CAD. Subsection 47(1) averages identical property. Fees at purchase raise ACB. Fees at sale come off proceeds. Do not keep a separate ACB for "the ETH that sat in MetaMask" and "the ETH that came back from Uniswap."
Label each hop as a disposal, income, or transfer. A collect on a v3 NFT is usually income. A router swap is a disposal. A move from your Ledger to your hot wallet is a transfer if you can prove the transfer on both sides.
Report capital dispositions on Schedule 3. Crypto-assets have their own line. Enter total proceeds on line 15200 and total gain or loss on line 15301. The taxable capital gain flows to line 12700 of the T1. Report in Canadian dollars.
Report income on the right schedule. Farming or LP fees that are not a business go on line 13000 with a description. If the CRA would see a business, use Form T2125 and Guide T4002, and report gross business income from T2125 on line 13499 of the T1. Do not put the same CRV claim on Schedule 3 and T2125.
Keep the file for six years from the end of the last tax year it relates to. Export while the protocol still shows history. An Explorer dump pulled later gives you hashes without CAD cost.
If you disposed of crypto at a loss, the allowable half offsets taxable capital gains, and unused net capital losses carry back three years or forward indefinitely. They do not reduce salary. The mechanics are in our guide on how to file crypto losses in Canada. ACB, inclusion, and classification sit in the crypto taxes in Canada guide this page speaks from.
Form T1135 is a separate question. Canadian residents file it when the cost amount of specified foreign property exceeds CAD $100,000 at any time in the year. Whether a DeFi position counts turns on custody, not on whether you like the protocol. Crypto sitting with a foreign custodian is the cleaner yes. Self-custody is a facts problem, and you should not answer it from a blog post.
TokenTax supports average cost basis for Canadian filers, DeFi imports, and an international gain/loss report you can tie to Schedule 3. If the year is a stack of v3 NFTs, aWETH rebases, and a bridge that software interprets as a $0-basis mint, our VIP service includes advanced reconciliation and two 30-minute consults.
Common DeFi tax mistakes Canadian investors make
These are the holes that show up when someone has to reconstruct a year, usually in March, from a wallet that also has Newton CSV and a dead farm.
Treating wraps as invisible. ETH and WETH are different tokens. Drop the hop, and the WETH lot often imports with no cost.
Ignoring rewards you could already take. CRA language on centralized staking taxes the credit to the wallet, and the 2024 memo included daily-accruing native rewards in income. The harvest click is not always the first moment you had the tokens.
Losing the LP token's ACB. The NFT or UNI-V2 token is a new asset. If you never price the deposit, the exit looks like a $0-basis sale of whatever comes out.
Trying to deduct impermanent loss as a separate line while you are still in the pool. There is no CRA code for it. The worst mix is realized when you withdraw.
Leaving gas out of the formula. ETH spent on gas is a disposal of that ETH. Skip the fee lots, and every later gain is fat.
Running a US wash-sale playbook. Canada uses the superficial loss rule: you or an affiliated person buys, or has a right to buy, identical property in a window that starts 30 calendar days before the sale and ends 30 calendar days after, and still holds it at the end of that window. If you were the one who bought the replacement units, the denied loss is usually added to their ACB. Selling ETH and buying it back the same day sits inside that window.
Filing a capital-gains year when the facts look like a business. IT-479R still lists frequency, short holds, time spent, and financing. Daily LP rebalancing across three chains is a classification problem before it is a Schedule 3 formatting problem.
DeFi tax in Canada frequently asked questions
Is DeFi income capital gains or business income in Canada?
Are stablecoin-to-stablecoin DeFi swaps taxable in Canada?
How is impermanent loss treated by the CRA?
Is wrapping ETH into WETH taxable in Canada?
Do I owe tax when I bridge crypto between chains in Canada?
Do I owe tax on DeFi rewards I haven't claimed yet?
Is providing liquidity always a disposal?
To stay up to date on the latest, follow TokenTax on Twitter @tokentax.