Bitledger · Comparison
Crypto tax tools tested: what comes out for DeFi
We ran four wallets with typical DeFi activity through Bitledger, Blockpit, Koinly, Coinpanda and Waltio. From each wallet we drew 15 transactions by a fixed rule, looked every one up in the block explorer and recorded what it is for a private individual in Switzerland for tax purposes. We measured how many of them each tool gets right without manual work.
The result
| Bitledger | Blockpit | Koinly | Coinpanda | Waltio | |
|---|---|---|---|---|---|
| Measured on | 29 October 2026 | 25 October 2026 | 25 October 2026 | 25 October 2026 | 25 October 2026 |
| Test wallets imported | 4 of 4 | 3 of 4 | 4 of 4 | 3 of 4 | 3 of 4 |
| Correct in the sample (15 transactions per wallet) | 98.3% (59 of 60) | 44.4% (20 of 45) | 20% (12 of 60) | 51.7% (31 of 60) | 53.3% (24 of 45) |
| Transactions recognised | 99% | not measured | not measured | not measured | not measured |
| Holdings match the chain | 2 of 4 wallets checked | not measured | 0 of 3 wallets checked | not measured | not measured |
Rates cover the wallets whose chain the provider offers; a failed import counts as 0 of 15. Recognised transactions and holdings could only be counted where the free plan offers an export or its own holdings check; otherwise the cell says “not measured”. Bitledger on 25 October 2026, measured on the same day as the others: 61.7% (37 of 60) in the sample.
We are one of the five providers in this table. So that you do not have to take our word for it, below is how we tested, on which plans, on which day, and where the others are better.
The test wallets
Active addresses belonging to other people, chosen for their share of DeFi and fixed before the first test. We do not publish the addresses.
| Wallet | Chains | What happens in it | Transactions up to 25 Oct 2026 |
|---|---|---|---|
| A | Ink | Lending and borrowing on Aave, liquidity in and out, bridges to the holder's own address | 317 |
| B | Arbitrum | Lending and borrowing on Aave with WETH, WBTC and stablecoins, swaps | 383 |
| C | Gnosis | Aave with a euro stablecoin, liquid staking (osGNO), cross-chain swaps | 291 |
| D | ZetaChain | Cross-chain assets from Bitcoin, Ethereum and BNB Chain, LP tokens, liquid staking | 245 |
Per wallet
Always before any manual correction. Correct means the same tax effect as the explorer shows, not the same label. In Switzerland, capital gains on private assets are tax-free; what counts is income and the holdings that appear in the return as the tax value at 31 December (both guides in German). A swap booked as a separate outflow and inflow therefore counts as wrong: what was received has no cost basis.
Wallet A: Lending and borrowing on Aave, liquidity in and out, bridges to the holder's own address
| Bitledger | Blockpit | Koinly | Coinpanda | Waltio | |
|---|---|---|---|---|---|
| Correct in the sample (of 15) | 15 | 6 | 2 | import failed | 7 |
| Transactions recognised | 100% | not measured | not measured | import failed | not measured |
| Holdings match the chain | yes | not measured | not measured | import failed | not measured |
Coinpanda: Import failed (“Error”, 0 transactions, the same after a new sync).
Wallet B: Lending and borrowing on Aave with WETH, WBTC and stablecoins, swaps
| Bitledger | Blockpit | Koinly | Coinpanda | Waltio | |
|---|---|---|---|---|---|
| Correct in the sample (of 15) | 14 | 10 | 7 | 14 | 9 |
| Transactions recognised | 99.5% | not measured | not measured | not measured | not measured |
| Holdings match the chain | no | not measured | no | not measured | not measured |
Bitledger: Holdings: ETH dust differs by USD 0.004; wrong in the sample: a spam airdrop booked as income (CHF 0).
Wallet C: Aave with a euro stablecoin, liquid staking (osGNO), cross-chain swaps
| Bitledger | Blockpit | Koinly | Coinpanda | Waltio | |
|---|---|---|---|---|---|
| Correct in the sample (of 15) | 15 | 4 | 2 | 4 | 8 |
| Transactions recognised | 96.6% | not measured | not measured | not measured | not measured |
| Holdings match the chain | yes | not measured | no | not measured | not measured |
Wallet D: Cross-chain assets from Bitcoin, Ethereum and BNB Chain, LP tokens, liquid staking
| Bitledger | Blockpit | Koinly | Coinpanda | Waltio | |
|---|---|---|---|---|---|
| Correct in the sample (of 15) | 15 | chain not supported | 1 | 13 | chain not supported |
| Transactions recognised | 100% | chain not supported | not measured | not measured | chain not supported |
| Holdings match the chain | no | chain not supported | no | not measured | chain not supported |
Bitledger: Holdings: −0.21 ZETA, one credit from the protocol is missing. Blockpit: The chain picker only offers Zetacoin, a different coin. Waltio: ZetaChain is not offered.
Features
Only what we saw in the test itself, not what a website promises.
| Bitledger | Blockpit | Koinly | Coinpanda | Waltio | |
|---|---|---|---|---|---|
| Report for the Swiss tax return (CHF) | yes | locked on the free plan | CHF selectable, report not checked | CHF selectable, report not checked | Swiss tax residence, CHF; report not checked |
| Tax value at 31 December shown | yes | not measured | not measured | not measured | not measured |
| Price list of the Federal Tax Administration (ESTV) | Noted in the report, prices from CoinGecko | not measured | not measured | not measured | not measured |
| Note on professional trading (circular 36) | yes | not measured | not measured | not measured | not measured |
| Reason shown for every classification | yes | in the CSV export (internal rule) | not measured | not measured | not measured |
| Holdings checked against the chain | yes | not measured | built-in holdings check | not measured | not measured |
| Price for up to 1,000 transactions a year | not measured | not measured | not measured | not measured | not measured |
Head-to-head comparisons
- Bitledger vs. Blockpit: the errors in detail, and where Blockpit is better
- Bitledger vs. Koinly: the errors in detail, and where Koinly is better
- Bitledger vs. Coinpanda: the errors in detail, and where Coinpanda is better
- Bitledger vs. Waltio: the errors in detail, and where Waltio is better
How we tested
- Same conditions. Country Switzerland, CHF, each wallet's full history up to 25 October 2026, every provider's default settings. Imported by public address, no exchanges.
- Sample. 15 transactions per wallet, drawn by a fixed rule and recorded before we looked at any of the other tools. The free plans of Koinly, Coinpanda and Waltio export no transactions; without an export not every transaction can be counted, but every transaction in the sample can be looked up in the web app.
- Test days. Blockpit, Koinly, Coinpanda and Waltio were measured on 25 October 2026, and Bitledger on the same day as well (footnote under the result). We then improved Bitledger based on the errors in this sample and measured it again on 29 October 2026; that figure is the one in the tables. We have not measured the other providers again since.
- Wallets. Randomly chosen active addresses of other people, not our own, and from them the four with the highest share of DeFi. Blockpit and Waltio do not offer ZetaChain (wallet D); that counts as a result of its own, not as 0%.
- Plans. Bitledger: our own product, full feature set · Blockpit: free plan · Koinly: free plan · Coinpanda: free plan · Waltio: free plan
- Reference. Every transaction in the sample was looked up in the block explorer, independently of all the tools: the function called, token transfers, internal transfers and the counterparty. The transaction counts and the holdings per asset also come from the chain.
- Measured before correction. With enough manual work every tool reaches the right figure. The difference lies in what comes out without it.
How Bitledger itself calculates is described in the methodology (in German).