Skip to content

Commit

Permalink
docs update: main features
Browse files Browse the repository at this point in the history
  • Loading branch information
odudex committed Jul 8, 2024
1 parent 85104fa commit 004eff6
Show file tree
Hide file tree
Showing 12 changed files with 94 additions and 49 deletions.
5 changes: 4 additions & 1 deletion docs/getting-started/usage/loading-a-mnemonic.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,10 @@ It is also possible to chang default settings for `Network` and `Single/Multisig

#### Passphrase

You can optionally choose to type or scan a BIP-39 passphrase. When typing, swipe left :material-gesture-swipe-left: or right :material-gesture-swipe-right: to change keypads if your device has a touchscreen. For scanning, you can also create a QR code from your offline passphrase in [Tools](../features/tools.md/#create-qr-code).
<img src="../../../img/maixpy_m5stickv/passphrase-load-options-125.png" align="right">
<img src="../../../img/maixpy_amigo/passphrase-load-options-150.png" align="right">

You can type or scan a BIP-39 passphrase. When typing, swipe left :material-gesture-swipe-left: or right :material-gesture-swipe-right: to change keypads if your device has a touchscreen. For scanning, you can also create a QR code from your offline passphrase in [Tools](../features/tools.md/#create-qr-code).

<div style="clear: both"></div>

Expand Down
71 changes: 63 additions & 8 deletions docs/getting-started/usage/navigating-the-main-menu.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@ Words are converted to their BIP-39 numeric indexes, those numbers are then conc

This option converts the encrypted mnemonic into a QR code. Enter an encryption key and, optionally, a custom ID. When you scan this QR code through "Load Mnemonic" -> "Via Camera" -> "QR Code," you will be prompted to enter the decryption key to load the mnemonic stored in it. Like any QR code, it can be printed if a thermal printer driver is set up.

See this page to find out more about: [Krux Mnemonics Encryption](../../getting-started/features/encrypted-mnemonics.md).

<div style="clear: both"></div>

#### Encrypted
Expand All @@ -62,6 +60,8 @@ For convenience, you may choose to store the encrypted mnemonic on flash memory

When using any of the encryption methods, you will be prompted to enter an encryption key. This key can be provided in text or QR code format. Additionally, you have the option to set a custom ID for easier management of your mnemonics. If a custom key is not specified, the device's current loaded wallet fingerprint will be used as the ID.

See this page to find out more about: [Krux Mnemonics Encryption](../../getting-started/features/encrypted-mnemonics.md).


- **Store on Flash**

Expand Down Expand Up @@ -114,7 +114,7 @@ This metal backup format represents the BIP-39 mnemonic word's numbers (1-2048)

### Extended Public Key

A menu will be presented with options to display your master extended public key (xPub) as text and as a QR code. Depending on whether a single-sig or multisig wallet was loaded, the options shown will be xPub, zPub, or ZPub. When displayed as text, the extended public key can be stored on an SD card if available. If you choose to export a QR code, you can not only scan it but also save it as an image on an SD card or print it if a thermal printer is attached.
A menu will be presented with options to display your master extended public key (xPub) as text and as a QR code. Depending on the script type or whether a single-sig or multisig wallet was loaded, the options shown will be xPub, yPub, zPub, or ZPub. When displayed as text, the extended public key can be stored on an SD card if available. If you choose to export a QR code, you can not only scan it but also save it as an image on an SD card or print it if a thermal printer is attached.

<img src="../../../img/maixpy_m5stickv/extended-public-key-menu-125.png" align="bottom">
<img src="../../../img/maixpy_m5stickv/extended-public-key-wsh-xpub-text-125.png" align="bottom">
Expand All @@ -123,22 +123,77 @@ A menu will be presented with options to display your master extended public key
<img src="../../../img/maixpy_amigo/extended-public-key-wsh-xpub-text-150.png" align="bottom">
<img src="../../../img/maixpy_amigo/extended-public-key-wsh-xpub-qr-150.png" align="bottom">

All QR codes will contain [key origin information in key expressions](https://github.com/bitcoin/bips/blob/master/bip-0380.mediawiki#Key_Expressions). If your coordinator cannot parse this information, it will not be capable of importing the wallet's fingerprint. As a result, Krux will not be able to sign transactions created by it unless you manually add the fingerprint so that it can be used to create Krux compatible PSBTs.
All QR codes will contain [key origin information in key expressions](https://github.com/bitcoin/bips/blob/master/bip-0380.mediawiki#Key_Expressions). If your coordinator cannot parse this information, it will not be capable of importing the wallet's fingerprint. As a result, Krux will not perform important verifications when signing transactions created by it unless you manually add the fingerprint so that it can be used to create Krux-compatible PSBTs.

Always prefer to import extended public keys directly from Krux when setting up a coordinator instead of copying it (or parts of it) from other sources.

<div style="clear: both"></div>

### Wallet Descriptor
### Wallet
Here you can load view and save wallet descriptors, add or change passphrases, customize wallet's attributes, generate and load a BIP85 child mnemonics.

#### Wallet Descriptor

A Bitcoin Wallet Output Descriptor defines a set of addresses in a wallet. It includes the following information:

- Script Type: Specifies the type of script (e.g., P2PKH, P2SH, P2WPKH).

When you select this option for the first time, you will be prompted to load a wallet. The camera will activate, and you will need to scan a wallet backup QR code generated by your wallet coordinator software. If the scan is successful, a preview of the wallet will be displayed for confirmation. If you abort the scan, you can alternatively load the wallet descriptor from an SD card.
- Derivation Path: Defines the path used to derive keys.

- Public Keys or Extended Public Keys: Includes xPub, yPub, zPub.

Output descriptors standardize how wallets generate addresses, ensuring compatibility and security. They help wallets and other software understand how to derive and verify the addresses used in transactions.

For multisig wallets, it is essential to load a descriptor to check addresses and perform full PSBT verification. For single-sig wallets, loading a descriptor is optional and serves as a redundancy check of the coordinator's wallet attributes.

When you select the "Wallet Descriptor" option for the first time, you will be prompted to load a wallet descriptor via QR code or SD card. After loading, a preview of the wallet attributes will be displayed for confirmation.

<img src="../../../img/maixpy_m5stickv/wallet-wsh-load-prompt-fingerprints-125.png" align="top">
<img src="../../../img/maixpy_m5stickv/wallet-wsh-load-prompt-xpubs-125.png" align="top">
<img src="../../../img/maixpy_amigo/wallet-wsh-load-prompt-fingerprints-150.png" align="top">
<img src="../../../img/maixpy_amigo/wallet-wsh-load-prompt-xpubs-150.png" align="top">

If you access this option again after having loaded your wallet, you will see the wallet's name, fingerprints and the abbreviated XPUBs of all cosigners, along with a QR code containing the exact data that was initially loaded. If an SD card is inserted, you can save the descriptor to it. Additionally, if you have a thermal printer attached, you can print this QR code.
If you access the "Wallet Descriptor" option again after loading your wallet, you will see the wallet's name, fingerprints, and the abbreviated XPUBs of all cosigners, along with a QR code containing the exact data that was initially loaded. If an SD card is inserted, you can save the descriptor to it for later use without the assistance of a coordinator. Additionally, if you have a thermal printer attached, you can print this QR code.

Krux also allows you to verify a descriptor's receive and change addresses without the need to load private keys. Simply turn on your Krux, access "Tools" -> "Descriptor Addresses," and load a trusted descriptor from a QR code or SD card.

Please note that if you customize the wallet parameters or restart the device, the descriptor will be unloaded, and you may need to load it again to check addresses.

<div style="clear: both"></div>

#### Passphrase

<img src="../../../img/maixpy_m5stickv/passphrase-load-options-125.png" align="right">
<img src="../../../img/maixpy_amigo/passphrase-load-options-150.png" align="right">

If you forgot to load a passphrase while loading your wallet, or if you use multiple passphrases with the same mnemonic, you can add, replace, or remove a passphrase here. Simply choose between typing or scanning it.

To remove a passphrase, select "Type BIP39 Passphrase," leave the field blank, and press "Go."

Don't forget to verify the resulting fingerprint in the status bar to ensure you've loaded the correct key.

<div style="clear: both"></div>

#### Customize
<img src="../../../img/maixpy_m5stickv/wallet-customization-options-125.png" align="right">
<img src="../../../img/maixpy_amigo/wallet-customization-options-150.png" align="right">

Here you are presented to the exact same customization options you have while loading a key and wallet. You can change the Network, Single/Multisig, Script Type and account. [More about wallet attributes](./loading-a-mnemonic.md/#attributes)

<div style="clear: both"></div>

#### BIP85

Bitcoin BIP85, also known as the Deterministic Entropy From BIP32 Keychains, allows for the generation of deterministic entropy using a BIP32 master key. This entropy can then be used to create various cryptographic keys and mnemonics (e.g., BIP39 seed phrases). BIP85 ensures that all derived keys and mnemonics are deterministic and reproducible, meaning they can be recreated from the same master key. This feature is useful for securely managing multiple child keys from a single master key without the need to store each one separately.

<img src="../../../img/maixpy_amigo/bip85-child-index-150.png" align="bottom">
<img src="../../../img/maixpy_amigo/bip85-load-child-150.png" align="bottom">
<img src="../../../img/maixpy_m5stickv/bip85-child-index-125.png" align="bottom">
<img src="../../../img/maixpy_m5stickv/bip85-load-child-125.png" align="bottom">

Choose between a 12 or 24 words child then type the desired index to export a child mnemonic. After being presented to the new mnemonic, you can choose to load and use it right away.

Please note that once a wallet is loaded, it cannot be changed. To load a different wallet, you will need to restart the device and re-enter your mnemonic.
Please note passphrases will be removed when loading a BIP856 child.

<div style="clear: both"></div>

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions simulator/generate-device-screenshots.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ poetry run python simulator.py --sequence sequences/extended-public-key-wpkh.txt
poetry run python simulator.py --sequence sequences/extended-public-key-wsh.txt --device $device
poetry run python simulator.py --sequence sequences/wallet-descriptor-wsh.txt --device $device
poetry run python simulator.py --sequence sequences/wallet-descriptor-wpkh.txt --device $device
poetry run python simulator.py --sequence sequences/bip85.txt --device $device
poetry run python simulator.py --sequence sequences/scan-address.txt --device $device
poetry run python simulator.py --sequence sequences/list-address.txt --device $device
poetry run python simulator.py --sequence sequences/sign-psbt.txt --sd --device $device
Expand Down
16 changes: 16 additions & 0 deletions simulator/sequences/bip85.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
include _load-12-word-mnemonic.txt

# Navigate to BIP85
x2 press BUTTON_B
press BUTTON_A

x2 press BUTTON_C
x3 press BUTTON_A

screenshot bip85-child-index.png

press BUTTON_A
press BUTTON_C
press BUTTON_A

screenshot bip85-load-child.png
11 changes: 10 additions & 1 deletion simulator/sequences/load-mnemonic-sequence.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,16 @@ press BUTTON_A

screenshot load-mnemonic-seq-overview.png

# No passphrase
press BUTTON_B
press BUTTON_A

screenshot passphrase-load-options.png

# Leave passphrase
press BUTTON_C
press BUTTON_A

# Go to Customization Options
x2 press BUTTON_B
press BUTTON_A

Expand Down
39 changes: 0 additions & 39 deletions simulator/sequences/passphrase.txt

This file was deleted.

0 comments on commit 004eff6

Please sign in to comment.