Trading bots and daily rewards blowing up your Koinly transaction count? Squeeze the CSV.
Koinly bills by transaction count, and every grid-bot fill, daily staking reward and Simple Earn interest payment counts as one. Koinly can bulk-aggregate deposits per day inside the app, but it can't merge trades, withdrawals or fees in bulk, or roll up by week or month (the bot-trade request has been open since 2022). TxSqueeze merges them in the CSV before you import, the way Koinly support suggests ("tally up ... on a certain day/week/month"), and keeps the original format so Koinly's importer still reads it.
Runs entirely in your browser. Your file is never uploaded anywhere.
Drop a CSV here or
Works out of the box with Binance transaction history and Koinly universal CSV. Any other CSV: pick the columns.
What to merge
Rows merge when they fall in the same period and have the same value in every keep-apart column. Numbers in sum columns are added, average columns (prices) are averaged, and other columns keep the last row's value.
Result
Preview
Unlock the download: $19, one time
Compare that with Koinly's extra-transaction pricing (about $10 per 1,000 above 10,000, or the jump from one plan to the next).
Send 19 USDT or 19 USDC on Arbitrum One to:
0x36c37d1b47737ba2b2a2cf1b5bc38509516b222f
Only Arbitrum One: USDT (0xFd08…Cbb9) or native USDC (0xaf88…5831). Binance, OKX, Bybit and most exchanges can withdraw USDT/USDC on the Arbitrum One network directly. Other chains or tokens cannot be credited.
Then paste the transaction hash. The page checks the transfer on-chain and unlocks downloads on this browser.
Have an unlock code?
Small files are free: if your original file has 300 rows or fewer, the download is unlocked.
How it works
- Binance transaction history (UTC_Time, Account, Operation, Coin, Change): reward-type operations (Simple Earn interest, staking rewards, distributions, airdrops, Launchpool, cashback, commissions) are merged per period, account, operation and coin. Trades, deposits, withdrawals and subscriptions/redemptions are left exactly as they are, because Koinly pairs them by timestamp.
- Koinly universal CSV: rows merge when they share label, currencies and period. Unlabeled one-sided rows (transfers between your own wallets) are left alone so Koinly can still match them. TxHash is cleared on merged rows and the description says how many rows were merged.
- Anything else (KuCoin or Pionex bot fills, Bybit, OKX…): choose the date column, the columns that must match, and the number columns to add.
The output keeps the original header and column order, so you import it into Koinly the same way you would the original file. Delete or replace the original import first, or you will double count.
Pricing
Free
$0
- Full preview and row counts
- Download for files up to 300 rows
Unlock
$19
- Unlimited files on this browser
- Day, week or month merging
- Any CSV format
FAQ
Is merging rewards allowed for tax purposes?
Koinly's support team recommends it on its own forum for exactly this problem (example, example). Daily merging keeps each day's income at that day's prices; weekly or monthly merging is coarser. Rules differ by country, and this is not tax advice. If in doubt, ask your accountant which period to use.
Does my data leave my computer?
No. The CSV is parsed and merged by JavaScript in this page. You can check the source or disconnect from the internet after the page loads.
Something looks wrong.
Open an issue or email us. If a paid squeeze doesn't work for your file and we can't fix it, we refund.