Skip to content

Commit

Permalink
Fix typos and grammar
Browse files Browse the repository at this point in the history
  • Loading branch information
galina-opentensor authored and rajkaramchedu committed Jul 10, 2024
1 parent 18a42fd commit 58b38ee
Showing 1 changed file with 30 additions and 30 deletions.
60 changes: 30 additions & 30 deletions docs/getting-started/wallets.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,33 @@ title: "Create Wallet"

# Create Wallet

This section describes steps to create a Bittensor wallet, regenerate keys and encrypt keys. If you are new to Bittensor wallets, see [Working with Keys](../subnets/working-with-keys.md) for an explanation of Bittensor wallet keys.
This section describes steps to create a Bittensor wallet, regenerate keys, and encrypt keys. If you are new to Bittensor wallets, see [Working with Keys](../subnets/working-with-keys.md) for an explanation of Bittensor wallet keys.

## Ways of creating wallet

You can create a Bittensor wallet either for basic uses like securely storing your TAO and receiving and sending them, or for advanced uses like creating a subnet and participating as a subnet miner or a subnet validator:
You can create a Bittensor wallet either for basic uses like securely storing your TAO and receiving and sending them or for advanced uses like creating a subnet and participating as a subnet miner or a subnet validator:

- **For basic use**: Create an external wallet account by using the [Chrome Extension for Bittensor Wallet](https://chromewebstore.google.com/detail/bittensor-wallet/bdgmdoedahdcjmpmifafdhnffjinddgc?pli=1). An external wallet account created in this way will allow you to use TAO **without installing Bittensor**. If your activities are limited to sending or receiving TAO then this is a recommended option.
- **For subnet participation**: Create a local wallet account using `btcli` command line tool on your computer. This requires that you install Bittensor on your machine. If you are interested in either creating a subnet or participating as a subnet miner or a subnet validator, then you must use this option.
- **For basic use**: Create an external wallet account by using the [Chrome Extension for Bittensor Wallet](https://chromewebstore.google.com/detail/bittensor-wallet/bdgmdoedahdcjmpmifafdhnffjinddgc?pli=1). An external wallet account created in this way will allow you to use TAO **without installing Bittensor**. If your activities are limited to sending or receiving TAO, then this is a recommended option.
- **For subnet participation**: Create a local wallet account using `btcli` command line tool on your computer. This requires that you install Bittensor on your machine. If you are interested in either creating a subnet or participating as a subnet miner or a subnet validator, then you must use this option.

## Creating a basic wallet

:::tip Suitable for non-technical users
Use this option if your activities are limited to sending and receiving TAO and you are not creating a subnet or participating as a subnet validator or a subnet miner.
:::

To create a basic wallet account use the Chrome Extension for Bittensor Wallet. Follow the below steps:
To create a basic wallet account, use the Chrome Extension for Bittensor Wallet. Follow the below steps:

1. The Wallet will first create a wallet account address in the form of a 48-hexadecimal character string that usually starts with `5`.
2. Critically, the Wallet will show you a 12-word list arranged in a specific order. You are required to keep this list of words, without changing the word order, in a safe location. This list of ordered words is called by various names such as **mnemonic** or **seed phrase**.
3. The Wallet will then prompt you for specific mnemonic words as a way of authentication.
4. Next, you will assign a name and a password to your wallet account.
5. Finally, to receive TAO from another party, you will give them your wallet account address from Step 1 (the 48-hexadecimal character string) as the destination address. Similarly, to send (transfer) TAO to another party, you will first ask them for their wallet address and send TAO to their wallet address. You can create multiple wallet accounts, each with a different name, and even a different password for each wallet account, this way.
5. Finally, to receive TAO from another party, you will give them your wallet account address from Step 1 (the 48-hexadecimal character string) as the destination address. Similarly, to send (transfer) TAO to another party, you will first ask them for their wallet address and send TAO to their wallet address. YThis way, you can create multiple wallet accounts, each with a different name and even a different password for each wallet account.

### Mnemonic

:::danger Always keep your mnemonic safe
Anyone who knows the mnemonic for your wallet account can access your TAO tokens. Hence you must always keep this mnemonic in a safe and secure place, known only to you. More important, if you lose your wallet address, you can use its mnemonic (that you stored away in safekeeping) to restore the wallet.
Anyone who knows the mnemonic for your wallet account can access your TAO tokens. Hence, you must always keep this mnemonic in a safe and secure place known only to you. More importantly, if you lose your wallet address, you can use its mnemonic (stored away in safekeeping) to restore the wallet.
:::

:::note Use Import option in Chrome Wallet Extension
Expand All @@ -50,7 +50,7 @@ After you have [installed Bittensor](installation.md), you can create a local wa

### Coldkey and hotkey

A Bittensor wallet consists of a **coldkey** and a **hotkey**. Only coldkey is created when you use the [Chrome Extension for Bittensor Wallet](https://chromewebstore.google.com/detail/bittensor-wallet/bdgmdoedahdcjmpmifafdhnffjinddgc?pli=1). This is sufficient for normal storage and sending and receiving of TAO. But to participate in a subnet, you will not only need a local coldkey but also a local hotkey.
A Bittensor wallet consists of a **coldkey** and a **hotkey**. Only coldkey is created when you use the [Chrome Extension for Bittensor Wallet](https://chromewebstore.google.com/detail/bittensor-wallet/bdgmdoedahdcjmpmifafdhnffjinddgc?pli=1). This is sufficient for normal storage and sending and receiving of TAO. However, to participate in a subnet, you will need a local coldkey and a local hotkey.

:::tip Explanation of keys
See [Working with Keys](../subnets/working-with-keys.md) for an explanation of coldkey and hotkey.
Expand Down Expand Up @@ -79,7 +79,7 @@ btcli wallet new_coldkey --wallet.name test-coldkey
You will see the following terminal output. The mnemonic is hidden for security reasons.

```text
IMPORTANT: Store this mnemonic in a secure (preferably offline place), as anyone who has possesion of this mnemonic can use it to regenerate the key and access your tokens.
IMPORTANT: Store this mnemonic in a secure (preferably offline place), as anyone who has possession of this mnemonic can use it to regenerate the key and access your tokens.
The mnemonic to the new coldkey is:
**** *** **** **** ***** **** *** **** **** **** ***** *****
You can use the mnemonic to recreate the key in case it gets lost. The command to use to regenerate the key using this mnemonic is:
Expand All @@ -92,9 +92,9 @@ Make a note of the above command option `regen_coldkey` showing how to regenerat

### Creating a hotkey using `btcli`

If you plan to validate or mine in a subnet, then you must create both a coldkey and a hotkey.
If you plan to validate or mine in a subnet, you must create both a coldkey and a hotkey.

First create a coldkey as described above in the [Creating a coldkey using `btcli`](#creating-a-coldkey-using-btcli). Then provide this coldkey as a parameter to generate a hotkey. This will pair the hotkey with the coldkey. See below.
First, create a coldkey as described above in the [Creating a coldkey using `btcli`](#creating-a-coldkey-using-btcli). Then, provide this coldkey as a parameter to generate a hotkey. This will pair the hotkey with the coldkey. See below.

Use the below command to generate the hotkey. Replace `<my_coldkey>` with the coldkey generated above, and `<my_hotkey>` with a name for your hotkey.

Expand All @@ -109,7 +109,7 @@ btcli wallet new_hotkey --wallet.name test-coldkey --wallet.hotkey test-hotkey

You will see the terminal log like below. The mnemonic is hidden for security reasons.
```text
IMPORTANT: Store this mnemonic in a secure (preferably offline place), as anyone who has possesion of this mnemonic can use it to regenerate the key and access your tokens.
IMPORTANT: Store this mnemonic in a secure (preferably offline place), as anyone who has possession of this mnemonic can use it to regenerate the key and access your tokens.
The mnemonic to the new hotkey is:
**** *** **** **** ***** **** *** **** **** **** ***** *****
You can use the mnemonic to recreate the key in case it gets lost. The command to use to regenerate the key using this mnemonic is:
Expand All @@ -121,7 +121,7 @@ Make a note of the above command option `regen_hotkey` showing how to regenerate

### Encrypting the hotkey

By default, the hotkey is not encrypted on the device whereas the coldkey is encrypted. To encrypt your hotkey, run this command:
By default, the hotkey is not encrypted on the device, whereas the coldkey is encrypted. To encrypt your hotkey, run this command:
```bash
btcli wallet new_hotkey --use_password
```
Expand Down Expand Up @@ -179,11 +179,11 @@ You will see an output like this:
```bash
tree ~/.bittensor/
/Users/docwriter/.bittensor/ # The Bittensor root directory.
└── wallets # The folder containing all Bittensor wallets.
└── wallets # The folder contains all Bittensor wallets.
└── test-coldkey # The name of the wallet.
   ├── coldkey # The password-encrypted coldkey.
   ├── coldkeypub.txt # The unencrypted version of the coldkey.
   └── hotkeys # The folder containing all this coldkey's hotkeys.
   └── hotkeys # The folder contains all this coldkey's hotkeys.
   └── test-hotkey # The unencrypted hotkey information.
```

Expand All @@ -205,8 +205,8 @@ cat coldkeypub.txt | jq
The contents of the `coldkeypub.txt` are to be interpreted as below:

- The fields `accountId` and `publicKey` contain the same value.
- The `secretPhrase` and `secretSeed` are not included in the file due to the high-security nature of the coldkey. When you create your wallet, either using Chrome extension or `btcli`, the mnemonic (`secretPhrase`) is shown only once while `secretSeed` is not shown.
- The `ss58Address` is the SS58-version of the `accountId` or `publicKey`. **Send this as your coldkey public wallet address for receiving TAO from another party.**
- The `secretPhrase` and `secretSeed` are not included in the file due to the high-security nature of the coldkey. When you create your wallet, either using the Chrome extension or `btcli`, the mnemonic (`secretPhrase`) is shown only once, while `secretSeed` is not shown.
- The `ss58Address` is the SS58-version of the `accountId` or `publicKey`. **Send this as your coldkey public wallet address to receive TAO from another party.**

:::tip Conversion between publicKey and ss58Address
Use this site [SS58.org](https://ss58.org/) to verify the conversions between `publicKey` and `ss58Address` fields.
Expand All @@ -229,8 +229,8 @@ cat hotkeys/test-hotkey | jq
The contents of the `hotkeys/test-hotkey` file are to be interpreted as below:

- The fields `accountId` and `publicKey` contain the same value, just as seen in `coldkeypub.txt`.
- The `secretPhrase` and `secretSeed` are shown because the hotkey is by default not encrypted.
- The `ss58Address` is the SS58-version of the `accountId` or `publicKey`. **Send this as your hotkey public wallet address for receiving TAO from another party.**
- The `secretPhrase` and `secretSeed` are shown because the hotkey is, by default, not encrypted.
- The `ss58Address` is the SS58-version of the `accountId` or `publicKey`. **Send this as your hotkey public wallet address to receive TAO from another party.**

## Listing all the local wallets

Expand All @@ -255,7 +255,7 @@ Use the above shown `ss58Address` field values as your public wallet addresses,
## Store your mnemonics safely

:::danger If someone has your mnemonic, they own your TAO
If you lose the password to your wallet, or if you have lost the access to the machine where the wallet is stored, you can regenerate the coldkey using the mnemonic you saved during wallet creation steps above. You can **not** retrieve the wallet with the password alone. Remember that if someone has your mnemonic, they own your TAO.
If you lose the password to your wallet, or if you have lost access to the machine where the wallet is stored, you can regenerate the coldkey using the mnemonic you saved during the wallet creation steps above. You can **not** retrieve the wallet with the password alone. Remember that if someone has your mnemonic, they own your TAO.
:::

As a reminder, if you need to regenerate your wallets, you can use the `btcli` with your mnemonic, as shown below:
Expand All @@ -275,10 +275,10 @@ import bittensor as bt
# Creating a default wallet coldkey = default, hotkey = default, path = ~/.bittensor/wallets
wallet = bt.wallet()
# Create wallet by parsing --wallet.name, --wallet.hotkey and --wallet.path from the command line.
# Create a wallet by parsing --wallet.name, --wallet.hotkey and --wallet.path from the command line.
wallet = bt.wallet( config = bt.wallet.config() )
# Create wallet by explicitly setting names of coldkey, hotkey and path.
# Create a wallet by explicitly setting the names of coldkey, hotkey, and path.
wallet = bt.wallet( name = 'my_coldkey', hotkey = 'my_first_hotkey', path = '~/path/to/wallets/dir' )
```
Expand All @@ -299,35 +299,35 @@ Creates coldkey from suri string, optionally encrypts it with the user's inputed
```python
create_hotkey_from_uri( self, uri:str, use_password: bool = False, overwrite:bool = False) -> 'Wallet'
```
Creates hotkey from suri string, optionally encrypts it with the user's inputed password.
Creates hotkey from suri string, optionally encrypts it with the user's input password.
#### new_coldkey
```python
new_coldkey( self, n_words:int = 12, use_password: bool = True, overwrite:bool = False) -> 'Wallet'
```
Creates a new coldkey, optionally encrypts it with the user's inputed password and saves to disk.
Creates a new coldkey, optionally encrypts it with the user's input password and saves it to disk.
#### create_new_coldkey
```python
create_new_coldkey( self, n_words:int = 12, use_password: bool = True, overwrite:bool = False) -> 'Wallet'
```
Creates a new coldkey, optionally encrypts it with the user's inputed password and saves to disk.
Creates a new coldkey, optionally encrypts it with the user's input password and saves it to disk.
#### new_hotkey
```python
new_hotkey( self, n_words:int = 12, use_password: bool = False, overwrite:bool = False) -> 'Wallet'
```
Creates a new hotkey, optionally encrypts it with the user's inputed password and saves to disk.
Creates a new hotkey, optionally encrypts it with the user's input password and saves it to disk.
#### create_new_hotkey
```python
create_new_hotkey( self, n_words:int = 12, use_password: bool = False, overwrite:bool = False) -> 'Wallet'
```
Creates a new hotkey, optionally encrypts it with the user's inputed password and saves to disk.
Creates a new hotkey, optionally encrypts it with the user's input password and saves it to disk.
#### regenerate_coldkeypub
Expand All @@ -341,14 +341,14 @@ Regenerates the coldkeypub from passed ss58_address or public_key and saves the
```python
regenerate_coldkey(self, use_password: bool = True, overwrite: bool = False, **kwargs) -> 'Wallet'
```
Regenerates the coldkey from passed mnemonic, seed, or json encrypts it with the user's password and saves the file.
Regenerates the coldkey from passed mnemonic, seed, or JSON encrypts it with the user's password and saves the file.
#### regenerate_hotkey
```python
regenerate_hotkey(self, use_password: bool = True, overwrite: bool = False, **kwargs) -> 'Wallet'
```
Regenerates the hotkey from passed mnemonic, seed, or json encrypts it with the user's password and saves the file.
Regenerates the hotkey from passed mnemonic, seed, or JSON encrypts it with the user's password and saves the file.
#### __str__
Expand Down Expand Up @@ -377,7 +377,7 @@ Creates coldkeypub and hotkeys if they don't exist.
```python
create(self, coldkey_use_password:bool = True, hotkey_use_password:bool = False) -> 'Wallet'
```
Similar to `create_if_non_existent`, creates coldkeypub and hotkeys if they don't exist.
Similar to `create_if_non_existent`, it creates coldkeypub and hotkeys if they don't exist.
#### recreate
```python
Expand Down

0 comments on commit 58b38ee

Please sign in to comment.