rotki
Privacy-focused, self-hosted crypto and financial portfolio tracker with accounting and tax reports
Alternative to: cointracker, koinly, coinstats, delta investment tracker
v1.42.1
2026-03-26Description
rotki 1.42.1 is a patch release fixing issues reported over the past 5 weeks. Key changes include:
- Added a detection and resolution mechanism for inconsistencies in internal EVM transaction data (e.g. duplicates or corrupt traces) via repulling or redecoding.
- Added cost basis transfer rules and improved accounting across assets, reducing errors when moving funds (e.g. wrapping ETH, DeFi deposits).
- Major EVM decoding improvements: better support for swaps, staking, DeFi protocols (Yearn, Curve, Pendle, Beefy, Gearbox), and ERC-4337 transactions across chains.
- Improved user experience & safety with clearer validator checks, spam/phishing tagging, and more reliable sync/indexer handling.
- Numerous bug fixes and stability upgrades, especially around transaction decoding, balances, and UI behavior.
It contains 152 commits from 5 different commiters! For more information check the detailed changelog below :point_down:
Downloads
Upgrade is highly recommended. Download the binary for your OS from below:
- Linux
- OSX
- arm64
- x86_64
- Standalone Backend
- Windows
Optionally, you can also verify the integrity of the aforementioned binaries using the following checksums:
- Linux
- OSX
- arm64
- x86_64
- Standalone Backend
- Windows
Things to Note
Internal transaction conflict resolution

Blockchain indexers and data sources may sometimes return incomplete, inconsistent, or duplicated internal transaction data (e.g. zero gas traces or duplicate entries). This can lead to incorrect accounting, broken event decoding, or misleading history. The internal transaction conflict resolution feature ensures data integrity by detecting these issues and fixing them via repulling and/or redecoding.
The system can automatically resolve some of them or you can manually redecode them via the UI.
Depending on the indexer the resolution might fail. These failed transaction resolutions will appear under the failed tab in the conflict resolution dialog.
Increase the frequency
By default the automatic resolution will attempt to resolve 100 transactions every 15 minutes when the application is not busy.
You can adjust these values either by going to Settings → General → History Events or via the gear icon in the internal transaction conflict resolution dialog.
Failed Conflicts
If retrying keeps failing for the particular transaction this means that rotki can’t pull data for that indexer. This can happen for example for some old Base or optimism transactions. The solution would be here to use a paid api etherscan key to pull them or wait for blockscout or other indexers to re-idnex it.
New Features
- Added an accounting rule to transfer cost basis between assets and applied it as a default for actions such as wrapping/unwrapping ETH, depositing to DeFi etc.
- #11896 Indexer limitation warnings are now shown in the EVM Indexer Order settings for Optimism (Blockscout pre-Bedrock gaps) and Base (Blockscout as only free indexer).
- Sushiswap swaps should now be decoded on all EVM chains
- #11817 ETH staking validator limits are now checked before submission in the add validator dialog, showing user-friendly messages with upgrade prompts instead of raw backend errors.
- #9024 rotki now supports yearn in all EVM chains.
- Claiming Degen airdrop 1 will now be properly decoded by rotki.
- SAFE claims from GnosisDAO Safe Token distribution are now decoded properly by rotki.
- #11702 Zerox Base Swaps through the latest settler will now be properly decoded.
- Added a spam subtype event so you can manually tag and differentiate spam / phishing / address poisoning transactions.
- ERC4337 fee payments will now be properly understood by rotki
- ERC-4337 fee detection should now work on all EVM chains, not just Ethereum.
Bug Fixes
- Asset icons in the Docker deployment will no longer fail to load due to an invalid base URL when constructing icon URLs.
- #11935 Editing a manual balance to have duplicate names should no longer be possible.
- Upgrading an older rotki database won’t cause data migration 20 to fail.
- #11908 Individual pending task items now show a static icon instead of an indeterminate spinner, reducing visual noise when many tasks are running.
- #11902 The redecode option is now available for exchange withdrawals with a linked on-chain transaction.
- #11901 The event_subtype filter (e.g. subtype=None) is no longer lost when navigating away from the history events page and back.
- Assets in the same collection now share cost basis, preventing false missing acquisition errors when the same asset is tracked under different identifiers.
- #11854 Users can now unmark assets as spam or unignore them directly from the history events context menu, instead of having to navigate to the asset manager.
- Curve withdrawals with dynamic amount of assets will now be properly decoded.
- Morpho bundles deposits of ETH in multiple pools won’t get mixed with WETH and appear multiple times or with negative values.
- #11784 Users can now delete extra spend, receive, or fee sub-events from multi-asset swaps directly from the event list without opening the full edit form.
- Certain cases of ENS registrations with a specific refund ordering will now also be properly understood by rotki.
- Gearbox withdrawals should now always have the correct order of events.
- Gearbox deposit through some wrapper routes will now be properly decoded.
- #11798 Sync progress panel will no longer appear during idle periods when backend background tasks send WebSocket status messages.
- #11797 Adding an ETH account on a fresh instance will no longer trigger unnecessary ETH2 and Uniswap balance queries when no validators exist and no events have been decoded.
- #11783 Matched withdrawal from exchange to account will now correctly show the destination address instead of displaying the exchange name for both from and to labels.
- #11782 Adding a new EVM account will no longer trigger a redundant initial balance fetch before token detection. Balances are now fetched only once after tokens are detected.
- #11788 Removing a sub-event from a multi-trade event group will no longer fail with a sequence index conflict error.
- #11885 Blockscout will not be used to query internal transactions in OP for transactions before the bedrock upgrade.
- Claiming Pendle rewards from old pools, or claiming multiple rewards in one transaction should now be decoded properly by rotki.
- ETH staking historyMEV/proposer payout rewards are combined more reliably with block proposal even when beaconcha.in relay data is unavailable.
- #11766 Value distribution graphs will now work correctly by fixing the schema types to match the backend response.
- Beefy Finance harvest call rewards will now be properly decoded as part of the beefy side of a transaction.
- Beefy Finance staking and unstaking of vault tokens will now be properly decoded by rotki along with any potential rewards.
- Depositing via Pendle v3 router should be now properly decoded by rotki.
- Repulling wrong data from indexers won’t delete local data.
- Bridging ETH from mainnet to Optimism will no longer duplicate the event under some weird circumstances.
- Historic event values will no longer incorrectly fallback to the current price when the historic price is not available.
- Curve deposits with add liquidity + stake will now be properly decoded.
- Curve deposits via intermediate pools will now be properly decoded.
- cowswap swaps using both versions of the monerium tokens will now be properly decoded.
- Repulling EVM transactions should not duplicate ETH events under specific conditions.
- #11777 Redecoding a single EVM transaction will no longer remove existing transaction data if indexers are temporarily unavailable.
- #11708 Users can now mark Solana tokens as spam in addition to EVM tokens.
- #11709 History events page will now properly refresh after marking an asset as spam or ignoring it from the context menu.
- Registering a new device is now more reliable when rotki runs in container environments.
- #11714 Registering a new device is now more reliable on Unraid based Docker setups by correctly detecting container IDs.
- Depositing native token + wrapped native token in Aaave v3 in the same transaction will now be properly decoded.
- Misdecoded cowswap swaps should no longer happen due to errors querying cowswap API.
- ZKSynclite batch withdrawal on the ethereum side should now be properly decoded.
- Claiming AAVE rewards and immediately restaking them will now be properly decoded.
- Kyberswap swaps containing refunds will now be processed properly and deduct refund from original swap amount.
- Specific cases of rainbow swaps with fees will now also be properly decoded.
- WETH Unwrapping in base will now be properly decoded.
- The rare case of balancer v2 swaps with repeated swap logs for a single events is now decoded properly.
- 1inch swaps using Trader Joe Liquidity Book swap should now be properly decoded by rotki.
- Transactions routed through ERC-4337 bundlers and other smart contract wallet intermediaries should now be properly understood.
Newly supported assets
Added support for the following assets: