Skip to content

Commit

Permalink
Merge pull request #274 from selfcustody/main
Browse files Browse the repository at this point in the history
update docs
  • Loading branch information
odudex authored Oct 21, 2023
2 parents 8ad214c + 26e2adb commit 841dff6
Show file tree
Hide file tree
Showing 18 changed files with 298 additions and 275 deletions.
15 changes: 15 additions & 0 deletions docs/development.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Navigation

Mind map representation of menus under development.

Click on the circle on the right side of each node to expand and explore the mind map.

Activate full screen for better visualization on top-right menu.

## Login Menu

<iframe width="1000" height="800" src="https://gitmind.com/app/docs/mdx0u434"; allowfullscreen></iframe>

## Home Menu (Loaded Wallet)

<iframe width="1000" height="800" src="https://gitmind.com/app/docs/maz68rnh"; allowfullscreen></iframe>
5 changes: 3 additions & 2 deletions docs/faq.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ For mnemonics, Krux recognizes:
1. BIP-39 Plaintext (Used by Krux and [https://iancoleman.io/bip39/](https://iancoleman.io/bip39/))
2. SeedSigner [SeedQR and CompactSeedQR](https://github.com/SeedSigner/seedsigner/blob/dev/docs/seed_qr/README.md) Formats
3. [UR Type `crypto-bip39`](https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-006-urtypes.md)
4. Encrypted QR Code (Format created by Krux, [more info here](../encrypted-qr-codes))
4. Encrypted QR Code (Format created by Krux, [more info here](getting-started/features/encrypted-mnemonics.md))

For loading wallets, Krux recognizes:

Expand Down Expand Up @@ -69,6 +69,7 @@ Some Amigo screens have inverted x coordinates while others don’t.
If after flashing `maixpy_amigo_tft` to your device you notice that the buttons on keypad input screens appear to be in the wrong order, please try flashing `maixpy_amigo_ips` instead (or vice versa) which should correct the issue.

## Why isn't Krux detecting my microSD card or presenting an error?
Starting from version 23.09.0, Krux supports SD card hot plugging. If you are using older versions, it may only detect the SD card at boot, so make sure Krux is turned off when inserting the microSD into it. Also check if the SD card is in MBR/DOS FAT32 format, you can also test the card a few times using Krux [Tools>Check SD Card](../getting-started/tools/#check-sd-card) to see if it worked.
Starting from version 23.09.0, Krux supports SD card hot plugging. If you are using older versions, it may only detect the SD card at boot, so make sure Krux is turned off when inserting the microSD into it. To test the card compatibility use Krux [Tools>Check SD Card](getting-started/features/tools.md/#check-sd-card).
Make sure the SD card is using MBR/DOS partition table and FAT32 format.

Here is some [supported microSD cards](https://github.com/m5stack/m5-docs/blob/master/docs/en/core/m5stickv.md#tf-cardmicrosd-test), and here is the MaixPy FAQ explaining [Why my micro SD card cannot be read](https://wiki.sipeed.com/soft/maixpy/en/others/maixpy_faq.html#Micro-SD-card-cannot-be-read).
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
When you export a mnemonic, encrypted mnemonic or a generic text QR code, alternative visualization modes will be available. To change modes swipe sideways, or press `Page` buttons if the device doesn't have touchscreen.

### Standard Mode
<img src="../../img/maixpy_m5stickv/standard-qr-code-125.png" align="right">
<img src="../../img/maixpy_amigo_tft/standard-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/standard-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/standard-qr-code-150.png" align="right">

This mode is optimized for scanning, the raw QR code will be displayed

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

### Lines Mode
<img src="../../img/maixpy_m5stickv/lines-qr-code-125.png" align="right">
<img src="../../img/maixpy_amigo_tft/lines-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/lines-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/lines-qr-code-150.png" align="right">

If you are good at transcribing things like handwritten text, with this mode one QR code line will be highlighted at a time. Press `Enter` to highlight the next line.

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

### Zoomed Regions Mode
<img src="../../img/maixpy_m5stickv/zoomed-qr-code-125.png" align="right">
<img src="../../img/maixpy_amigo_tft/zoomed-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/zoomed-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/zoomed-qr-code-150.png" align="right">

QR codes will be split into regions, of 5x5 or 7x7 "blocks". One QR code region will be shown at a time. Press `Enter` to display the next region.

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

### Highlighted Regions Mode
<img src="../../img/maixpy_m5stickv/regions-qr-code-125.png" align="right">
<img src="../../img/maixpy_amigo_tft/regions-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/regions-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/regions-qr-code-150.png" align="right">

QR codes will be split into regions, of 5x5 or 7x7 "blocks". One QR code region will be highlighted at a time. Press `Enter` to highlight the next region.

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

### Grided Mode
<img src="../../img/maixpy_m5stickv/grided-qr-code-125.png" align="right">
<img src="../../img/maixpy_amigo_tft/grided-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/grided-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/grided-qr-code-150.png" align="right">

Grids will be added to a standard QR code. In a dark room, if you place a sheet of paper over the device's screen, you'll notice QR code will be visible and it will be possible to copy it directly from above. Be careful to don't damage your screen with pen and markers, use an insulating plastic tape or film to protect the device if you use this method.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
## Introduction

There are many possible security layers one could add to protect a wallet’s private key, adding a passphrase to the mnemonic is the most common. To encrypt a mnemonic would have similar use case as the passphrase, but, depending on how it is done, the user experience could be different. The main difference from passphrases to Krux’s encrypted mnemonic implementation is that when users type the wrong key, instead of loading a different wallet, encrypted mnemonic QR codes will return an error. This is not considered an advantage, but a difference, that may be desired or not. The implementation also has the convenience of storing a mnemonic ID on the QR code. Mnemonic encryption, with its own key, can be used together with passphrases as an extra security layer.
There are many possible security layers one could add to protect a wallet’s private key, adding a passphrase to the mnemonic is the most common. To encrypt a mnemonic would have similar use case as the passphrase, but, depending on how it is done, the user experience could be different. The main difference from passphrases to Krux’s encrypted mnemonic implementation is that when users type the wrong key, instead of loading a different wallet, encrypted mnemonics will return an error. This is not considered an advantage, but a difference, that may be desired or not. The implementation also has the convenience of storing a mnemonic ID together with stored or QR code encrypted mnemonics. Mnemonic encryption, with its own key, can be used together with passphrases as an extra security layer.

## QR Data and Parsing
## Encrypted QR Codes Data and Parsing
In search of efficiency and smaller QR codes, all data is converted to bytes and organized like a Bitcoin transaction, with variable and fixed length fields. The following data is present on the QR code:

| ID length (1) | ID (2) | Version (3) | Key Derivations (4) | IV (5) | Encrypted Mnemonic (6) | Validation Block (7) |
Expand All @@ -21,4 +21,5 @@ In search of efficiency and smaller QR codes, all data is converted to bytes and
* **(6)** Encrypted Mnemonic (16 Bytes - 12 words, 32 Bytes - 24 words): Mnemonic ciphertext.
* **(7)** Validation block (16 Bytes): Currently using first 16 bytes of sha256 of the mnemonic bytes as checksum, could be used in future to store AES-AEX validation tag.


## Considerations
Storage of encrypted mnemonics on the device or SD cards are meant for convenience only and should not be considered a form of backup. Always make a physical backup of your keys that is independent from electronic devices and test recovering your wallet from this backup before you send funds to it.
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
Krux has the ability to print all QR codes it generates, including mnemonic, xpub, wallet backup, and signed PSBT, via a locally-connected thermal printer over its serial port. Consult the [part list](../../parts) page for supported printers.
Krux has the ability to print all QR codes it generates, including mnemonic, xpub, wallet backup, and signed PSBT, via a locally-connected thermal printer over its serial port. Consult the [part list](../../parts.md) page for supported printers.

<img src="../../img/maixpy_amigo_tft/print-qr-printing-150.png">
<img src="../../img/maixpy_m5stickv/print-qr-printing-125.png">
<img src="../../../img/maixpy_amigo_tft/print-qr-printing-150.png">
<img src="../../../img/maixpy_m5stickv/print-qr-printing-125.png">

<video width="430" height="300" controls>
<source src="../../img/printing-qr.mp4" type="video/mp4"></source>
<source src="../../../img/printing-qr.mp4" type="video/mp4"></source>
</video>

<video width="400" height="300" controls>
<source src="../../img/scanning-printed-qr.mp4" type="video/mp4"></source>
<source src="../../../img/scanning-printed-qr.mp4" type="video/mp4"></source>
</video>


<img src="../../img/maixpy_m5stickv/print-qr-prompt-125.png" align="right">
<img src="../../img/maixpy_amigo_tft/print-qr-prompt-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/print-qr-prompt-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/print-qr-prompt-150.png" align="right">

Once connected and powered on, all screens that display a QR code will begin showing a follow-up screen asking if you want to `Print to QR?`.

Expand Down
6 changes: 6 additions & 0 deletions docs/getting-started/features/sd-card-update.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
### Upgrade via microSD card
Once you've installed the initial firmware on your device via USB, you can either continue updating the device by flashing or you can perform upgrades via microSD card to keep the device airgapped.

To perform an upgrade, simply copy the `firmware.bin` and `firmware.bin.sig` files to the root of a FAT-32(MBR) formatted microSD card, insert the card into your device, and reboot the device. If it detects the new firmware file and is able to verify the signature, you will be prompted to install it.

Once installation is complete, eject the microSD card and delete the firmware files before reinserting and rebooting.
36 changes: 36 additions & 0 deletions docs/getting-started/features/tools.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
Here are some useful tools that are available as soon as Krux starts! These are offered as a complement to managing your device and wallets.

<img src="../../../img/maixpy_amigo_tft/tools-options-150.png">
<img src="../../../img/maixpy_m5stickv/tools-options-125.png">

### Check SD Card
<img src="../../../img/maixpy_m5stickv/check-sd-card-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/check-sd-card-150.png" align="right">

You can check if a SD card can be detected and read by your device and explore its content.

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

### Delete Mnemonic
<img src="../../../img/maixpy_m5stickv/delete-mnemonic-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/delete-mnemonic-150.png" align="right">

Delete any stored encrypted mnemonic, on device's internal memory or SD card.

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

### Print Test QR
<img src="../../../img/maixpy_m5stickv/print-test-qr-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/print-test-qr-150.png" align="right">

Quickly print a test QR code to check and optimize your printer setup.

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

### Create QR Code
<img src="../../../img/maixpy_m5stickv/create-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/create-qr-code-150.png" align="right">

Enter a text input to create, print or transcript a QR code that can be later used as an encryption key or as a passphrase.

<div style="clear: both"></div>
2 changes: 1 addition & 1 deletion docs/getting-started/index.en.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Krux is open-source Bitcoin signing firmware for devices with the K210 chipset.

Signing operations in Krux are done offline via QR code or via SD card. You can create/load your BIP-39 mnemonic, or import a wallet descriptor, and sign transactions all without having to plug the device into your computer (except to initially flash the firmware). It reads QR codes with its camera and outputs QR codes to its screen, or to paper via an optional [thermal printer attachment](../getting-started/printing.en.md).
Signing operations in Krux are done offline via QR code or via SD card. You can create/load your BIP-39 mnemonic, or import a wallet descriptor, and sign transactions all without having to plug the device into your computer (except to initially flash the firmware). It reads QR codes with its camera and outputs QR codes to its screen, or to paper via an optional [thermal printer attachment](../getting-started/features/printing.en.md).

Krux does not come with its own desktop wallet software. Instead, you can use Krux with third-party wallet coordinators to create/manage wallets, and send transactions from your online computer or mobile device while keeping your keys offline. Krux was built to be vendor agnostic and works with many popular wallet coordinators, including:

Expand Down
4 changes: 2 additions & 2 deletions docs/getting-started/installing/from-gui.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Keep in mind that this is software under development in the alpha stage and may

### Requirements
#### Hardware
You will need a K210-based device such as the M5StickV, Maix Amigo, Maix Dock, or Maix Bit and a USB-C cable to continue. Consult the [part list](../../parts) for more information.
You will need a K210-based device such as the M5StickV, Maix Amigo, Maix Dock, or Maix Bit and a USB-C cable to continue. Consult the [part list](../../parts.md) for more information.

#### Download the latest release

Expand Down Expand Up @@ -86,7 +86,7 @@ Clicking on the dropdown arrow brings up a list of officially supported K210 dev

Now we will select which firmware we want to flash, i.e. the [latest official release](https://github.com/selfcustody/krux/releases) or the [test binaries](https://github.com/odudex/krux_binaries).

The difference between the two releases is that, while in the first one we can [verify its integrity and authenticity](/krux/getting-started/installing/#verify-the-files), in the second one we will have no means of verifying it. However, the test binaries will contain the newest features that are being developed and discussed by the kruxer community.
The difference between the two releases is that, while in the first one we can [verify its integrity and authenticity](from-pre-built-release.md/#verify-the-files), in the second one we will have no means of verifying it. However, the test binaries will contain the newest features that are being developed and discussed by the kruxer community.


##### Official release
Expand Down
6 changes: 1 addition & 5 deletions docs/getting-started/installing/from-pre-built-release.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,4 @@ If after flashing `maixpy_amigo_tft` to your device you notice that the buttons
Prefer a different language? Krux has support for multiple languages. Once at the start screen, go to `Settings`, followed by `Locale`, and select the locale you wish to use. If you have a microSD card inserted into the device, your preference will be automatically saved to a `settings.json` file at the root of the card.

### Upgrade via microSD card
Once you've installed the initial firmware on your device via USB, you can either continue updating the device by flashing or you can perform upgrades via microSD card to keep the device airgapped.

To perform an upgrade, simply copy the `firmware.bin` and `firmware.bin.sig` files to the root of a FAT-32 formatted microSD card, insert the card into your device, and reboot the device. If it detects the new firmware file and is able to verify the signature, you will be prompted to install it.

Once installation is complete, eject the microSD card and delete the firmware files before reinserting and rebooting.
Once you've installed the initial firmware on your device via USB, you can either continue updating the device by flashing or you can perform upgrades [via microSD](../features/sd-card-update.md) card to keep the device airgapped.
2 changes: 1 addition & 1 deletion docs/getting-started/installing/index.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ This page summarizes how to install Krux from four different ways.

### Requirements

In any form, there is a basic requirement for all of them: You will need a K210-based device such as the M5StickV, Maix Amigo, Maix Dock, or Maix Bit and a USB-C cable to continue. Consult the [part list](../../parts) for more information.
In any form, there is a basic requirement for all of them: You will need a K210-based device such as the M5StickV, Maix Amigo, Maix Dock, or Maix Bit and a USB-C cable to continue. Consult the [part list](../../parts.md) for more information.

After the first firmware install, if you wish to perform further airgapped updates or use other features that uses the SD card, you will also need a [supported microSD card](https://github.com/m5stack/m5-docs/blob/master/docs/en/core/m5stickv.md#tf-cardmicrosd-test). We cannot guarantee that a microSD card is compatible and will work in your device; you'll need to test it on the device to be sure.
36 changes: 0 additions & 36 deletions docs/getting-started/tools.en.md

This file was deleted.

Loading

0 comments on commit 841dff6

Please sign in to comment.