Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added public/images/add_btc_account.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed public/images/add_xpub_key.png
Binary file not shown.
Binary file added public/images/event_price_edit_button.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/event_price_edit_dialog.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/oracle_prices_edit.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/oracle_prices_list.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 25 additions & 12 deletions usage-guides/data-management/prices.md
Original file line number Diff line number Diff line change
@@ -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.
19 changes: 19 additions & 0 deletions usage-guides/history/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
27 changes: 16 additions & 11 deletions usage-guides/portfolio/accounts.md
Original file line number Diff line number Diff line change
Expand Up @@ -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?

Expand All @@ -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 |
| ----------- | ------------- | ------------------- | ----------------------------------- |
Expand All @@ -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

Expand Down
Loading