diff --git a/.vitepress/config.mts b/.vitepress/config.mts index 739b698..8be4064 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -74,6 +74,7 @@ export default defineConfig({ { text: 'Taking Notes In-App', link: '/usage-guides/user-notes' }, { text: 'Global Search', link: '/usage-guides/global-search' }, { text: 'Settings', link: '/usage-guides/customization' }, + { text: 'Help & Support', link: '/usage-guides/help-support' }, ], }, { diff --git a/contribution-guides/index.md b/contribution-guides/index.md index 9fc4a50..371ef16 100644 --- a/contribution-guides/index.md +++ b/contribution-guides/index.md @@ -4,6 +4,8 @@ rotki is an open-source project, so help is really appreciated. ## Bug Reporting +You can report issues directly from within rotki via **Help & Support** (in the app sidebar) > **Report Issue**. This opens a dialog where you enter a title and description, then choose to submit via GitHub (pre-fills a bug report template), a Google Form, or email. If you prefer, you can also report issues through GitHub or Discord as described below. + Before reporting an issue, make sure to check the issue tracker for similar ones. If this is a new issue, then use the [proper template](https://github.com/rotki/rotki/issues/new?template=bug_report.md) providing a detailed description about: - **Problem**: What happened and what you were expecting to happen instead. diff --git a/faq.md b/faq.md index 9195592..e4db3bb 100644 --- a/faq.md +++ b/faq.md @@ -134,7 +134,7 @@ Important to remember that the global DB is not moved by the premium sync mechan If you are affected by this, there are a number of things you can do. -- For assets that are EVM tokens with identifiers like `eip155:10/erc20:0x99C59ACeBFEF3BBFB7129DC90D1a11DB0E91187f` if you press [redecode all history events](/usage-guides/historical-events.html#redecoding-evm-transactions) then the redecoding process should repopulate them in the global db. +- For assets that are EVM tokens with identifiers like `eip155:10/erc20:0x99C59ACeBFEF3BBFB7129DC90D1a11DB0E91187f` if you press [redecode all history events](/usage-guides/historical-events.html#redecoding-blockchain-transactions) then the redecoding process should repopulate them in the global db. - If you have an asset with a unique identifier that looks like `a19964d9-20da-a6dc-1b50-9f293eb85c0d` then that means it's a custom asset or a manually input asset and we have no idea what it is. To figure out you would need to [access the database manually](/usage-guides/accessing-db-manually) and query the event or trade that had it. For example for trades: ```sql diff --git a/public/images/events_query_status.png b/public/images/events_query_status.png index 6e1f401..18e17db 100644 Binary files a/public/images/events_query_status.png and b/public/images/events_query_status.png differ diff --git a/public/images/help_support_menu.png b/public/images/help_support_menu.png new file mode 100644 index 0000000..e0f5112 Binary files /dev/null and b/public/images/help_support_menu.png differ diff --git a/public/images/history_events_duplicate_custom_events.png b/public/images/history_events_duplicate_custom_events.png new file mode 100644 index 0000000..b0a5552 Binary files /dev/null and b/public/images/history_events_duplicate_custom_events.png differ diff --git a/public/images/history_events_duplicate_custom_events_view.png b/public/images/history_events_duplicate_custom_events_view.png new file mode 100644 index 0000000..ae3a050 Binary files /dev/null and b/public/images/history_events_duplicate_custom_events_view.png differ diff --git a/public/images/history_events_issue_check_button.png b/public/images/history_events_issue_check_button.png new file mode 100644 index 0000000..5c3ca5f Binary files /dev/null and b/public/images/history_events_issue_check_button.png differ diff --git a/public/images/history_events_unmatched_asset_movements.png b/public/images/history_events_unmatched_asset_movements.png new file mode 100644 index 0000000..7d5b160 Binary files /dev/null and b/public/images/history_events_unmatched_asset_movements.png differ diff --git a/public/images/history_events_unmatched_asset_movements_potential.png b/public/images/history_events_unmatched_asset_movements_potential.png new file mode 100644 index 0000000..f23e954 Binary files /dev/null and b/public/images/history_events_unmatched_asset_movements_potential.png differ diff --git a/public/images/mark_as_spam.png b/public/images/mark_as_spam.png new file mode 100644 index 0000000..4d774eb Binary files /dev/null and b/public/images/mark_as_spam.png differ diff --git a/public/images/redecode_events.png b/public/images/redecode_events.png index 12eb098..55704a7 100644 Binary files a/public/images/redecode_events.png and b/public/images/redecode_events.png differ diff --git a/public/images/report_issue_dialog.png b/public/images/report_issue_dialog.png new file mode 100644 index 0000000..7bf8eb7 Binary files /dev/null and b/public/images/report_issue_dialog.png differ diff --git a/public/images/repull_transactions2.png b/public/images/repull_transactions2.png deleted file mode 100644 index 6b528f5..0000000 Binary files a/public/images/repull_transactions2.png and /dev/null differ diff --git a/public/images/repull_transactions_notification.png b/public/images/repull_transactions_notification.png new file mode 100644 index 0000000..a76e8b3 Binary files /dev/null and b/public/images/repull_transactions_notification.png differ diff --git a/public/images/see_query_status.png b/public/images/see_query_status.png index a4833f3..5b3348c 100644 Binary files a/public/images/see_query_status.png and b/public/images/see_query_status.png differ diff --git a/public/images/ts_profit_loss.png b/public/images/ts_profit_loss.png index 6204ed5..59b9fe1 100644 Binary files a/public/images/ts_profit_loss.png and b/public/images/ts_profit_loss.png differ diff --git a/usage-guides/api-keys.md b/usage-guides/api-keys.md index e3612cf..6421472 100644 --- a/usage-guides/api-keys.md +++ b/usage-guides/api-keys.md @@ -19,7 +19,7 @@ For detailed information about premium plans, pricing, payment options, and how You can integrate many different exchanges with rotki via API Keys. Currently supported exchanges are: -- Kraken +- Kraken (Spot and Future) - Poloniex - Binance - Bitmex @@ -84,6 +84,8 @@ When inputting the API key for Kraken, you need to specify the type of your Krak ![Kraken account type](/images/exchanges_add_kraken.png) +To track your Kraken Futures balances, you can optionally provide your Futures API key and Futures API secret in the same Kraken exchange form. Both fields must be provided together. When set, rotki will query your Kraken Futures cash, margin, and flex balances and merge them into your overall Kraken balance total. + #### Binance / Binance US To improve the speed of querying trade information using the Binance API, you can specify which market pairs to query instead of querying all possible pairs. This reduces the number of requests made to Binance servers, avoiding potential rate limits and failures. To select specific markets, edit your Binance exchange instance configuration. diff --git a/usage-guides/assets.md b/usage-guides/assets.md index afc7268..fc67370 100644 --- a/usage-guides/assets.md +++ b/usage-guides/assets.md @@ -124,6 +124,14 @@ It is also possible to ignore NFTs. To do this navigate to `Balances → NFT Bal ![Ignoring NFTs](/images/rotki_ignore_nfts.png) +## Mark asset as spam + +If you encounter an asset that you believe is spam (such as airdropped scam tokens), you can manually mark it as spam. This will add the asset to the ignored list and help keep your portfolio clean from unwanted tokens. + +To mark an asset as spam, navigate to `Manage Assets → Assets`, find the asset you want to mark, and click the arrow button beside the ignore/unignore switch to access the spam option. Once marked as spam, the asset will be treated the same as other ignored assets and will be excluded from all calculations and balance queries. Additionally, spam assets will not be decoded in history events. + +![Mark asset as spam](/images/mark_as_spam.png) + ## Whitelisting of ignored assets Spam assets are a plague in EVM chains. rotki has an automatic algorithm trying to match assets as spam to not bother the user with automatically ignoring them. You can see all ignored assets in `Manage Assets → Assets` and filter by ignored. A problem with automatic algorithms marking something as spam is that mistakes can be made and a legit token may be ignored. diff --git a/usage-guides/help-support.md b/usage-guides/help-support.md new file mode 100644 index 0000000..b13454f --- /dev/null +++ b/usage-guides/help-support.md @@ -0,0 +1,47 @@ +# Help & Support + +To access the Help & Support menu, click the **?** icon in the toolbar. + +![Help & Support Menu](/images/help_support_menu.png) + +The Help & Support menu provides quick access to: + +- **[Report Issue](#report-issue)** - Report bugs or request features +- **Usage Guide** - Get started with the documentation +- **FAQ** - Common questions about the application +- **Discord** - Join the community and get support +- **Github** - Review the code and open issues +- **Twitter / X** - Follow for updates + +## Report Issue + +If you encounter a bug or want to request a new feature, click on **Report Issue** to open the issue submission form. + +![Report Issue Dialog](/images/report_issue_dialog.png) + +### Filling Out the Form + +1. **Title** - Enter a brief summary of the issue (up to 100 characters) +2. **Description** - Provide detailed information about the bug or feature request (up to 1500 characters) + +### Submission Options + +You can submit your issue through one of the following channels: + +- **GitHub** - Opens an issue on the rotki GitHub repository +- **Google Form** - Submit via a form for private matters +- **Email** - Send directly to the team + +::: tip +GitHub issues are publicly visible. For private matters, use Google Form or Email instead. +::: + +### Tips + +#### Need Immediate Help? + +Get quick help from the community in the **#support** channel on [Discord](https://discord.rotki.com), or you can DM the team directly. + +#### Taking Screenshots? + +Before taking screenshots, enable privacy or scramble mode to hide sensitive data like balances and addresses. You can find this option in the privacy settings. diff --git a/usage-guides/historical-events.md b/usage-guides/historical-events.md index cfab0fd..e3e04b5 100644 --- a/usage-guides/historical-events.md +++ b/usage-guides/historical-events.md @@ -150,9 +150,9 @@ You can pull blockchain transaction events and events that come from exchanges. ![Repull transactions](/images/repull_transactions.png) -If any missed transactions are found, you'll see a notification indicating how many new transactions were discovered. +If any missed transactions are found, you'll see a notification indicating how many new transactions were discovered. You can click the action in the notification to view the pulled transactions. -![Repulled transactions result](/images/repull_transactions2.png) +![Repulled transactions result](/images/repull_transactions_notification.png) After the transactions are pulled, blockchain transactions need to be decoded, while events from exchanges will appear directly. For blockchain transactions, you can either: @@ -198,7 +198,7 @@ You can perform two actions: ## Add / edit events -There are 6 types of events in rotki: +There are 8 types of events in rotki: :::tabs == History Event @@ -261,7 +261,7 @@ You can add multiple `spend` and `receive` assets. ![Swap event form](/images/events_swap_event_form.png) ::: -For history event, and EVM history event, if any event was not decoded the way you expected it to be, you can always customize events using the settings described above or file a bug report on our github repository / in our discord server. The customizations that you make also affect how events are processed in accounting. +For history event, and EVM history event, if any event was not decoded the way you expected it to be, you can always customize events using the settings described above or file a bug report via the in-app Report Issue dialog (Help & Support > Report Issue), on our github repository, or in our discord server. The customizations that you make also affect how events are processed in accounting. ### Common customization @@ -285,3 +285,77 @@ These are some common customizations you may want to do, based on the issue: Events that have been modified will appear marked in the UI. ![Customized events in the UI](/images/customized_events.png) + +## Resolving Issues + +rotki can detect certain issues with your history events that may affect accounting accuracy. When issues are found, you will see a warning button with a badge showing the total number of issues at the top of the History Events page. + +![Issue check button](/images/history_events_issue_check_button.png) + +Clicking the button opens a menu where you can check for specific types of issues. Currently, rotki detects the following: + +### Unmatched Asset Movements + +An unmatched asset movement is an exchange deposit or withdrawal that hasn't been linked to its corresponding on-chain blockchain transaction. For example: + +- You **withdraw** from an exchange, but there is no matching **receive** event on a tracked blockchain address. +- You **deposit** to an exchange, but there is no matching **send** event from a tracked blockchain address. + +This can happen when: + +- The blockchain address involved is not tracked in rotki. +- The corresponding on-chain event was missed or not yet synced. +- There's a significant time or amount difference between the exchange record and the on-chain event. +- The exchange doesn't provide enough information (such as the blockchain or transaction hash) to automatically link the movement to the corresponding on-chain event, even if that event already exists in your history. + +#### How to resolve + +![Match asset movements dialog](/images/history_events_unmatched_asset_movements.png) + +You have several options to resolve unmatched asset movements: + +1. **Auto Match** - Click the `Trigger automatic matching` button to let rotki automatically match movements with corresponding on-chain events based on amount, asset, and timestamp. You can configure the amount tolerance and time range settings before triggering auto match. + +2. **Find Match** (manual) - Click `Find Match` on a specific movement to search for potential matches. You can adjust the search criteria: + - **Time range** (in hours) - Maximum allowed time difference between the movement and the on-chain event. + - **Amount tolerance** (in %) - Maximum allowed percentage difference between the movement amount and the on-chain event amount. + - **Only show same assets** - Filter results to the same asset. + + Potential matches are displayed in a list, with **recommended** matches highlighted. Select one or more matching events and click `Confirm Match`. A single asset movement can be linked to multiple on-chain events, which is useful when the on-chain side was split across multiple transactions. + + ![Potential matches dialog](/images/history_events_unmatched_asset_movements_potential.png) + +3. **Ignore** - If a movement has no corresponding on-chain event (e.g., fiat currency deposits/withdrawals), click `Ignore` to mark it as having no match. Ignored movements are moved to the **Ignored** tab and can be restored later. + +4. **Ignore All Fiat** - Quickly ignore all fiat currency movements at once, since fiat movements don't have blockchain transactions. + +> [!TIP] +> You can pin the matching dialog to the side of the History Events page, allowing you to browse events while working on matches side-by-side. + +### Duplicate Custom Events + +Duplicate custom events occur when you have customized (manually edited) a blockchain event, and a non-customized version of the same event also exists. This typically happens when: + +- A transaction is re-decoded after you had already customized one of its events, creating both the original decoded event and your customized version. +- Events are re-pulled, generating new events alongside your existing customized ones. + +Duplicates can cause incorrect accounting since the same action may be counted more than once. + +rotki categorizes duplicates into two types: + +- **Auto-fixable** - The customized and non-customized events are exact matches (only differing by sequence index). These can be safely auto-fixed. +- **Manual review** - The events share the same asset and direction but have other differences. These require manual inspection before resolving. + +When duplicates are detected, an alert banner will appear showing the count for each category, with a `View` button to navigate to the affected events. + +![Duplicate custom events alert](/images/history_events_duplicate_custom_events.png) + +#### How to resolve + +1. **Auto Fix All** - For auto-fixable duplicates, click `Auto Fix All` to remove all the duplicate non-customized events at once, keeping your customized versions. + +2. **Individual Fix** - Click the `Fix` button on a specific duplicate event to remove just that one duplicate. + +3. **Manual review** - For duplicates that need manual review, click `View` to see the affected events in the history view. Inspect the events and manually resolve them by editing or deleting the incorrect one. + + ![Duplicate events in history view](/images/history_events_duplicate_custom_events_view.png)