diff --git a/public/images/add_btc_account.webp b/public/images/add_btc_account.webp new file mode 100644 index 0000000..d4687e2 Binary files /dev/null and b/public/images/add_btc_account.webp differ diff --git a/public/images/add_xpub_key.png b/public/images/add_xpub_key.png deleted file mode 100644 index b88644a..0000000 Binary files a/public/images/add_xpub_key.png and /dev/null differ diff --git a/public/images/event_price_edit_button.webp b/public/images/event_price_edit_button.webp new file mode 100644 index 0000000..8155420 Binary files /dev/null and b/public/images/event_price_edit_button.webp differ diff --git a/public/images/event_price_edit_dialog.webp b/public/images/event_price_edit_dialog.webp new file mode 100644 index 0000000..458162e Binary files /dev/null and b/public/images/event_price_edit_dialog.webp differ diff --git a/public/images/oracle_prices_edit.webp b/public/images/oracle_prices_edit.webp new file mode 100644 index 0000000..041ea77 Binary files /dev/null and b/public/images/oracle_prices_edit.webp differ diff --git a/public/images/oracle_prices_list.webp b/public/images/oracle_prices_list.webp new file mode 100644 index 0000000..d0cc9fa Binary files /dev/null and b/public/images/oracle_prices_list.webp differ diff --git a/usage-guides/data-management/prices.md b/usage-guides/data-management/prices.md index f6e58ce..f247f16 100644 --- a/usage-guides/data-management/prices.md +++ b/usage-guides/data-management/prices.md @@ -1,23 +1,36 @@ --- -description: Adding custom latest and historical prices for assets that rotki cannot retrieve automatically. +description: Adding manual latest and historical prices, and editing oracle-cached prices for assets. --- -# Adding missing prices +# Managing prices -Sometimes rotki might be unable to retrieve prices for some assets. In order to always have the ability to show a price we provide two types of manual price additions in the menu `Manage Prices`: +The `Manage Prices` menu lets you add manual prices that override oracle lookups and edit prices that rotki has already fetched and cached from oracles. It is split into three sections: -- **Latest price**: Will be the price displayed when we need to display the current price of an asset. -- **Historical price**: The price used in a specific time in the past for an asset. +- **Latest Prices**: Manual prices used when the current price of an asset needs to be displayed. +- **Historic Prices**: Manual prices used at a specific time in the past. +- **Oracle Prices**: Prices that rotki fetched from an oracle (CryptoCompare, CoinGecko, DefiLlama, etc.) and cached, plus the per-asset oracle caches themselves. -![Price management](/images/price_management.png) +## Latest and historical prices -To add a new price you have to press the plus button. This will open the add form. +To add a new price, open `Latest Prices` or `Historic Prices` from the `Manage Prices` menu and press the plus button. This opens the add form where you can specify the assets, the price, and (for historical entries) the date. -![Adding a new price](/images/price_management_add.png) +After saving, the entry appears in the list. When a manual latest price is in use it is flagged in the UI with an orange icon next to the price; the tooltip reads "Manually defined price". -There you can specify the assets, the price and the date of the price. Then you can proceed to save the entry. -After saving you should be able to see the new entry. +![Edited latest price UI indicator](/images/latest_price.png) -When a latest price is used it will be visually displayed in the UI. It will show an orange icon near the price, with a tooltip: "Manually defined price". +## Oracle prices -![Edited latest price UI indicator](/images/latest_price.png) +The `Oracle Prices` page has two tabs: + +- **Prices**: Every individual price rotki has cached from a price oracle, with the asset pair, value, source, and timestamp. +- **Caches**: The per-asset historical price caches that rotki maintains so it does not have to refetch the same time series. + +![Oracle prices listing](/images/oracle_prices_list.webp) + +Each row in the **Prices** tab can be edited or deleted. Use this when you know the cached price is wrong (for example, an oracle returned a stale or incorrect value) and want to override it without adding a separate manual entry. Deleting an entry removes the cached value entirely; the next lookup will hit the oracle again. + +Click the edit icon on a row to open the edit dialog: + +![Editing an oracle price](/images/oracle_prices_edit.webp) + +Editing or deleting an oracle price entry invalidates rotki's in-memory historic price cache for that `(asset, timestamp)` pair, so any other place displaying that price (history events, balances, snapshots) updates immediately. diff --git a/usage-guides/history/events.md b/usage-guides/history/events.md index 673d0c5..275157f 100644 --- a/usage-guides/history/events.md +++ b/usage-guides/history/events.md @@ -318,6 +318,25 @@ Events that have been modified will appear marked in the UI. ![Customized events in the UI](/images/customized_events.png) +## Updating the price of an event + +The fiat value shown next to an asset on a history event row is computed from the historic price rotki has for that asset at the event timestamp. If the value looks wrong (for example, the oracle returned a bad price for that block, or no oracle has data that far back), you can override it directly from the event row without leaving the page. + +Click the asset chip on the event row to open its menu and pick the **Update price** action (the dollar icon). + +![Update price action on an event row](/images/event_price_edit_button.webp) + +This opens the price update dialog: + +![Update price dialog for a history event](/images/event_price_edit_dialog.webp) + +The dialog prefills with the price rotki currently has stored for `(asset, your main currency, event timestamp)`: + +- If a cached oracle entry exists for that timestamp, you can choose between **updating the oracle entry** (overriding the value the source returned, keeping the source attribution) or **saving a manual price** that takes precedence over the oracle. The toggle shows the actual source name (`Cryptocompare`, `CoinGecko`, `DefiLlama`, etc.). +- If nothing is cached for that timestamp, the dialog only offers the manual option. + +Saving updates the stored historic price and invalidates rotki's in-memory cache, so any other view showing that price (other history events with the same asset/timestamp, balances, snapshots, P&L reports) updates immediately. + ## 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. diff --git a/usage-guides/portfolio/accounts.md b/usage-guides/portfolio/accounts.md index 628f161..3f0e2fb 100644 --- a/usage-guides/portfolio/accounts.md +++ b/usage-guides/portfolio/accounts.md @@ -64,10 +64,12 @@ For editing, you can modify the label or the tags. ### Bitcoin Chains -There are two ways to add your Bitcoin or Bitcoin Cash addresses to rotki: +The Bitcoin and Bitcoin Cash account form has a single address field that accepts either: -1. Manual entry of individual addresses -2. Using an xpub (extended public key) for automatic address discovery +- A **plain address** (a single BTC or BCH address), or +- An **xpub** (extended public key) for automatic address discovery. + +rotki detects which one you pasted and adapts the form accordingly — you don't need to switch modes. #### What is an xpub? @@ -78,7 +80,7 @@ An xpub is a special key that lets rotki find all your wallet addresses without - Stop when it finds unused addresses - Store this information securely in your local database -#### Types of XPUB +#### Address types | Type | Common Name | Address Starts With | Description | | ----------- | ------------- | ------------------- | ----------------------------------- | @@ -87,18 +89,21 @@ An xpub is a special key that lets rotki find all your wallet addresses without | WPKH | Native Segwit | "bc1" | Most efficient for transactions | | P2TR | Taproot | "bc1p" | Newest type with enhanced privacy | -#### How to Use Your xpub +#### How to add an account + +Paste your address or xpub into the input. The form reacts as follows: -1. Check what type of addresses your wallet generates -2. Select the matching type in rotki's dropdown menu +- **Plain BTC/BCH address** — the address type is inferred from the prefix and no extra choice is needed. +- **`ypub...`** — automatically tracked as Segwit (P2SH-P2WPKH). +- **`zpub...`** — automatically tracked as Native Segwit (WPKH). +- **`xpub...`** — ambiguous (it can back any of the four wallet layouts). All four address-type buttons appear inline, with **Native Segwit** selected by default. Pick the one your wallet uses; the picker stays visible so you can correct a misclick before saving. + +![Add a Bitcoin account](/images/add_btc_account.webp) > [!INFO] Good to know > -> - If your xpub starts with "ypub" or "zpub", rotki will automatically detect the correct type > - For Ledger hardware wallet users, you can get your xpub by following [this guide](https://support.ledger.com/article/6275459128989-zd) -> - Bitcoin Cash only works with Legacy (P2PKH) and Segwit (P2SH_P2WPKH) addresses - -![Add a bitcoin account using XPUB](/images/add_xpub_key.png) +> - Bitcoin Cash only works with Legacy (P2PKH) and Segwit (P2SH-P2WPKH) addresses ### Aggregated view filtering