Tracking Aave, Compound, and Lending Positions Without Losing Cost Basis
Aave V3 aTokens rebase, Compound V2 cTokens don't, Compound III has no token at all, and Aave V4 just changed everything. Here's what most trackers get wrong about your cost basis on lending positions.

You deposited 10 ETH into Aave eighteen months ago. Your wallet now shows 10.4 aWETH. Most trackers see one of two things and neither is right.
Some trackers don't pick up the rebasing accrual at all because no transaction is emitted on chain when the balance grows. Koinly's own documentation confirms this: their software doesn't auto-import these increases and users have to add them manually. Other trackers see the larger balance during a wallet sync and treat it as a fresh deposit at the sync-time price, with all the basis questions that creates. The IRS doesn't agree with either of those readings, and neither does Aave's own contract.
Lending positions break tracker math in ways that are specific to how each protocol mints, accrues, and redeems. The mechanics matter because the wrong abstraction produces a wrong number, and the wrong number compounds across every future sale of the tokens you receive on exit.
Why Lending Positions Are Harder to Track Than They Look
Three protocol-level mechanics make lending positions different from holding the underlying token.
Interest accrues without a transaction. When you deposit USDC into Aave V3, you receive aUSDC. Your aUSDC balance grows continuously as borrowers pay interest into the pool. There's no transfer event, no claim transaction, no on-chain action you took. The balance just becomes larger because the protocol's liquidity index updated. Generic trackers that watch wallet balance see the increase but have no transaction to attribute it to.
The mechanics differ across protocols. Aave V3's aTokens are rebasing, meaning the balance number in your wallet grows. Compound V2's cTokens don't rebase. The balance stays fixed but each cToken becomes redeemable for an increasing amount of underlying. Compound III tracks supply as a signed principal value with global indices, so there's no separate token at all. Three different mechanisms for the same underlying concept of “you supplied an asset and earned yield.” For a broader look at how tracking DeFi positions across protocols differs from balance viewing, see our DeFi tracking guide.
Cost basis treatment on entry is unsettled. Depositing ETH into Aave wraps it to WETH and gives you aWETH (the aToken corresponding to wrapped ether). Some tax practitioners treat this as a crypto-to-crypto swap (taxable disposition of ETH, fresh basis on aWETH). Others treat the aToken as a receipt and carry the original ETH basis through. The IRS hasn't issued specific guidance on either Aave or Compound deposit treatment. Whichever interpretation a taxpayer adopts changes the basis of every token they eventually receive on withdrawal. For a full breakdown of how DeFi cost basis works across protocol interactions including lending deposits and withdrawals, see our DeFi cost basis guide.
A Worked Example: 10 ETH Into Aave V3
You bought 10 ETH on Coinbase in March 2023 at roughly $1,650 each, total cost basis $16,500. In October 2024 you deposited those 10 ETH into Aave V3 when ETH was around $2,500. The protocol wrapped your ETH to WETH and minted 10 aWETH (1:1 with WETH at deposit).
Eighteen months later, in April 2026, your wallet shows approximately 10.4 aWETH. That 4% growth represents accrued interest from borrowers paying into the WETH supply pool over that period, working out to roughly 2.7% APY on a compounding basis (Aave V3 WETH supply rates have generally tracked in the low single digits over this window).
Here's what's actually happened underneath.
The original 10 ETH/WETH portion. Under the carry-through interpretation, your basis on the 10 aWETH representing your principal stays at the original $16,500 from your March 2023 purchase. Holding period started in March 2023, so the position is long-term. Under the disposition interpretation, you recognized an $8,500 capital gain at deposit ($25,000 deposit value minus $16,500 original basis), got fresh basis of $25,000 on the 10 aWETH, and the holding period reset to October 2024. Same position today, very different tax history depending on which interpretation you adopted on the deposit transaction.
The 0.4 aWETH earned through interest accrual. This is the part that matters for ongoing tax treatment regardless of which deposit interpretation you used. The IRS rule for crypto interest income is fair market value at the time of receipt. Each rebase event on aWETH is technically a moment of receipt, since aTokens credit yield continuously block by block as the liquidity index updates. That continuous accrual makes it administratively impractical to value every micro-receipt, and the IRS has not issued specific guidance on how to handle continuously rebasing tokens. Whatever approximation a taxpayer uses, the recognized income then becomes the cost basis of the accrued portion. If the 0.4 aWETH was effectively recognized at an aggregate value of, say, $1,000 in ordinary income across the period, that $1,000 becomes the basis of those 0.4 tokens going forward.
At withdrawal. You redeem your 10.4 aWETH for the underlying WETH and unwrap back to 10.4 ETH. Under the carry-through interpretation, your total basis on the 10.4 ETH stack is $16,500 (original principal basis) + $1,000 (interest income basis) = $17,500. Under the disposition interpretation, it's $25,000 + $1,000 = $26,000, with the $8,500 gain already recognized at deposit. Either way, the next time you sell any of that ETH the basis on it has to reflect both pieces correctly.
A tracker that doesn't model the accrual side will tell you the basis is whatever was at deposit and show 10.4 ETH coming out of Aave. The next time you sell any of that ETH, the tracker calculates gain against an undercount of basis equal to whatever was earned and already taxed as ordinary income, and the IRS sees a higher capital gain than actually exists.
How Compound Differs From Aave
Compound V2's cTokens work the opposite way. When you deposit ETH into Compound V2, you receive cETH at whatever the prevailing exchange rate is. Per Compound's documentation, that rate launched at 0.020 ETH per cETH and grew over time as interest accrued. As an illustration with later-period numbers: depositing 10 ETH when the rate is 0.025 mints 400 cETH. Your cETH balance never changes after that. What changes is the exchange rate. If it grows to 0.0271 over the period you hold, your 400 cETH redeems for about 10.84 ETH.
The accounting and tax effect is the same as Aave but the mechanics break trackers differently. A tracker that values your position by quantity × price sees the cETH balance and tries to find a price feed for cETH. Some trackers do this correctly by reading the exchange rate from the contract. Others price cETH at par with ETH and miss the embedded yield entirely.
Compound V2 was deprecated in December 2025. Borrows and mints are paused, reserve factors set to 100%. Most users have migrated to V3, but legacy positions remain on V2 holding existing supplied assets, and any tracker that doesn't handle the cToken exchange rate model is mispricing them.
Compound III (Comet) uses a different model again. There's no separate token. The protocol tracks your supply as a signed principal value, where positive values are supplies and negative values are borrows. Per Compound's documentation, your present balance is calculated as principal × the current global supply index, where the principal is stored at deposit in a form already normalized by the index at that time. From a cost basis perspective the result is the same. Interest is income at accrual, principal carries through. But the tracker has to read the protocol's internal accounting to know what your position is worth, because there's no token to read.
What Changes With Aave V4
Aave V4 launched on Ethereum mainnet on March 30, 2026, introducing a hub-and-spoke architecture that fundamentally changes how lending positions interact with the protocol's liquidity. Liquidity is concentrated in shared “hubs” (Core, Prime, Plus), while individual “spokes” act as user-facing markets with their own collateral, risk, and borrowing rules. Spokes draw liquidity from hubs through credit lines.
V4 also moves away from the rebasing aToken model used in V3. Per Aave's V4 documentation, user supplies “accrue yield automatically through share-based accounting that appreciates over time.” Independent reporting on the V4 release confirms the shift to ERC-4626-style share accounting, where token balances stay constant and yield is tracked through a rising price-per-share rather than a growing wallet balance. Aave Labs has positioned this as a deliberate fix to the integration and tax-tracking pain points that rebasing aTokens created in V3.
For position tracking, this is a meaningful change. The continuous-rebase tax problem from V3 is largely replaced by a different structural challenge that's closer to Compound V2's cToken model: balance is fixed, value-per-share grows, and a tracker needs to read the share/asset ratio from the protocol to know what a position is worth. Income on the appreciation still has to be separated from principal at exit; just the mechanism for tracking it has changed.
Aave V4 has been live for about a month with limited asset support, and most generic trackers are catching up. Specialized tools like DeFi Saver integrated V4 at launch. For generic portfolio trackers, V4 positions may show up correctly as Aave positions with values, but the deeper mechanics around which spoke a position sits in, which hub it draws from, and how the share accounting accrues are surfaced inconsistently if at all.
What “Tracking a Lending Position Correctly” Actually Means
A tracker that handles lending positions properly does several specific things.
It reads the protocol contract directly to determine the underlying value of your position rather than relying on a generic price feed for the receipt token. For Aave V3, that means using the aToken's balanceOf (which returns principal plus accrued yield) and treating the rebased balance as the actual position. For Aave V4, it means reading the share-to-asset ratio at the spoke and converting share balances to underlying. For Compound V2, that means reading the cToken exchange rate to convert cToken balance into underlying. For Compound III, that means reading the protocol's internal principal and index values.
Accrued interest gets separated from principal. The 0.4 ETH equivalent earned in the worked example above is income, not capital appreciation. A tracker that bundles it into a single P&L number against your original deposit basis is mixing two tax categories that get treated very differently. Ordinary income on the interest, capital gain or loss on the principal at exit.
Cost basis on the deposit and withdrawal cycle is handled consistently. Whichever tax interpretation you adopt, whether carry through or fresh basis at deposit, the tracker has to apply it the same way every time so the basis on tokens you eventually sell matches the position you took.
Liquidation events get tracked correctly. If you borrow against a lending position and your collateral gets partially liquidated, the tracker has to recognize the disposed portion at its liquidation price, not the original deposit price. Most generic trackers either miss the liquidation entirely or treat the seized collateral as a transfer rather than a sale.
Why This Matters for Decisions
Lending position tracking errors compound across the entire portfolio. A tracker that misreads aTokens or cTokens isn't just wrong about one position. It's wrong about every future sale of the tokens you eventually withdraw, because the basis is wrong. The same compounding problem affects liquidity pool positions, where generic trackers collapse four distinct numbers into one and miss the impermanent loss and fee income splits entirely.
The errors also tend to favor the IRS. When a tracker undercounts basis (by missing accrued interest that already had income tax paid on it), the next sale shows a higher capital gain than actually exists. You pay more tax than you owe, and the income side that should have been recognized when it accrued may go unreported entirely.
For active DeFi positions across multiple lending protocols and multiple wallets, the basis drift gets large fast. A few thousand dollars of yield earned across Aave V3, Compound III, and a smaller V4 position quickly becomes thousands in misallocated basis between ordinary income and capital gains categories.
How Cryptofolio Handles This
Cryptofolio reads each lending position directly from the protocol contract rather than treating receipt tokens as just another wallet balance. For Aave V3, that means using the aToken's balanceOf to get principal plus accrued yield. For Aave V4, it means reading the share-to-asset ratio at the spoke. For Compound V2, the cToken exchange rate. For Compound III, the protocol's internal principal and index values. Each protocol's accounting model is handled correctly, not approximated.
Accrued interest is separated from principal so the income side and the capital side stay in their own tax categories. Cost basis on the deposit and withdrawal cycle carries through consistently, so when you eventually sell the underlying tokens you receive on exit, the basis matches the position you took at entry rather than getting reset or lost.
Most trackers can't see your lending positions correctly.
Cryptofolio reads from the protocol contract, separates principal from accrued interest, and carries cost basis through every deposit and withdrawal cycle so the numbers you file actually match what happened on chain.
Bottom Line
Lending positions look like they should be simple. You deposit, you earn yield, you withdraw with more than you started. But each protocol implements that flow differently, the IRS hasn't ruled on most of the mechanics, and most generic trackers either ignore the accrual entirely or attribute it to the wrong tax category. Most can't track all four pieces of a lending position together (the principal, the accrued interest income, the cost basis on the receipt token, and the basis on the underlying you eventually receive at withdrawal) without specialist support for each protocol's contract logic. That's where Cryptofolio comes in.
The single dollar amount your tracker shows next to “Aave: $X” is downstream of mechanics that almost no generic tracker fully models. Knowing what's behind that number is the difference between being on the right side of your taxes when you exit and being on the wrong side without realizing it.
Disclaimer: This article is for informational purposes only and does not constitute legal, tax, financial, or investment advice. Cryptocurrency tax rules are complex, depend on your specific situation, and are subject to frequent regulatory changes. The tax treatment of lending protocol deposits, receipt tokens, and interest accrual remains unsettled in many respects, and different tax professionals may take different positions. Consult a qualified professional for advice on your individual circumstances.