BitLedger · Help
Common problems and how to solve them
The questions that actually come up during import and before the report, with the labels you see in the app. If yours is not here, write to us.
Why does a transaction have no CHF value?
For every part of a transaction BitLedger looks for a price at the time of the transaction: for francs, euros and dollars the rates of the SNB and the ECB, for cryptocurrencies CoinGecko, where possible by the token's contract and not just its ticker. Tokens CoinGecko does not list are valued, where possible, at the price of a DEX pool; for a swap without a market price, the value of what you gave for it counts (marked «From swap»).
If no price is found, the row says «No CHF price». The «Missing CHF values» filter on the Transactions page shows all such rows. In the tax report they count as zero, and the report points this out. Foreign currencies other than francs, euros and dollars (such as pounds or yen) have no price source yet and stay empty too.
To enter a price yourself:
- Open the transaction and click the pencil «Enter price manually» next to the amount.
- Enter the value in francs, as a total («Total CHF») or «per unit». For a worthless token, enter 0.
- Confirm with OK or the Enter key. The gains are recalculated.
The value then carries the label «Manual». Later syncs do not overwrite it; the X («Clear manual price») removes it, and the next sync looks for a price again. In a locked tax year the price cannot be changed.
A transaction is classified wrongly. How do I correct it?
Open the transaction. You see the tax classification, the confidence and the reasoning it rests on (written in German in every language). With «Override classification» you choose the right one: Capital gain (tax-free), Taxable income, Income already taxed, Wealth (reportable), Internal transfer or Unknown. The row then counts as reviewed, and the gains are recalculated. If the classification is right, «Mark as reviewed» is enough.
If the transaction has a counterparty, you can make the correction a rule with «Also apply to every transaction with this counterparty»: it applies to all transactions with this address on this blockchain, now and on later imports. Your rules are under Settings → My rules; if you delete one, the transactions it covered are classified again. Exchange accounts have no such rules.
Several rows at once: select them and choose «Mark as reviewed», «Internal transfer», «Classification» or «Activity» in the bar at the bottom. The filters «Uncertain classification» (confidence below 80 percent, not yet reviewed) and «Unclassified» show where a look is worthwhile.
Rows an exchange reports itself (the note «Von der Börse als … ausgewiesen», German for «reported by the exchange as …») come from the exchange's ledger, not from an estimate. They can be overridden too. In a locked tax year, changes are only possible after unlocking it in Settings.
The tax report does not finish. What can I do?
A report is usually ready in under a minute. When a lot is going on, it waits briefly in the queue; generating it may take up to ten minutes and is retried up to twice after an error. The page waits 20 minutes and then says «Taking longer than usual»: the report is still being generated and appears under Tax reports when it is ready.
Once it is ready, you receive an email («Tax report … is ready»), as you do if it could not be generated in the end. Both messages can be switched off in Settings.
Clicking several times speeds nothing up: if a job for the year is already running, that one carries on, and at most three reports an hour are possible. A locked tax year that already has a report is not generated again. If nothing is there after an hour, please tell us via «Report a problem».
How do I connect Kraken or another exchange?
With an API key you create at the exchange, with read permissions. Do not give the key trading or withdrawal permissions: BitLedger does not need them and calls no such function.
Kraken: in Kraken, under Settings → API, create a key with the permissions Query Funds, Query Ledger Entries and Query Closed Orders & Trades, then choose «Connect Kraken API» on the Wallets page. Kraken and Kraken Futures have been tested with real accounts.
Coinbase, Coinbase Exchange, Bybit, Bybit EU, OKX, OKX EEA, KuCoin, Gate.io, Gate EU, Bitget, Crypto.com, Bitvavo, HTX, Bitstamp, Bitfinex and Bitpanda connect the same way; for Coinbase, Coinbase Exchange, OKX, OKX EEA, KuCoin and Bitget the key's passphrase is needed too. These exchanges are marked beta: not yet tested with a real account. Check the figures against the exchange's statements before you file.
BitLedger reads the exchange's ledger (deposits and withdrawals, trades, fees, earnings) and the balances, against which the imported movements are reconciled. The secret and the passphrase are stored encrypted. If the exchange rejects the key, check the key, the secret and the read permissions.
How do I import Binance or a file?
Binance can be read in two ways. With an API key that has only “Enable Reading” switched on (beta: the spot account with deposits, withdrawals, trades, converts, dust and rewards, plus futures (USDⓈ-M and COIN-M, also under portfolio margin) and options as derivatives, plus the margin account (cross and isolated) with its trades and loans). Or as a file: trading pairs Binance no longer lists are known only to the file. Export your transaction history there (Wallet → Transaction History → Export) as a CSV file and upload it on the Wallets page. CSV exports from Kraken, CoinTracking and Koinly can be read the same way.
If BitLedger does not know a file's format, an AI reads the column headings and a few masked rows and proposes a mapping. You see the content in a preview before anything is saved. Such recognitions are limited to 3 a month on the free account and 20 with a purchased tax year; known formats do not count.
The file must be a CSV file in UTF-8 and no larger than 50 MB. State the file's time zone if it is not UTC. Accounts imported from a file do not sync by themselves: for new movements, upload the new file.
Which wallets and blockchains are supported?
43 blockchains, read through the public address, without private keys: Ethereum, Bitcoin, Litecoin, Solana, Tron, XRP Ledger, Cardano, TON, Polygon, Avalanche, BNB Smart Chain, Arbitrum, Arbitrum Nova, Optimism, Base, Gnosis, Linea, Mantle, Scroll, zkSync Era, Taiko, Blast, Unichain, Fantom, Celo, Sonic, Berachain, ApeChain, Ronin, ZetaChain, Moonbeam, World Chain, Sei, Monad, Ink, Soneium, Lisk, Mode, Manta Pacific, Metis, HyperEVM, HyperCore and Robinhood Chain. Moonbeam and Metis are marked beta.
Bitcoin is read per address (starting with 1, 3 or bc1); an xpub is not supported. Because most Bitcoin wallets use a new address for every receipt, add every address you have used. An EVM address (0x…) is needed only once: if it is active on other chains, BitLedger suggests them.
If a blockchain is paused for maintenance, this is shown when you add it and on the wallet; data already imported is kept.
Why is the 31 December value provisional in the current year?
In Switzerland, wealth tax is based on your holding on 31 December. While the year is running, that date has not come yet: a report for the current year values the holding at today's prices and is marked «Interim figure». Generate the report for your tax return again after 31 December.
The prices come from CoinGecko, not from the ESTV price list. For tokens on the price list, its year-end price applies; the report points this out at that place. If an exchange rate had to be estimated because it had not yet been published, the report says so too: generate it again once the rate is out.
FIFO or moving average: which method applies?
That depends on the country you chose as your tax residence in Settings. Switzerland: FIFO is the default; LIFO, moving average price and HIFO can be chosen. Germany: FIFO (§ 23 EStG). Austria: moving average price (§ 27a(4) no. 3 EStG), the only method allowed. Where only one method applies, Settings shows it without a choice.
The country can be changed until the first purchase; after that it is fixed, because it determines VAT and currency (if you move, write to support@bitledger.app). If you change the country, BitLedger switches the method to the new country's. «Save & recalculate report» saves the change and takes you to Tax reports: a report already generated does not change by itself, so generate it again there.
How do I give my tax advisor access?
Under Settings → Tax advisor you invite your tax advisor or fiduciary by email and choose the access: «Read only» (holdings, wallets, transactions and finished reports) or «Read and review transactions» (in addition, changing classification, activity type and price, marking transactions as reviewed and creating rules for similar transactions; such a rule appears under My rules marked «by tax advisor»). Deleting, wallets, settings and purchases stay yours in every case, and locked tax years stay locked.
The invitation is valid only for exactly that address. If your tax advisor has no account yet, they sign up as a tax advisor through the link in the email. When they accept, you receive an email. They see your data only with two-factor sign-in.
Every access is listed in Settings under «Tax advisor»: what was opened, downloaded or changed. There you change the access or withdraw it; that applies from your tax advisor's next request.
For tax advisors: you find your clients under «Clients», with open review items, wallets with errors and the finished reports. «Open dashboard» shows the client's account; a banner says whose account it is and what you may do. On Mondays you receive a weekly overview when there is something to do. Practice name, email language and notifications are set in Settings.
If your tax advisor works in a team, you can allow their practice's team to access too («Their practice's team may access too»): Settings then shows who belongs to it, and every access appears with the person's name. Tax advisors set up their practice and team under Settings → Practice and team.
How do I delete my account, and how do I get my data?
Under Settings → Delete account. To confirm, type DELETE. Deleted are your profile, wallets, transactions, classifications, tax reports and any running subscription, and the customer data at our payment provider too. This cannot be undone: download any reports you want to keep first. The data disappears from backups after 30 days at the latest; accounting records of payments are kept for ten years for legal reasons.
You export your transactions on the Transactions page with «CSV», for the selected wallet and year. The export is available with a purchased tax year. For full information about your data, write to datenschutz@bitledger.app; we answer within 30 days.
What do the notes on exchange deposits and withdrawals mean?
When an exchange reports a deposit or a withdrawal, BitLedger treats it as an internal transfer between your own accounts, so it is tax-neutral. Whether it really was a transfer, the exchange cannot know: the transaction therefore stays unreviewed and carries a note, which you see in the opened transaction. If the deposit was an airdrop, a gift or a payment from someone else, or if you paid for or sold something with the withdrawal, reclassify it (see above). Derivative transactions carry a note asking you to classify them.
If a reasoning contains «Vorbehalt» (German for «caveat»), a rule classified the transaction but is not certain, for example with staking, unstaking or a bridge, which depending on its design can also be a disposal. The tax report lists such transactions as «classification tentative». Review them and confirm or correct the classification.
Not listed?
Signed in, you reach us via «Report a problem» at the bottom of the sidebar; the report reaches us with the page you were on. Otherwise by email to support@bitledger.app. Questions about data protection to datenschutz@bitledger.app.