Tools / 01 · Free preview · full report $19 early bird, then $29 · Kraken and Coinbase built in, plus supported CSVs with column mapping
1099-DA reconciler
Moved coins from one exchange to another? The exchange you sold on usually doesn't know what you paid, so its Form 1099-DA can show the sale with a blank cost basis. Drop in your exports from both: this page matches the withdrawal on one to the deposit on the other, carries the original purchase date and cost across, and shows every sale that still needs a basis.
Privacy
No account. No API keys. No upload. Your files never leave this browser: the math runs in this tab. Open DevTools > Network to check, or switch off Wi-Fi after the page loads; it still works.
Start with your exchange history
Select an exchange for export instructions. Already have the files? Add them below.
- In Kraken, open your profile → Documents → Exports → Create Export.
- Choose Ledgers and CSV, all assets and fields. Include your history from the first purchase through the sales you are checking.
- Generate and download the export. Unzip it if needed, then add ledgers.csv below. A Trades-only file is not enough for transfer matching.
- Open Coinbase Settings → Accounts → Statements on desktop.
- Generate a custom transaction statement as CSV. Include all assets, transaction types and dates from your first purchase through the sales you are checking.
- Add the transaction CSV below. Use transaction history, not a PDF or gain/loss summary. If its columns differ, review the mapping step.
Download full transaction history as CSV. You'll map date, type, asset, quantity, USD value or price, and fees. Buys, sells, transfers and income can be mapped; swaps, conversions, non-USD values and fees in a third coin are not supported by the mapper.
A Base or other wallet address alone is not an import. On-chain swaps may require a different tool or a preparer's help.
Moved coins between accounts? Include the sending account's history too—even purchases from earlier years. A deposit or transaction hash alone does not establish what you paid.
Check compatibility before you start
Best fit: exchange buys and sells with USD values and transfers between your own accounts. Kraken and Coinbase have built-in parsers; other CSVs need mapping.
Review required: Coinbase Card Spend, Retail Instant Unstaking and other unrecognized transaction types may be left out. Supported Coinbase Convert entries need readable conversion details and a USD value. Mapped swaps/conversions, DeFi, NFTs, margin and derivatives are outside scope.
Try the free preview first. Check import notes and excluded sales before paying. The tool reads exchange CSVs; it does not import your 1099-DA PDF. You enter form totals for comparison.
Export instructions checked October 2, 2026 against the exchange help pages.
Drop your exchange CSVs here
Kraken ledgers.csv and Coinbase transaction history built in · supported CSVs from other exchanges with column mapping · several files are fine · any number of transactions
Check your import
Lots of DeFi, NFTs or 10+ wallets? This tool is built for exchange CSVs. Koinly handles those. We earn a commission if you sign up through this link.
Map the columns
This file isn't a Kraken or Coinbase export, so tell the tool which column is which. We guessed from the header names; check each one. It's saved in this browser for files with the same columns, so you only do it once. Nothing is uploaded.
Transaction types
What each value in your type column means. Rows set to Ignore are left out (and listed in the import notes). Conversions and swaps between two coins aren't supported here yet.
Preview
The first 5 rows as the reconciler will read them. Quantity is the coin amount (minus signs are ignored); value is the row's total in USD before fees (or quantity x price); a fee in the same coin is extra coin that leaves on sells and sends, or coin you didn't receive on buys. Times without a time zone are read as UTC.
How to export your files
- Kraken: Documents > Exports > Create Export, choose Ledgers (not Trades), all assets, from your first-ever activity to today. Unzip and use
ledgers.csv. Times are UTC (Kraken: ledger fields). - Coinbase: from Settings > Accounts > Statements, download the transaction history CSV for all time (Coinbase: Tax forms, explained).
- Any other exchange or wallet: download the full transaction history as CSV (if it comes as .xlsx, open it and save as CSV). Drop it in and map its columns once: date, type, coin, quantity, USD value or price, fee.
- You can add several files. Files from the same exchange merge into one account, and duplicate rows are dropped.
Only use LIFO or HIFO if you identified the units (or recorded a standing order in your own records) at or before each sale; for 2025-2026 the IRS lets you do that in your own books (Notice 2026-20). Brokers use FIFO when you don't (IRS i1099da), so the report keeps the form's rows and puts the difference in column (g) with code B.
Sample report. Synthetic Kraken and Coinbase files with invented amounts (and invented 1099-DA totals in the comparison). This is exactly what the full report ($19 early bird, then $29) shows for your own files.
Review your report
These checks cover only the files you supplied. Confirm the full account history, transfer matches and actual 1099-DA before filing. A successful software test is not independent preparer approval.
Preparing a client return? Download synthetic test files and expected results to evaluate the tool. No customer data included; independent review is pending.
What a blank basis would cost
Estimate only, federal brackets, not tax advice. The overstated gain is the cost basis we found in your files for sales your 1099-DA likely reports without one (coins bought before 2026 or transferred in; IRS Instructions for Form 1099-DA). Range: 12%-37% for short-term and 0%-20% for long-term gains; state tax, deductions and the net investment income tax not included. On Form 8949 you enter the correct basis in column (e) (IRS Instructions for Form 8949).
Needs a cost basis
These deposits have no matching withdrawal in your files, so the tool doesn't know when or for how much you got them. Sales from them stay out of the totals (shown as missing basis, never $0). First review any suggested transfers below. Then add the sending account's full transaction history, including earlier purchases. If those records are unavailable, ask the exchange for them. Only enter a purchase date and total cost that you can support with records; do not use the deposit's market value or guess:
Income with no USD value in the file
Rewards and staking are income at their value when received, and that value becomes their basis (Rev. Rul. 2023-14). Enter the USD value on that day:
Transfers between your accounts
Matched automatically: certain (same blockchain id), high (arrived within 6 hours, at most 1% less: the gap is the network fee). Medium (competing transfers) and low matches (72 hours, 5%) wait for your OK. Check the accounts, amounts and dates before confirming. Reject any match that wasn't a move between your own accounts.
No transfers between your accounts found in these files.
Predicted Form 8949 boxes
Prediction from the IRS rules, not your actual form: coins bought on that exchange after 2025 are "covered" (basis likely reported: box G short-term, J long-term). Coins bought before 2026 or transferred in are noncovered (basis likely blank or not reported: H or K, and you enter the correct basis). "?" means basis or date unknown. Check against your 1099-DA.
Sales
Import notes ()
Full report
Form 8949, audit trail and 1099-DA check
- Form 8949 export: supported sales with known basis in boxes G-L, columns (a)-(h), with code B and E adjustments. CSV plus a printable statement.
- Audit trail: each sale traced to the lots it used and the original buy, across exchanges.
- Compare with your 1099-DA: type the form's totals and see every difference, with what to do about it.
Already purchased? Enter your license key
Checkout opens in a separate Gumroad tab. Keep this report tab open. After purchase, return here and choose “Already purchased?” to enter the license key from your receipt. Buying unlocks the supported rows below; it does not resolve excluded sales. The key check sends only the key to our server, never your files. 14-day refund: reply to your Gumroad receipt within 14 days of purchase for a full refund.
Join the early-bird list to get the $19 early-bird price (until Jan 31, 2027; then $29 per tax year): join the early-bird list. It's the free Stoic Investor email by John Calloway; unsubscribe anytime.
The Form 8949 CSV contains transaction rows only. Box totals are a separate download; do not import them as transactions.
Form 8949 rows
Digital assets go in boxes G-L, never C or F (IRS Instructions for Form 8949, 2025). (d) is the proceeds shown on the 1099-DA, which are net of fees (i1099da box 1f). (e): for covered coins, the basis the form shows; for noncovered coins, your correct basis. Code B: the form's basis is wrong, corrected in (g). Code E: fees not reflected on the form, as a negative number in (g). (h) = (d) - (e) + (g). For covered rows the export assumes the form's basis matches your files; if the comparison below shows a different basis on your form, use the form's number in (e) and the difference in (g) with code B.
Audit trail
Every sale, the lots it used (by your method) and where each lot came from, back to the original buy, including moves between exchanges.
Compare with your 1099-DA
Type the totals from each exchange's 1099-DA (or its summary page), by the "Applicable checkbox on Form 8949" code. Leave a field blank if the form leaves it blank. We compare with what your files say the form should show, and with your 8949.
Export your Form 8949: $19 early bird (then $29) · any number of transactions · 14-day refund
Get the exportPricing
Free preview. $19 early bird for the full report.
$19 early bird until Jan 31, 2027, then $29 per tax year. One flat price, any number of transactions. 14-day refund.
Running a trading bot?
Thousands of trades, one flat price: $19 early bird, then $29. Most crypto-tax software prices by transaction count: entry plans run $49 to $99 for 100 to 300 transactions (Koinly, CoinLedger, CoinTracker and Awaken pricing pages, checked Sep 30, 2026). Here the math runs in your browser, so there's no per-transaction cost to pass on.
| Free | Full report: $19 early bird, then $29 | |
|---|---|---|
| Import Kraken and Coinbase CSVs, plus supported CSVs with column mapping | Yes | Yes |
| Automatic transfer matching between exchanges | Preview, with confirm/reject | Yes |
| Gains summary (short/long-term, FIFO/LIFO/HIFO) | Yes | Yes |
| Missing-basis warnings and fix form | Yes | Yes |
| Form 8949 export: boxes G-L, columns (a)-(h), codes B/E, CSV + printable statement | No | Yes |
| Per-sale audit trail back to the original buy, across exchanges | No | Yes |
| Compare your 1099-DA totals by box | No | Yes |
| Transactions | All imported; first 10 sales listed | Unlimited supported sales |
| 14-day refund | n/a | Yes |
Why I built this
Starting with tax year 2026, exchanges report cost basis only for coins bought on that same exchange from 2026 on. Anyone who moves coins between exchanges can get a 1099-DA with blanks where the cost should be, and the cost is sitting in the other exchange's export.
I build software and run an open-source Kraken trading bot in public. FixMyCryptoTax fills those blanks from your own exchange files, without uploading them anywhere and without a per-transaction price.
John Calloway · jcalloway.dev
- Your files never leave your browser. The reconciler is JavaScript that runs in this tab: it reads your CSVs with the browser's file reader and does every calculation locally. Nothing is uploaded; the only server calls are the license check (just the key) and anonymous usage labels, never file contents.
- 14-day refund. Not what you needed? Reply to your Gumroad receipt within 14 days for a full refund.
- Software, not tax advice. It does math on files you provide. You choose the settings and file your own return.
- See a sample report · Terms · Privacy
Not tax advice. This is software that does math on files you provide. You choose the method and you file your own return. We don't see your data and can't review it. Check every number against your 1099-DA and ask a tax professional if you're unsure. Rules cited below were checked on Sep 30, 2026.
Why transferred coins lose their basis
For tax year 2026, brokers must report cost basis on Form 1099-DA, but only for covered digital assets: ones "acquired after 2025 … in an account for which the broker provided custodial services" (IRS, Instructions for Form 1099-DA, revised Apr 30, 2026). Coins you bought on Kraken and moved to Coinbase weren't acquired in your Coinbase account, so they're noncovered there. Coinbase says that for noncovered assets "the cost basis section will be shown as blank with the 'noncovered' box checked" (Coinbase Help). Blank isn't zero: on Form 8949 you "enter the correct basis of the property in column (e)" (IRS, Instructions for Form 8949).
How the matching works
- Automatic: an unambiguous pair with the same coin, the deposit arrives 0 to 6 hours after the withdrawal, and it's at most 1% smaller (the difference is the network fee). These thresholds are our judgment, not an IRS rule.
- Suggested: competing transfer matches, or the same coin within 72 hours and up to 5% apart. You confirm.
- Carried over: the coins that leave follow your lot method (FIFO by default) and arrive with their original purchase date and cost. We add the basis of the network-fee units to the coins that arrived rather than treating the fee as a sale; we found no IRS instruction on this point, so ask a professional if the amounts matter.
- Unmatched withdrawals are treated as moves to your own wallet (not taxable). Unmatched deposits need a basis from you.
- Per account: basis is tracked account by account, not pooled across exchanges (IRS, final broker regulations). Long-term means held more than one year. Proceeds are net of fees (i1099da, box 1f).
What the full report does
- Form 8949 rows. Digital-asset sales go in boxes G, H or I (short-term) and J, K or L (long-term); "do not use box C [or F]" for them (IRS, Instructions for Form 8949, 2025). Covered rows keep "the basis shown on that form"; a different correct basis goes in column (g) with code B. Noncovered rows get "the correct basis of the property in column (e)". Fees the form didn't reflect go in (g) as a negative number with code E. A sale that mixes short- and long-term lots is split into two rows.
- Box I/L. If an exchange didn't send you a 1099-DA, tick that for the account and its rows move to I or L.
- Blocked, not guessed. A sale with unknown basis or acquired date is left out of the export and listed, never filled with $0.
- Audit trail. Each sale lists the lots it used and the original buy behind each lot, including the withdrawal and deposit that moved it between exchanges. Keep it with your records.
- 1099-DA comparison. You type each form's totals by box; the report shows which numbers differ, by how much, and the usual reason (fees not deducted, a missing file, a stablecoin sale left off under the optional $10,000 rule in the i1099da, a covered basis that needs code B).
- Refund. 14 days, full refund: reply to your Gumroad receipt. Support covers the software only, never what to put on your return.
Limits of the preview
- Kraken ledgers and Coinbase transaction history are built in, USD prices only. Their parsers are built from the documented export columns (as tracked by the open-source BittyTax project), not yet checked against every real export: if a file isn't recognized, tell us the header row (never send the data).
- Other exchanges go through column mapping: buys, sells, transfers in and out, and income with USD values. Conversions and swaps between two coins, non-USD values and fees paid in a third coin are skipped with a note. There are no built-in presets for other exchanges yet: we only add one when the exchange documents its CSV columns.
- Kraken crypto-to-crypto trades need the
amountusdcolumn; without it they're skipped with a note. Margin, futures, DeFi and NFTs aren't handled. - No wash-sale adjustments: the 1099-DA wash-sale box covers tokenized securities only (IRS i1099da).
- The sample files are synthetic: invented ids and amounts in each exchange's documented column format. The sample's 1099-DA totals are invented too.
Questions
Is the 1099-DA checker free?
Yes. The preview is free: reading your files, transfer matching, gains by lot method, the missing-basis list and the first 10 sales. The full report (Form 8949 export, audit trail and 1099-DA comparison) is $19 with the early-bird price until January 31, 2027, then $29 per tax year, with a 14-day refund.
Are my files uploaded anywhere?
No. Your CSVs are read and processed in this browser tab. The license check sends only the license key. Basic usage events contain labels and count ranges, never your transaction rows or financial amounts.
Which exchanges does it read?
Kraken ledgers.csv and the Coinbase transaction history CSV are built in. Other CSVs can be mapped for buys, sells, transfers and income with USD values. Mapped swaps, conversions and third-coin fees are not supported. Review all import notes before paying.
Why does my 1099-DA show a blank cost basis?
Brokers report basis only for covered digital assets: ones acquired after 2025 in an account where the broker provided custody. Coins you transferred in, or bought before 2026, are noncovered and can show a blank basis. (IRS, Instructions for Form 1099-DA)
Do I report a blank cost basis as $0?
No. For a sale reported without basis, enter the correct basis of the property in Form 8949 column (e), and keep the records that support it. (IRS, Instructions for Form 8949)
Is there a transaction limit?
No. One flat price per tax year, any number of transactions.
Is this tax advice?
No. It is software that does math on files you provide. You choose the lot method and you file your own return.
Lots of DeFi, NFTs or 10+ wallets? This tool is built for exchange CSVs. Koinly handles those. We earn a commission if you sign up through this link.
More guides: all crypto-tax guides and tools · Coinbase 1099-DA · Does Kraken report to the IRS? · 1099-DA missing cost basis