diff --git a/docs/guides/observer-wallet-guide.md b/docs/guides/observer-wallet-guide.md new file mode 100644 index 0000000000..25f6933778 --- /dev/null +++ b/docs/guides/observer-wallet-guide.md @@ -0,0 +1,146 @@ +--- +slug: /guides/observer-wallet-guide +title: Observer Wallet Guide +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Intro + +### About + +An observer wallet is a wallet that cannot be used for sending transactions. In other words, it is a read-only wallet. This is a powerful concept for HODLers and farmers alike. + +Until the introduction of observer wallets, the Chia reference wallet always stored each public/private key pair locally. It was possible to maintain an offline key, for example in order to receive farmer rewards, but checking the balance required using a blockchain explorer. However, as a privacy feature, Chia wallets generate a new address each time they receive money. A blockchain explorer is therefore not always able to provide an accurate view of a wallet's history. + +With an observer wallet, you can view your wallet's history and balance without the risk of funds being stolen by someone who gains access to your computer. + +### Current Status + +The concept of an observer wallet was first introduced to Chia's reference wallet in version 2.4.0. In this version, it is possible to create an observer wallet from a command line, and use it with the GUI. The user experience will improve as more features get added, but for now the core functionality is in place. + +Eventually, we will add the ability to sign transactions using an external signer. + +## Set up + +In order to set up an observer wallet, you need to know the wallet's public key. This guide will demonstrate one technique to obtain this information. + +If you don't have an existing wallet that you would like to convert to an observer wallet, then you will need to create one. From the "Chia Wallet Keys" screen, click `ADD WALLET` and `Create New`: + +

+ observer wallet +

+
+ +You will be shown a 24-word seed phrase. Write down these words, and store them in a secure place. As with all wallets that use a seed phrase, if a malicious actor obtains these words, they can steal all of your funds. + +:::warning important + +To load an observer wallet, the seed phrase is not required. However, in order to spend the funds in an observer wallet later, the seed phrase **is** required. It is critically important to securely save this seed phrase, just as you would with a non-observer wallet. If you do not save a copy of the seed phrase, you will never be able to spend this wallet's funds. + +::: + +After securely copying the seed phrase, enter a name for the wallet and click `NEXT`: + +

+ observer wallet +

+
+ +Your new wallet will be created as a normal, non-observer wallet. At this point, you can exit the wallet (we will return to it shortly): + +

+ observer wallet +

+
+ +From the `Chia Wallet Keys` screen, click the three dots associated with your wallet, and click `Details`: + +

+ observer wallet +

+
+ +Copy the value of `Public Key`, which has been removed from the following image, but is the long string below the red circle. When you have safely stored your wallet's public key (it can be stored along with the seed phrase), click `CLOSE`: + +

+ observer wallet +

+
+ +Now that you have saved a copy of your wallet's public key, you can delete your wallet. From the `Chia Wallet Keys` screen, click the three dots associated with your wallet, and click `Delete`: + +

+ observer wallet +

+
+ +You will need to enter your wallet's fingerprint, and click `DELETE`: + +

+ observer wallet +

+
+ +Next, you can re-add your wallet using its public key. To do this, first save your wallet's public key in a text file. This file must only contain the public key, and it must be on a single line. + +Open a command prompt or terminal window, and enter the following: + +```bash +chia keys add -f -l "" +``` + +Be sure to enter the actual file path, as well as whatever name you want to call your observer wallet. The output will look something like the following: + +```bash +Added public key with fingerprint +``` + +You may also see a warning such as the following, which can be safely ignored: + +```bash +WARNING: using a farmer address which we might not have the private keys for. We searched the first 50 addresses. Consider overriding with +WARNING: using a pool address which we might not have the private keys for. We searched the first 50 addresses. Consider overriding with +``` + +Your observer wallet has been added. + +## Usage + +If your observer wallet is not immediately displayed in the GUI, click `View` --> `Reload`, and it should appear: + +

+ observer wallet +

+
+ +Your observer wallet should now be displayed. It might have a different icon than the original wallet. Click this wallet to view it: + +

+ observer wallet +

+
+ +You can now send funds to this wallet, and its balance will be updated, just like a non-observer wallet's balance. You can even redirect your farming rewards to this wallet: + +

+ observer wallet +

+
+ +By definition, observer wallets are read-only. To test this, you can try sending funds to another wallet: + +

+ observer wallet +

+
+ +This should result in an error: + +

+ observer wallet +

+
+ +When you need to spend the wallet's funds, delete the observer wallet, and re-add it using the seed phrase. diff --git a/sidebars.js b/sidebars.js index 7afbdd1f67..2d041cea50 100644 --- a/sidebars.js +++ b/sidebars.js @@ -454,6 +454,7 @@ module.exports = { 'guides/custody/prefarm-audit', ], }, + 'guides/observer-wallet-guide', 'guides/tutorials/coin-spend-rpc', 'guides/seeder-user-guide', 'guides/simulator-user-guide', diff --git a/static/img/observer_wallet/01.png b/static/img/observer_wallet/01.png new file mode 100644 index 0000000000..40cf1bf37e Binary files /dev/null and b/static/img/observer_wallet/01.png differ diff --git a/static/img/observer_wallet/02.png b/static/img/observer_wallet/02.png new file mode 100644 index 0000000000..eeebe9ecc2 Binary files /dev/null and b/static/img/observer_wallet/02.png differ diff --git a/static/img/observer_wallet/03.png b/static/img/observer_wallet/03.png new file mode 100644 index 0000000000..a0ad0c6f84 Binary files /dev/null and b/static/img/observer_wallet/03.png differ diff --git a/static/img/observer_wallet/04.png b/static/img/observer_wallet/04.png new file mode 100644 index 0000000000..578f87ef37 Binary files /dev/null and b/static/img/observer_wallet/04.png differ diff --git a/static/img/observer_wallet/05.png b/static/img/observer_wallet/05.png new file mode 100644 index 0000000000..cc2d934406 Binary files /dev/null and b/static/img/observer_wallet/05.png differ diff --git a/static/img/observer_wallet/06.png b/static/img/observer_wallet/06.png new file mode 100644 index 0000000000..2c7380618f Binary files /dev/null and b/static/img/observer_wallet/06.png differ diff --git a/static/img/observer_wallet/07.png b/static/img/observer_wallet/07.png new file mode 100644 index 0000000000..a637cb8e76 Binary files /dev/null and b/static/img/observer_wallet/07.png differ diff --git a/static/img/observer_wallet/08.png b/static/img/observer_wallet/08.png new file mode 100644 index 0000000000..feb54a1d5b Binary files /dev/null and b/static/img/observer_wallet/08.png differ diff --git a/static/img/observer_wallet/09.png b/static/img/observer_wallet/09.png new file mode 100644 index 0000000000..e7b81f44bc Binary files /dev/null and b/static/img/observer_wallet/09.png differ diff --git a/static/img/observer_wallet/10.png b/static/img/observer_wallet/10.png new file mode 100644 index 0000000000..1dfe230103 Binary files /dev/null and b/static/img/observer_wallet/10.png differ diff --git a/static/img/observer_wallet/11.png b/static/img/observer_wallet/11.png new file mode 100644 index 0000000000..b2df62abe4 Binary files /dev/null and b/static/img/observer_wallet/11.png differ diff --git a/static/img/observer_wallet/12.png b/static/img/observer_wallet/12.png new file mode 100644 index 0000000000..29b128de4a Binary files /dev/null and b/static/img/observer_wallet/12.png differ