← jamescrews.com

Rebuilding a crypto tax history from the chain up

September 2026

The client in this post is a composite. It's built from real reconstruction work we've done, with details changed or left out, because on a public blockchain a couple of stray facts is enough to find somebody.

A client came to us with a year of DeFi activity and a tax deadline. They had exchange CSVs, a handful of wallet exports, a loan that had been running on autopilot and a partnership they'd put crypto into. None of it added up to a ledger their CPA could sign off on.

Their exchange sent a 1099 but it only covered the exchange. Everything after a withdrawal (swaps, bridges, a loan against their bitcoin etc...) never showed up on it. A tracker app pulled in the wallets and still read each automated loan payment as one line.

Where the history lived

Ten networks: Bitcoin, Ethereum, Base, Arbitrum, Optimism, Polygon, Mode, Avalanche, Fantom and Solana. Most of the action was on Ethereum and Base. The rest were wallets used once or twice that still had to be pulled (a wallet that's empty today can still have a history).

WHERE THE HISTORY LIVED Bitcoin native BTC bridged in as wrapped BTC ETHEREUM AND ITS NETWORKS Ethereum Base Arbitrum Optimism Polygon Mode bridges run between all of these OTHERS Avalanche Fantom Solana
Blue is where most of the activity was.

Inside one loan payment

Every time the automation paid down the loan, the explorer showed a single transaction. We split each one into its pieces:

INSIDE ONE AUTOMATED REPAY One transaction what the explorer and the tracker see THE LEGS ON THE RETURN Flash loan in and back out NOT REPORTED Wrapped BTC to stablecoins SALE, BY LOT Stablecoins pay down debt NO DEDUCTION Protocol fee, paid in crypto SMALL SALE Gas, paid in ETH SMALL SALE
Amber means a sale on the return.

Only the swap, the fee and the gas count as sales. When the automation adds to the loan it runs the other way, borrowing stablecoins to buy more wrapped bitcoin. That's new debt and a new lot, nothing to report until it gets sold.

When the automation sells

The automation sells collateral when the price drops through one line and borrows to buy more when it climbs through another. The lines reset after every move, so a fast drop can set off several sales in a row, each one dated and on the return.

HOW THE AUTOMATION TRADES, ILLUSTRATED price time boosts on the way up borrow, buy, new lot repays in a row on the way down each one sells collateral buy line sell line taxable sale new lot
Illustrative, no real values.

How some of it got treated

A few examples (worked through with their CPA, your facts may be different):

What happenedHow it was treated
Transfer between your own walletsNot a sale. Date and cost carry over once both wallets are proven to be yours.
Bridge to another networkUsually the same asset moving, so the cost carries over. Any swap tucked into the route gets pulled out as a sale.
ETH into wrapped bitcoin saleTwo different assets, so the ETH counts as sold.
Borrowing stablecoins against collateralLoan proceeds, so no income and no sale.

What we built

Custom scripts and workbooks, run in this order:

THE WORKFLOW 1. Pull the history explorers, APIs, exports 2. Wallet register who owns each wallet 3. Decode each transaction into legs 4. Classify and price plus timestamped prices 5. Lot workbook cost per lot, per partner 6. Reconcile workbook vs. the chain matches doesn't match CPA package lot detail, notes, schedules Open items list one question per line answered, run again
Open questions go back to the client, then the whole thing runs again.

Their CPA ended up with sale-by-sale detail laid out like Form 8949, notes on each judgment call and that list of open questions.

If you're in the same spot

Want your own ledger rebuilt?

If your wallets look anything like this, book 15 minutes with me and we'll figure out what it takes to get you a ledger your preparer can work from.

Book 15 minutes

Or email request@jamescrews.com

Jim

J Crews Consulting isn't a CPA firm and none of this is tax advice. We build the record and work alongside your tax preparer, who makes the calls.