rotki
Privacy-focused, self-hosted crypto and financial portfolio tracker with accounting and tax reports
Alternative to: cointracker, koinly, coinstats, delta investment tracker
v1.44.0
2026-08-21Description
rotki 1.44.0 is a major release with a local MCP server for AI assistants, a new filtering workflow across the app, cross chain bridge matching, a rebuilt balance snapshot editor, three new exchanges and a substantial Docker overhaul.
History events, staking, blockchain accounts and other pages with advanced search options now use one consistent filter bar with readable pills, faster keyboard driven search and saved views. Bridge transfers can be matched across chains so their send and receive events appear together. Gate, CoinEx and Bit2Me are now supported, while new protocol coverage includes Project X, Frankencoin Savings, Kinetiq, Yearn vesting escrows, Solana staking and Jupiter Lend Earn.
It contains 1425 commits from 9 contributors. For more information check the detailed changelog below 👇
Our Sponsors
This release is sponsored by:
🥇 Gold Sponsors
- Ambire Wallet (
0xa07D75aacEFd11b425AF7181958F0F85c312f143)
🥉 Bronze Sponsors
- soxpert.eth (
0xEf6FE9C9B351824c96e5C7a478C1e52BAdCBAEe0)
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
History events redecoding
After upgrading, your history events may need to be redecoded so the latest decoder changes and bridge information can be applied. You can monitor the progress from the history events page. Events you edited are left untouched.
Docker changes
The Docker image now uses a distroless runtime without a shell, package manager or core utilities. Existing ports, volumes and environment variables continue to work as before, but docker exec <container> sh is no longer available. Use docker exec <container> /opt/rotki/starling ctl status to inspect the services, with health and restart available through the same command.
Setting ROTKI_SESSION_KEY makes normal API and websocket access require a signed in session. Calls needed by the login screen remain public, including listing account names and creating an account, and the container still provides neither TLS nor protection against repeated sign in attempts. Never publish its port directly to the internet. Keep it on a trusted network or behind a VPN or an authenticating reverse proxy that terminates TLS.
When TLS terminates at a reverse proxy, ROTKI_SESSION_COOKIE_SECURE can mark the session cookie as secure. The old ROTKI_ACCEPT_DOCKER_RISK setting is no longer read. To keep an instance deliberately open, use ROTKI_ACCEPT_UNAUTHENTICATED_API instead.
Release Highlights
MCP server for AI assistants
rotki now includes a local Model Context Protocol server available for premium users that lets compatible AI assistants answer questions using the data already decoded and stored in your account. They can analyze history events and balances with read only SQL, look up asset details and cached historical prices, and use rotki’s event taxonomy to interpret activity correctly instead of working from raw exports.
The new MCP settings page lets users start and stop the server, choose whether it starts automatically and copy the local endpoint into their client. Strict, balanced and raw privacy modes control how much identifying data reaches the assistant. Strict masks identifiers and free text, balanced keeps generated descriptions readable while masking identifiers, and raw sends the data exactly as rotki stores it.
Redesigned filters, saved views and actions
History events can now be narrowed from one filter bar. Each active filter appears as a pill showing its field, condition and values, with the relevant asset, account, protocol or location icon, so the whole search can be read at a glance. You can pick a field from the menu or type to search fields and values at once. Instead of combining event types and subtypes yourself, you can filter with plain language actions that describe what happened. Dates and amounts can be entered as bounds or ranges, and the whole workflow can be used from the keyboard.
Filters persist when you leave the page or log out, and are included in the page address so a search can be bookmarked. Filter sets can also be saved as named views and restored in one click. The same filter bar now appears across blockchain accounts, the asset manager, accounting rules, manual balances, the address book, oracle prices, internal transaction conflicts and Kraken staking.
In addition we have improved the search of event types simplifying the old experience with type and subtype
Bridge matching
rotki now matches the two sides of a cross chain bridge transfer and shows the send and receive events as one connected group. When a counterpart cannot be found automatically, it appears in the actions center where you can search for a match, mark the other side as external or ignore the item. Matching also resolves the related claim reminder when applicable.
Across Protocol activity is now decoded, including bridges, liquidity deposits and withdrawals, and LP staking. LI.FI activity is also decoded across the supported EVM chains.
Balance snapshot editor
Balance snapshots now open in a dedicated editor from the net worth chart. The editor has a clearer balances table, a separate locations drawer, tools for reconciling sum mismatches, exchange rate overrides for the date of the snapshot and undoable changes. Values in currencies other than USD are calculated with the rate from the snapshot date instead of the current rate.
Three new exchanges
Gate, CoinEx and Bit2Me can now be added as exchanges. Gate support covers the Global, Europe and US regions.
New protocol support
Project X swaps and liquidity positions on HyperEVM are now decoded. Frankencoin Savings deposits, withdrawals, interest and balances are supported across Ethereum, Arbitrum One, Base, Gnosis, Optimism and Polygon PoS.
Kinetiq staking, withdrawals and earn vaults are supported on HyperEVM, including pending withdrawal balances. Yearn vesting escrows are detected with reminders for their cliff and full vesting dates. Solana native staking events are decoded, and Jupiter Lend Earn balances are included in the portfolio.
Safer Docker deployments
The Docker image is smaller, stops cleanly and can run as an unprivileged read only container. rotki and colibri now listen only inside the container, leaving only the published rotki port reachable. A single supervisor starts and monitors the services. With a session key set, normal API and websocket access requires a signed in session, while the calls needed before login remain available.
The container port can be changed with ROTKI_HTTP_PORT, configuration mistakes now stop startup with a clear error, and access logs use the standard combined format with the real visitor address when requests come through a trusted proxy. Published images now also carry a provenance attestation and a software bill of materials so the image can be checked against the source and release workflow that produced it.
Ability to skip EVM chain syncing
You can now go to the settings and disable syncing for entire chains. That includes balance queries and historical syncing so you save bandwidth and api calls each time you use the app.
These were the highlights. Check below for the full changelog 👇
New Features
- #12171 rotki now includes a local Model Context Protocol server that lets compatible AI assistants run read only analysis over your history events and balances, look up asset details and cached historical prices, and use rotki’s event taxonomy.
- #12317 rotki is ready to resolve ENS v2 names.
- You can now find an asset on the dashboard or in blockchain balances by pasting its contract address, which is the quickest way to pin down a token whose name you do not know or that shares a symbol with others. An asset whose symbol or name is exactly what you typed is also shown first, so searching for
ethno longer buries ETH under every token that merely contains those letters. - Frankencoin Savings deposits, withdrawals, interest and balances are now supported on Ethereum, Arbitrum One, Base, Gnosis, Optimism and Polygon PoS.
- The Help menu can now open the data directory, next to the entry that opens the logs directory. It stays disabled until the backend is running, since that is when the directory in use is known.
- Filtering the address book now uses the same filter bar as the rest of rotki. The chain selector and the strict-chain checkbox that sat beside it are now pills in that one bar, so there is a single place to filter from, and a chain is shown with its logo and name.
- Filtering manual balances now uses the same filter bar as the rest of rotki, and the tag selector beside it is now a tag pill in the same bar, drawn in the colours you gave each tag. Locations are shown with their icon and name, and assets with their icon and symbol.
- #12735 KittenSwap swaps on HyperEVM are now properly decoded.
- #12735 Project X swaps and liquidity position activity on HyperEVM are now properly decoded.
- Filtering the assets in the asset manager now uses the same filter bar as history events and blockchain accounts: each filter is a pill showing what it filters, chains and asset types are picked from a list rather than typed, and typing in the bar narrows across every filter at once. The status dropdown that sat beside the bar is gone: showing only owned or only whitelisted assets, and showing or hiding ignored ones, are now pills in the same bar, so there is one place to filter from. A saved link to a filtered asset manager still works unchanged.
- Filtering accounting rules now uses the same filter bar as the rest of rotki: each filter is a pill, event types and subtypes are picked from a list and read as words rather than as their raw values, and counterparties are shown with their protocol icon and name.
- Filtering internal transaction conflicts now uses the same filter bar as the rest of rotki, chains are shown with their logo, and the separate start and end date filters are now one date filter with a picker for each end.
- Filtering custom assets now uses the same filter bar as the rest of the asset manager.
- Filtering oracle prices now uses the same filter bar as the rest of rotki, and its two separate start and end date filters are now one period filter with a date picker for each end. Assets are shown with their icon and symbol, and each oracle by the name the table itself uses, instead of the raw identifier.
- The date filter on the Kraken staking page now uses the same filter bar as the rest of rotki, and its two separate start and end date filters are now one date filter with a picker for each end.
- Filtering blockchain accounts now uses the same filter bar as history events: each filter is a pill, the tag selector that sat beside the bar is a tag pill inside it, and a set of filters can be saved as a named view. Filters you had already saved for this table are carried over the first time you open the views menu. Accounts are now picked from a list that shows each one’s avatar, name and address, and several accounts can be filtered at once, where before you typed part of an address or label and could filter by only one account at a time. A saved link to the accounts page that carried an account filter needs to be taken again, since the filters are written into the address differently now.
- #12657 Filtering history events has been redesigned. Each filter is now a pill in one filter bar, showing what it filters and how, with the icon of the asset, account, protocol or location it names, so a whole set of filters can be read at a glance instead of being spelled out as text. Typing in the bar narrows across every filter at once: type part of a protocol or location name, an asset symbol, an amount such as
>100or10-50, or a date, and apply what you meant in a single step. Values you have filtered by before are offered again, so a long address or transaction hash need not be pasted twice. The account, state, action and show-ignored filters that used to sit beside the bar are now pills inside it, so there is one place to filter from, and the whole bar can be driven from the keyboard. - #12657 A set of filters can now be saved as a named view and applied again later, from the star button in the history events filter bar. Views are stored with your account, so they follow you to your other machines, and any filters you had already saved are carried over the first time you open the views menu.
- #11019 History events can now be filtered by everything except a value: switch a filter to “is not” and it excludes what it names instead of including it.
- Background operations such as balance queries and transaction decoding are now noticed as soon as they finish, instead of up to four seconds later. The difference adds up wherever many of them run one after another: the balance refresh after you log in used to pad every single step with that wait.
- You can now silence notification popups from the notification area, so rotki stops interrupting you while you work. Nothing is lost: every notification still arrives in the notification area with its actions. The setting stays as you left it the next time you log in.
- The “Actions needed” button in history events is now a single actions center. It counts the categories needing attention rather than every item, and lists each as a row with its own count and action, including categories with nothing to do so you can re-check them at any time. The duplicate “Check …” entries in the overflow menu are gone.
- If you had picked your own Gnosis indexer order and have Gnosis events, the recommended-settings dialog shown after upgrading now asks you to choose that order. It explains that Etherscan no longer serves Gnosis for free, shows which of the two keys you already have, and preselects the order matching them.
- Gnosis chain transactions are now queried through Blockscout by default, since Etherscan only serves Gnosis to paid API keys. Gnosis now needs an API key for one of the two: either a Blockscout key or a paid Etherscan plan is enough on its own, and if you only have one of them the other indexer steps aside instead of wasting a doomed request. If neither key is set up, rotki tells you which one to add the first time it queries Gnosis.
- Yearn vesting escrows are now supported. All related transactions are understood and decoded and balances in escrow automatically detected. Calendar entries with reminders are also created for the cliff and full vesting dates of your escrows.
- Solana native staking program events should now be properly decoded and appear under rotki’s events.
- The rotki Docker image is now smaller, shuts down cleanly and immediately on
docker stopinstead of risking a forced kill in the middle of a database write, and can be run fully locked down as a read-only, unprivileged container. Internally a single supervisor now starts rotki and colibri, serves the frontend and proxies to them, replacing the previous nginx and Python entrypoint. Your existing setup keeps working unchanged: the published port, the/data,/logsand/configvolumes and every environment variable behave exactly as before. - #5055 You can now run the rotki container on a port other than 80 by setting the
ROTKI_HTTP_PORTenvironment variable. This unblocks setups where rotki shares a network namespace with another container that already uses port 80, such as behind a VPN container, where remapping only the published port is not enough. The container’s health check follows the same port automatically. - Docker access logs are now in the standard combined format, so you can point tools such as goaccess or awstats straight at them, and they record the real visitor IP rather than your reverse proxy’s own address. Forwarded IPs are trusted only from private or loopback peers; if your proxy reaches rotki from a public address, list it with
--trusted-proxy. rotki’s own health check no longer clutters the log. - The GnosisDAO one-time pro-rata treasury redemption (GIP-151) is now decoded: GNO/osGNO deposits into the redemption contract and the subsequent claim of your share of the treasury are properly shown.
- #2922 The Docker version of rotki can now require authentication. When set up with the session key environment variable it issues a secure, HttpOnly session cookie on login and rejects unauthenticated API and websocket access, so a rotki instance reachable on your network is no longer open to anyone who can reach its port.
- #5176 The warning shown when rotki runs in Docker now says what is actually wrong and how to fix it: that anyone who can reach the instance can use the API and read your data, and what to set to stop that. The
ROTKI_ACCEPT_DOCKER_RISKenvironment variable is retired and no longer read. If you had set it, you will see the new warning once. SetROTKI_SESSION_KEYto require authentication, which is the recommended fix, orROTKI_ACCEPT_UNAUTHENTICATED_APIto keep the instance open and silence the warning as before. - #3156 When rotki runs in a browser (Docker), only one session can be active at a time. Logging in from another browser or window takes over the session and signs the previous one out, and opening rotki in a second tab of the same browser now pauses the older tab with a prompt to continue in whichever tab you choose, so two frontends no longer compete over one backend.
- Kinetiq liquid staking on HyperEVM is now supported. Staking, withdrawals (queued and instant) are decoded, and the HYPE value of pending withdrawals is detected in your balances. Also Kinetiq earn vaults are supported.
- #12559 History events can now be filtered by an amount range. Two new filters, minimum and maximum amount, are available in the history events view and can be combined with the asset filter to e.g. find all EURe payments between 25 and 30 EURe.
- Add support for CoinEx exchange.
- The Gwei Name Service (.gwei names) is now supported. Registrations, renewals, subdomains, primary names and record changes are decoded, .gwei names resolve in address inputs, a new opt-in “GNS names” source in the address name priority setting shows gwei names for your addresses configurable relative to ENS, avatars of gwei names are displayed following the same priority setting, and calendar entries with reminders are created for upcoming gwei name expiries just like for ENS.
- #12002 You can now jump straight from a history event to the accounting rule that governs it, and from an accounting rule to the events it matches, with the event type, subtype and counterparty filter applied automatically.
- #12002 The history event editor and the accounting rules settings now link out to documentation explaining each event type, subtype and accounting rule option, so it is clearer what options like “Count cost basis PnL” or the Swap and Basis transfer treatments do.
- Calendar reminders are always checked after the initial balance query to ensure notifications are sent.
- #12505 If Gnosis Pay replaced your Safe during its security migration, rotki now detects when you track only the previous or new Safe and offers to add the missing address.
- #12277 The balance snapshot manager has been redesigned: snapshots now open in a dedicated editor reached from the net worth chart, with a clearer balances table, a locations drawer, sum-mismatch reconciliation, per-date exchange-rate overrides and undoable edits.
- #4963 Across Protocol activity is now decoded, including bridging, liquidity deposits and withdrawals, and LP staking. Staked Across LP deposits on Ethereum are also included in your on-chain balances.
- Add support for Bit2me exchange.
- #7618 Li.fi activity in the supported EVM chains is now properly decoded.
- #9316 Searching for an asset in the asset manager now shows the closest matches first, so the asset you are looking for appears at the top instead of being buried under similarly-named or spam tokens.
- #12219 Add Moralis as a price Oracle.
- Hyperliquid Core native tokens can now be managed as first class assets: add or edit their metadata in the asset manager, search for them by name, symbol, or token ID, and use them in asset mappings.
- #12049 rotki now runs a DB integrity check before uploading a cloud backup or replacing the local DB with a downloaded copy
- #3668 Gate exchange is now supported, including Global, Europe, and US regions.
- #12250 You can now reach every RPC endpoint, including the ETH Beacon Node, Polkadot, Kusama and Bitcoin Mempool, without horizontal scrolling on the RPC settings page. Endpoints are listed in a grouped vertical rail (EVM chains and other endpoints) that scales as new chains are added.
- #12254 The EVM “Skip Token Detection” setting has been renamed to “Skip Account Activity Detection” to accurately describe its behavior — it controls cross-chain account activity scanning, not ERC-20 token discovery.
- #12756 Binance API keys now default history syncing to immediately after the latest imported Binance CSV entry, or to when the key is added if no CSV was imported. The start date can be adjusted before saving the key, avoiding impractical full-history API queries and their strict rate limits.
- #12094 You can now have rotki automatically scan for new tokens each time you log in (opt-in, disabled by default), and tune how often that on-login scan should actually run via a configurable cooldown between 1 hour and 7 days.
- #12241 You can now silence the “No indexers available” notification for individual chains you don’t plan to configure an indexer for, and re-enable notifications later from the EVM settings page.
- #11988 rotki now has a setting to selectively enable/disable chain / address query for transaction history. That means you can skip history querying for specific chains or chain/address combinations.
- #12111 Free-text typed in the History events filter without a key=value prefix is now applied as a notes search on Enter, so you can quickly find events by any word in their notes instead of having to remember the notes= prefix.
- #3216 Trades made using clipper will now be decoded correctly.
- Jupiter Lend Earn balances on Solana are now detected and included in portfolio balances.
- #12002 Adding or editing a history event now uses a plain-language “Action” picker grouped by intent (Trade, Transfer, DeFi, Staking, etc.) with search and keyboard navigation, replacing the raw event-type and subtype dropdowns.
- #12086 The “Create account” flow now starts with a mode chooser so creating a new local profile and restoring a database synced from rotki cloud are separate, focused paths.
- #12499 Additional crypto.com CSV import transaction kinds such as van purchases, fiat wallet limit orders, and extra earn interest payments will now be properly imported.
- Loopring tracking has been removed since the Loopring API has shut down. Existing historical Loopring data is preserved.
Bug Fixes
- Searching your assets on the dashboard or in blockchain balances now shows the matches as soon as you type. The first search after opening a page used to say there were no results for a second or two, making an asset you hold look like one you do not.
- Single-asset deposits in StakeDAO are now decoded correctly.
- Swaps in Gnosis chain that paraswap routes through a curve pool are properly decoded again.
- Bridging DAI from Ethereum to Gnosis chain is again seen as a bridge, instead of being mistaken for a DAI to USDS migration.
- #12764 Ignored assets should now be ignored from the snapshot values shown in the dashboard.
- Changing the date filter on the Kraken staking page while an earlier query is still running no longer risks the table settling on the results of the filter you moved away from.
- Binance CSV imports now correctly recognize legacy NEO and ONT rewards and airdrops, asset recovery balance adjustments, and token swap distributions.
- The chain picker for redecoding history events now offers every chain whose transactions can be redecoded, including evm-like chains and solana, rather than only the EVM ones. Those chains were already covered by Redecode All, but there was no way to redecode just one of them on its own. The button also reads “Redecode 1 chain” rather than “Recode 1 chains”.
- A misbehaving RPC node that replies with an error no longer kills whatever was querying it.
- Activating or deactivating an RPC node from the settings no longer fails with “Unknown field”.
- An address whose transaction query fails is now shown as failed in the sync progress panel instead of claiming to still be querying for the rest of the session. A chain whose addresses all failed no longer disappears from the panel, so the panel no longer reports every chain complete while some of them failed.
- Bitcoin transactions that send to an external address and return the remainder to one of your own addresses (a change output) are now decoded correctly.
- The “No indexers available” and missing API key warnings no longer pop up at every login. Each one now goes quiet for a day, then two days, then a week, and finally stops interrupting you. It stays in the notification sidebar with its action so you can still deal with it, and starts over if you change that chain’s indexer order or that service’s key. Chains and services are also tracked separately now, so one no longer replaces or silences another.
- Monerium v1-to-v2 migration transactions are no longer repeatedly processed as undecoded, allowing history decoding to finish normally.
- Automatically removing a calendar entry, like an airdrop claim deadline after the airdrop is claimed, no longer also deletes the reminder of an unrelated calendar entry.
- #10625 Incomplete exchange history queries no longer advance their saved progress and lose events. Completed Binance trade pairs are retained when a later pair is rate limited.
- Without a premium subscription, the asset movement matching actions (Ignore Selected, Ignore All Fiat and Restore Selected) no longer appear available. Previously these buttons looked clickable but did nothing, since asset movement matching is a premium feature.
- Searching for zksync lite assets should now show you ethereum mainnet assets and you should be able to easily select relevant assets when adding/editing events.
- Omnibridge events containing fee payments will now be properly decoded.
- #12526 EVM transactions discovered through more than one tracked address now remain associated with every relevant address, even when the transaction was already cached.
- The Docker image now ships without a shell, package manager or coreutils (it is built on a distroless base), so there is far less inside it for an attacker to use and the image is smaller. The only thing that changes for you is that
docker exec <container> shno longer works; inspect a running container withdocker exec <container> /opt/rotki/starling ctl status(alsohealthandrestart) instead. - The rotki and colibri backends inside the Docker container now listen only within the container, so only the rotki port you publish is reachable and the internal APIs are no longer exposed on the network. With the default bridge networking nothing changes for you; only if you run with
--network hostand connected straight to ports 4242 or 4343 do you now need to go through the published port instead. - A mistake in
/config/rotki_config.jsonnow stops the Docker container with a clear error that names the problem, instead of being silently ignored. Previously the error was only logged and rotki carried on with default settings, so a typo could leave you running a configuration you believed you had applied. - EigenLayer withdrawals queued or completed after the protocol’s slashing upgrade (ELIP-002, April 2025) are now decoded again, including withdrawals of natively restaked ETH sent by an eigenpod. Queued and completed withdrawals of the EIGEN strategy are now also shown as EIGEN instead of its wrapped bEIGEN underlying token.
- #12277 If your main currency is not USD, editing a balance snapshot now shows and saves each value converted at the exchange rate from that snapshot’s own date. Previously it used today’s exchange rate, so the values you saw and saved were off, especially for assets pegged to a fiat currency such as EUR stablecoins.
- #12306 Chain locations (e.g.
ethereum,optimism) with on-chain balances are now reachable via global search, even when no manual balance is tagged with that label. - #12304 Opening a location breakdown page for a blockchain (e.g.
/locations/ethereum) now shows that chain’s on-chain assets and total — previously the page rendered as 0 value with an empty/loading table whenever the location identifier was a chain alias. - #12113 Switching the dashboard timeframe now resets the net worth chart back to the full range instead of carrying over the previous zoom selection.
- #12112 The dashboard’s net worth percentage and trend indicator now follow the chart’s data-zoom selection.
- #12088 Cancelling the create-account wizard on a fresh install no longer drops you on an empty Unlock screen; the wizard’s “Already have an account? Log in” shortcut is also hidden when no profiles exist.
- Typing into the login form’s username field while the page is still loading no longer gets wiped by the remembered-profile pre-fill.
- The login screen no longer pre-fills the username field with a remembered account that no longer exists.
- #12503 Transactions shared by multiple tracked EVM addresses are now decoded again when a newly added address is discovered in them, preventing events involving that address from being omitted.
- #12564 Kraken tokenized asset (xStocks) trades are now imported with the correct fiat receive side, instead of a zero-amount receive, by ignoring Kraken’s internal USD settlement legs that cancel each other out.
- fix order of aave v3 token interest earnings for a specific subset of events.
- #12507 The documented
LOGFROMOTHERMODULESDocker environment variable is now honored again (it was misspelled internally) and accepts truthy string values such astrue,1,yesandon. - The rate-limit hint in the PnL report’s missing prices dialog is now a warning icon next to the refresh button, so its tooltip no longer covers the price input or the buttons of nearby rows.
- The pending task shown while balances are queried now makes clear that a balance snapshot is being saved for statistics, and notes when query errors are being ignored.
- The “history out of sync” warning shown before generating a PnL report now lets you start the history sync right there, instead of only sending you to the history page.
- Trying to add an ETH staking validator on a plan that doesn’t include staking now shows a clear message saying your plan has no staking access, instead of a confusing “ETH staking limit of 0 ETH” error.
- #12463 Querying price for custom asset under certain conditions no longer fails the task.
- Tables shown inside dialogs (such as the PnL report “issues found” dialog with missing acquisitions/prices, and the snapshot editor) are scrollable again, so rows past the visible area are no longer cut off.
- The desktop app no longer accesses the OS keyring (triggering a keychain/keyring unlock prompt) when you create or open an account, unless you have chosen to save your password.
- PnL reports no longer fail for accounts with a very very large history.
- Adding or removing a blockchain account (or removing a spam token) now correctly invalidates the cached balances, so you no longer briefly see stale balances afterwards.
- Odos swaps now show the received amount before the router fee, so the fee no longer makes that asset go negative.
- rotki now notifies you when Blockscout is queried without an API key instead of silently skipping it.
Newly supported assets
Added support for the following assets: