Skip to content

The Records A DeFi Position Needs, Years Later

Transaction hashes, cost basis at entry, reward events with dates and prices. What records a DeFi yield position needs years later, and why exchange exports fail.

Transaction records showing blockchain hashes, gas fees, and cost basis calculations on ledger paper
The records you create in month one determine whether you can defend your cost basis in month thirty, when the IRS asks.

Table of Contents

What You Will Accomplish

Person examining incomplete transaction records showing gaps in cryptocurrency cost basis documentation

You will establish the record-keeping system that makes a DeFi yield position defensible three years later, when the IRS questions a cost basis you can no longer reconstruct. This is not an exercise in compliance theatre. It is the one task that, if done well in month one, prevents 30 months of expensive reconstruction work and the tax overpayment that follows an unprovable cost basis.

The income mechanism here is negative: avoiding the cost of reconstructing history. We routinely see a $40,000 sale taxed as a $40,000 gain because the software could not trace that the tokens were originally bought for $35,000. The difference between that outcome and a correct $5,000 gain is not luck. It is records created at the time of the transaction, not years later when memory and blockchain context have both decayed.

Prerequisites: You need a self-custodial wallet, access to at least one DeFi protocol, and the understanding that your first DeFi deposit creates obligations exchange-based trading does not. If those are not yet in place, this is premature.

Why Exchange Exports Are Structurally Insufficient

Three-layer record keeping system with account inventory, transaction log, and supporting documentation

A centralized exchange has one job when it issues a 1099 or CSV export: to document transactions that occurred within its custody. Cost basis tracking works as long as the asset never leaves. Transfer the token to a personal wallet or bridge it to another chain, and that connection breaks. The exchange has no visibility into what you did next, and the blockchain explorer that does have visibility has no knowledge of what you paid when you first acquired the token six months earlier on Coinbase.

DeFi protocols do not issue 1099s. Congress repealed the IRS DeFi broker reporting requirements in April 2025, and as of April 2026 no replacement framework has been finalized. When you deposit tokens into a liquidity pool, the protocol has no record of your original cost basis. When you receive LP tokens back, they carry no cost basis information. You must maintain these connections manually, and if you do not, the cost basis defaults to zero. A zero-basis disposal is taxed as 100% gain.

Wallet-based exports show transactions from your perspective but lack the counterparty information that distinguishes a taxable swap from a non-taxable transfer. A DEX trade appears as two separate on-chain events without an explicit link. Software can infer the connection if both sides of the transaction are visible in the same block, but the inference fails when you bridge assets, stake through a third-party aggregator, or interact with protocols the tax software does not yet support. The gaps accumulate, and each gap is a potential audit flag.

The Three Layers of DeFi Record Keeping

Cost basis errors compounding through multiple DeFi transactions in accounting spreadsheet

A defensible DeFi ledger has three layers: an account inventory, a transaction log, and a supporting evidence archive. The inventory lists every wallet and account you control, the chains each wallet has interacted with, and the date ranges for which you have exported transaction history. This is the map that ensures nothing is missing when you attempt to reconcile your full position years later.

The transaction log is the core. It records every event that changes your holdings or creates a tax obligation. The minimum viable structure includes 12 columns: wallet label, blockchain, transaction hash, timestamp in UTC, asset out and amount, asset in and amount, fair market value in USD at the time of the transaction, gas fees in both native token and USD, the protocol that facilitated the event, event type, the source file from which you exported the data, and a notes field for context the blockchain does not capture.

The evidence archive holds the raw exports: CSV files from blockchain explorers, JSON transaction data, screenshots of protocol interfaces showing APY at the time you entered a position, and copies of any third-party price feeds you used to establish fair market value. The IRS does not care whether you used CoinGecko or CoinMarketCap for pricing, but it will care that you used a consistent source and can produce the data that supports the figures in your tax filing.

The Transaction Log in Practice

Every row in your transaction log corresponds to a single taxable event. When you deposit USDC into a stablecoin yield protocol, you record the wallet, the chain, the transaction hash, the timestamp, the amount of USDC you sent, the amount of yield-bearing token you received in return, the USD value of both sides of the transaction, the gas fee, and the protocol name. If the stablecoin is worth $1.00 and you deposit 10,000 USDC, your cost basis for the yield-bearing token is $10,000 plus gas fees. That basis figure must survive until the day you withdraw, which may be 18 months later.

When the protocol pays rewards, each distribution is a new row. You record the reward token, the amount received, the fair market value at the moment of receipt, and the transaction hash. If the protocol auto-compounds rewards, each compounding event resets cost basis and is itself taxable. Missing one compounding event makes all subsequent cost basis calculations wrong through the entire position lifetime. This is not an edge case. It is the most common failure mode we see in DeFi tax reconstructions.

When you exit the position, you record the yield-bearing token you are redeeming, the USDC or other asset you receive, the transaction hash, the timestamp, and the fair market value of both sides. The cost basis for the yield-bearing token comes from the entry transaction you recorded 18 months earlier. If that entry record is missing or incomplete, the software assumes zero basis, and you pay capital gains tax on the full exit value.

Cost Basis Cascade Risk and Gas Fee Treatment

Cost basis errors compound. If you incorrectly calculate the basis of your LP tokens at entry, every subsequent transaction involving those tokens will also be incorrect. The cascade extends through auto-compounding events, partial withdrawals, and position exits. The longer the position remains open, the more events depend on the accuracy of the original basis figure.

Gas fees complicate this further. When gas is incurred to acquire an asset, such as minting an NFT or entering a liquidity pool, those fees increase your cost basis. A $50,000 LP position entry on Ethereum mainnet might include $2,000 in gas fees. That $2,000 is not an expense you deduct against income. It is capitalized into the cost basis of the LP tokens. When you exit the position a year later, your basis is $52,000, not $50,000. Missing that distinction inflates your capital gain by $2,000.

Gas fees incurred to collect revenue, such as claiming staking rewards, are expensed. They reduce the net income you report but do not affect the cost basis of the rewards themselves. The distinction matters because it determines which tax form the fee appears on: Schedule D for capitalized fees, Schedule 1 for expensed fees. The blockchain does not care. You must track the purpose of each gas payment and categorize it accordingly.

On Layer 2 networks and alternative chains, gas fees are lower but the principle is identical. Arbitrum gas might cost $0.50 instead of $50, but it still adjusts cost basis. The complexity comes from managing gas across multiple chains. Serious DeFi users operate on Ethereum, Arbitrum, Optimism, Base, Solana, and others. Software must import transaction history from all chains and maintain cost basis continuity when you bridge assets between them. Most exchange-based CSV imports break at the bridge transaction.

What Records Each Transaction Type Requires

LP Position Entry

You record the tokens deposited, the quantity of each, the fair market value of each token at the moment of deposit, the LP token you received, the quantity received, the transaction hash, the protocol name, the chain, and total gas fees. If you deposit ETH and USDC into a Uniswap pool, you have two assets going out and one LP token coming in. Both outbound legs are taxable disposals. Your cost basis for the LP token is the sum of the USD values of the tokens you deposited plus gas.

Reward Claims

You record the reward token symbol, the amount received, the fair market value at the time of claim, the transaction hash, the protocol, the chain, and gas fees. Each claim is ordinary income taxable at receipt. The fair market value you record becomes the cost basis for that batch of reward tokens. If you claim 100 tokens worth $5 each, you report $500 income and establish a $500 cost basis. When you later sell those tokens for $600, you report $100 capital gain.

Auto-Compounding and Rebasing Events

Protocols that automatically reinvest rewards create taxable events each time. You are deemed to have received the reward, then immediately re-invested it. You record the reward amount, the fair market value at the time of compounding, the transaction hash if one exists, and the protocol. Some rebasing tokens such as stETH increase your token balance continuously. Strictly, you should record income with every balance change. The practical compromise is to use daily snapshots and average prices for the day, which produces a reasonable approximation the IRS will accept if you can defend the methodology.

Position Exits

You record the LP token or yield-bearing token you are redeeming, the quantity, the cost basis per token, the tokens you receive in return, the quantity of each, the fair market value of each, the transaction hash, and gas fees. The exit typically generates capital gain or loss equal to the difference between your original cost basis, including entry gas, and the current fair market value of the tokens you withdraw, net of exit gas.

Multi-Chain Continuity and Transaction Hash Necessity

Transaction hashes are not optional decoration. They are the only proof an event occurred. A decentralized protocol issues no statement, no confirmation email, no receipt. The transaction hash, verifiable on a blockchain explorer, is the authoritative record. Without it, an IRS examiner has no way to verify your claim that you deposited $10,000 on a specific date, or that the $12,000 withdrawal 14 months later represents a $2,000 gain rather than $12,000 of unreported income.

The hash also allows you to trace the exact state of the blockchain at the moment of your transaction. If a token's price is disputed, the hash provides the block number, which allows you to query historical price oracles and demonstrate what the fair market value was at that specific block. This level of precision is not paranoia. It is the standard an audit requires.

When you bridge assets from Ethereum to Arbitrum, the bridge transaction has a hash on Ethereum and a separate hash on Arbitrum. You record both. The Ethereum hash shows the asset leaving. The Arbitrum hash shows it arriving. The link between them is not always programmatically obvious. If your tax software cannot connect the two sides of a bridge, it will treat the Ethereum side as a disposal with no corresponding acquisition, which triggers a taxable event that did not actually occur. Manual records prevent this.

Common Failure Modes With Real Examples

A user enters a Curve liquidity pool in January 2024 with $30,000 in stablecoins. They record the deposit but not the gas fee. In December 2025, they withdraw $38,000. The software calculates gain as $8,000. The correct gain, including the $1,200 gas fee capitalized into basis, is $6,800. The user overpays tax on $1,200 of phantom gain because the entry record was incomplete.

A user stakes ETH and receives stETH, a rebasing token that increases in quantity over time. They do not record the daily rebasing events. When they sell the stETH 18 months later, they report a cost basis equal to the original ETH value but a disposal quantity that includes 18 months of accrued rewards. The IRS sees a disposal of 105 tokens against a cost basis for 100 tokens. The extra 5 tokens have no documented basis, so they are taxed as 100% gain. The user could have defended a step-up basis for each rebase event if they had recorded it.

A user provides liquidity on Ethereum, then bridges the LP tokens to Polygon to take advantage of lower gas fees for reward claims. The bridge transaction is not recorded with both hashes. The tax software sees the LP tokens disappear from Ethereum and new tokens appear on Polygon with no link between them. It treats the Ethereum side as a complete position exit and the Polygon side as a new position with zero basis. Both are wrong. The position was continuous. The user is taxed twice.

A user participates in a yield aggregator that auto-compounds rewards every six hours. They record the entry and exit but none of the compounding events. When the exit occurs 12 months later, the software cannot explain the increase in the number of tokens held. It assumes the additional tokens were acquired with zero basis and taxes the full exit value of those tokens as gain. The correct treatment would have recorded each compounding event as income at the time, establishing basis for the additional tokens. The missing records cost the user several thousand dollars in overpaid tax.

The Software Layer and What It Cannot Do

Crypto tax software in 2026 must handle wallet imports, DeFi protocol interactions, staking rewards, and cross-chain bridges. The better platforms support automatic imports from major chains and can classify most transactions correctly. They cannot, however, supply data that does not exist. If you did not export your Polygon wallet history, the software cannot infer what happened there. If you bridged assets and did not record both sides of the bridge, the software cannot reconstruct the link. If you entered a liquidity pool on a protocol the software does not yet support, it will classify the deposit as an unknown transaction and leave it to you to manually categorize.

Certain types of transactions are frequently miscategorized: illiquid staking positions, unmatched transfers between wallets you control, and new token standards the software has not yet integrated. We have tested most platforms on positions involving rebasing LSTs, LP tokens, and multi-chain bridges. The results are uneven. Every platform requires manual review of DeFi transactions. The platforms that handle these correctly are the ones that allow you to import your own transaction log with custom event types and basis overrides.

The most reliable workflow is not to rely on software to classify everything automatically. It is to maintain your own transaction log in a spreadsheet, import that log into the tax software as a CSV, and use the software to generate the tax forms. This gives you full control over cost basis, event categorization, and the ability to explain every figure to an auditor. The software becomes a reporting tool, not a decision-making tool.

What to Do Next

If you have not yet entered a DeFi position, create the three-layer record structure before your first transaction. Set up a spreadsheet with the 12-column transaction log. Create a folder for raw exports and supporting evidence. Document every wallet address you control and the chains each has interacted with. When you make your first deposit, fill in the log immediately, while the transaction hash and pricing data are still easily accessible.

If you are already holding DeFi positions and have not maintained records, reconstruction is expensive but not optional. Export transaction history from every wallet and every chain you have used. Start with blockchain explorers: Etherscan for Ethereum and EVM chains, Solscan for Solana. Download CSV exports for the full date range of your activity. Import those exports into crypto tax software and review every transaction the software flags as unknown or unmatched. For each gap, find the transaction hash, determine what actually occurred, and create a manual entry with the correct categorization and cost basis.

For positions still open, document the current state now. Record the protocol, the tokens held, the current quantity, and the original cost basis if you can determine it. If you cannot determine original cost basis from on-chain data, you will need to reconstruct it from exchange records, wallet screenshots, or any other contemporaneous evidence you still have. The longer you wait, the harder this becomes. Exchange records older than two years are often no longer available for download. Wallet screenshots in cloud storage get deleted. The blockchain remembers the transaction but not the price.

Set a recurring reminder to update your transaction log monthly. DeFi activity is not continuous for most users. A monthly reconciliation is sufficient to catch any missing transactions before they become hard to reconstruct. At the end of each month, export new transactions from every active wallet, add them to your log, and verify that your recorded holdings match the actual token balances in your wallets. Discrepancies are easier to resolve in week one than in month twelve.

The Takeaway

The records you create in month one determine whether you can defend your cost basis in month thirty. An unprovable cost basis is treated as zero, which means you pay tax on the full disposal value rather than the gain. The difference is not small. A $50,000 position exit with a $45,000 cost basis should generate $5,000 of taxable gain. The same exit with no documented basis generates $50,000 of taxable gain. The IRS does not care that you know you originally paid $45,000. It cares what you can prove.

Exchange exports are insufficient because they do not follow assets into DeFi protocols or across chains. Wallet exports are insufficient because they lack cost basis and often misclassify protocol interactions. The only sufficient record is the one you create yourself: transaction hash, timestamp, assets in and out, fair market value at the time, gas fees, and the protocol involved. This is not optional for anyone holding DeFi yield positions. It is the minimum viable documentation an audit requires.

If you are reading this in month one, you can still avoid the pain. If you are reading it in month thirty, reconstruction is expensive but still cheaper than paying tax on a zero basis. The question that matters is not whether you should keep records. It is whether you will keep them starting today, or whether you will pay someone else to reconstruct them three years from now when the IRS asks and you cannot answer.

FAQ

Do I need to record every transaction even if the amount is small?

Yes. The IRS does not have a de minimis threshold for crypto transactions. A $10 swap is as reportable as a $10,000 swap. Small transactions accumulate, and missing them creates discrepancies between your reported income and the blockchain record. If the IRS queries the chain and finds unreported disposals, the size of the transaction does not matter. The fact that it was unreported does. Every transaction that changes your holdings or generates income must be recorded.

Can I use a DeFi dashboard or protocol interface as my record?

No. Protocol dashboards show your current position but not your historical cost basis. They do not export transaction hashes, timestamps, or the fair market value of tokens at the time of each event. A dashboard is useful for monitoring a position, but it is not a tax record. You need a record that links each transaction hash to its cost basis and categorization, and that record must be maintained separately from the protocol interface.

What happens if I bridged tokens and did not record both transaction hashes?

The tax software will likely treat the bridge as two unrelated events: a disposal on the origin chain and an acquisition with no cost basis on the destination chain. You will be taxed on the disposal as if you sold the tokens, and the new tokens will have zero basis, causing you to be taxed again when you eventually sell them. You can correct this by finding both transaction hashes, proving the link between them, and manually overriding the software's classification. This is tedious but necessary to avoid double taxation.

How do I establish fair market value for a token if no major exchange lists it?

Use the decentralized exchange price at the time of the transaction. If the token traded on Uniswap, you can query the Uniswap subgraph for historical prices at a specific block. If no DEX liquidity existed, you may be able to use the protocol's internal pricing oracle. Document which source you used and retain evidence of the price. The IRS does not prescribe a specific pricing source, but it does expect consistency. You cannot use CoinGecko for one transaction and a different source for the next unless you can explain why.

Do I need to keep records if I am using a crypto tax software platform?

Yes. The software depends on the data you give it. If you do not export wallet history from every chain, the software cannot account for those transactions. If the software misclassifies a DeFi interaction, you are still responsible for the accuracy of your tax filing. The software is a tool, not a substitute for record-keeping. The records you maintain are the backup that allows you to verify the software's output and defend your filing in an audit. Software is as good as the data it receives and the review you perform. Neither happens automatically.

Frequently Asked Questions

Do I need to record every transaction even if the amount is small?

Yes. The IRS does not have a de minimis threshold for crypto transactions. A $10 swap is as reportable as a $10,000 swap. Small transactions accumulate, and missing them creates discrepancies between your reported income and the blockchain record. If the IRS queries the chain and finds unreported disposals, the size of the transaction does not matter. The fact that it was unreported does. Every transaction that changes your holdings or generates income must be recorded.

Can I use a DeFi dashboard or protocol interface as my record?

No. Protocol dashboards show your current position but not your historical cost basis. They do not export transaction hashes, timestamps, or the fair market value of tokens at the time of each event. A dashboard is useful for monitoring a position, but it is not a tax record. You need a record that links each transaction hash to its cost basis and categorization, and that record must be maintained separately from the protocol interface.

What happens if I bridged tokens and did not record both transaction hashes?

The tax software will likely treat the bridge as two unrelated events: a disposal on the origin chain and an acquisition with no cost basis on the destination chain. You will be taxed on the disposal as if you sold the tokens, and the new tokens will have zero basis, causing you to be taxed again when you eventually sell them. You can correct this by finding both transaction hashes, proving the link between them, and manually overriding the software's classification.

How do I establish fair market value for a token if no major exchange lists it?

Use the decentralized exchange price at the time of the transaction. If the token traded on Uniswap, you can query the Uniswap subgraph for historical prices at a specific block. If no DEX liquidity existed, you may be able to use the protocol's internal pricing oracle. Document which source you used and retain evidence of the price. The IRS does not prescribe a specific pricing source, but it does expect consistency and documentation.

Do I need to keep records if I am using a crypto tax software platform?

Yes. The software depends on the data you give it. If you do not export wallet history from every chain, the software cannot account for those transactions. If the software misclassifies a DeFi interaction, you are still responsible for the accuracy of your tax filing. The records you maintain are the backup that allows you to verify the software's output and defend your filing in an audit.

Tool mentioned above
Koinly

Koinly imports from 800+ exchanges and wallets and handles the DeFi cases most tools get wrong - rebasing tokens, LP positions, staking rewards.

Try Koinly

We may earn a commission if you sign up through this link, at no cost to you. It does not change what gets recommended.

The Weekly Yield Report

You now have the 12-column structure and the four failure modes that cost users thousands in overpaid tax. Those numbers change every time cost basis is unprovable.

Every Thursday: where crypto yield actually is - stablecoins, liquid staking and DeFi lending, with the risk named next to the rate and what changed since last week.

Get it free every Thursday

Free. No trade calls, no allocations, no hype. Unsubscribe in one click.

Comments

Latest