From 0a4703acd4ac82af1394c59e42c5081967ef1f30 Mon Sep 17 00:00:00 2001 From: odudex Date: Tue, 29 Oct 2024 11:57:18 +0000 Subject: [PATCH] deploy: 94416747f4c907ced1e7ff5056bf51948fa794b2 --- .../from-gui/debian-like/index.html | 12 ++-- .../from-gui/fedora-like/index.html | 14 ++-- .../from-gui/macos-arm64/index.html | 10 +-- .../from-gui/macos-intel/index.html | 10 +-- .../from-gui/other-linux-distro/index.html | 12 ++-- .../installing/from-gui/usage/index.html | 49 +++++++++++-- .../installing/from-gui/windows/index.html | 22 +++--- img/krux-installer/airgap_done.png | Bin 0 -> 174549 bytes img/krux-installer/app_settings.png | Bin 77895 -> 77433 bytes img/krux-installer/dmg_volume.png | Bin 131689 -> 131227 bytes img/krux-installer/download_assets.png | Bin 201488 -> 201026 bytes img/krux-installer/list_drivers.png | Bin 0 -> 149343 bytes img/krux-installer/unzip.png | Bin 211159 -> 120083 bytes img/krux-installer/verification.png | Bin 370817 -> 370355 bytes img/krux-installer/warn_airgap.png | Bin 0 -> 159639 bytes search/search_index.json | 2 +- sitemap.xml | 68 +++++++++--------- sitemap.xml.gz | Bin 757 -> 757 bytes 18 files changed, 118 insertions(+), 81 deletions(-) create mode 100644 img/krux-installer/airgap_done.png create mode 100644 img/krux-installer/list_drivers.png create mode 100644 img/krux-installer/warn_airgap.png diff --git a/getting-started/installing/from-gui/debian-like/index.html b/getting-started/installing/from-gui/debian-like/index.html index fc6b8fd1..6d2acf12 100644 --- a/getting-started/installing/from-gui/debian-like/index.html +++ b/getting-started/installing/from-gui/debian-like/index.html @@ -1448,20 +1448,20 @@

Download assets

Verify the integrity

Open your terminal and type the command below:

-
sha256sum --check ./krux-installer_0.0.20-alpha-3_amd64.deb.sha256.txt
+
sha256sum --check ./krux-installer_0.0.20-beta_amd64.deb.sha256.txt
 

Verify the authenticity

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322
 

Then, to verify yourself, run this command on your terminal:

-
gpg --verify ./krux-installer_0.0.20-alpha-3_amd64.deb.sig
+
gpg --verify ./krux-installer_0.0.20-beta_amd64.deb.sig
 

⚠️ TIP: If the verification was successful, @@ -1474,7 +1474,7 @@

Install
sudo dpkg -i krux-installer_0.0.20-alpha-3_amd64.deb
+
sudo dpkg -i krux-installer_0.0.20-beta_amd64.deb
 
-

KruxInstaller downloading kboot.kfpkg

Verification

Then, to verify yourself, run this command on your terminal:

-
gpg --verify ./krux-installer_v0.0.20-alpha-3.Setup.exe.sig
+
gpg --verify ./krux-installer_v0.0.20-beta.Setup.exe.sig
 

⚠️ TIP: If the verification was successful, you may get a message similar to: Good signature from "qlrddev <qlrddev@gmail.com>"

Install

-

Execute the krux-installer_v0.0.20-alpha-3.Setup.exe. You'll be faced with a blue window saying +

Execute the krux-installer_v0.0.20-beta.Setup.exe. You'll be faced with a blue window saying "Windows protected your PC". This occurs because we don't have a code signing certificate:

Windows protected your computer

diff --git a/img/krux-installer/airgap_done.png b/img/krux-installer/airgap_done.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b0fe35d797236e33ff3712bfb25e5e0c5621a7 GIT binary patch literal 174549 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�r1;D!6SA2(*-U~ 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

%iL|rb;0zO4FBiR#N*5 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 literal 0 HcmV?d00001 diff --git a/img/krux-installer/app_settings.png b/img/krux-installer/app_settings.png index 629c7c6319d5f7d6d40c3e7be32513bbcae0aa50..b5f897647316a1cfade8ea54dcbf661ed08b1f47 100644 GIT binary patch delta 17 ZcmX^9faT{MmI=zu9~rlQWMmA}0{~JM2ipJu delta 479 zcmex)hvoPKmI=!B42;D=?oJHr&dI!FU|rf^n@I|!F!Mn%8_z9|8>y;bpKhp8 z8yV>WRp=I1=GB)ZR_NvxD??0y8RU{$oLrPyP?DLSrvNfIF)6>a#8ycOWD^`f99oi@ zhOjEH80s;g7xh6h`i6Q2`f#&>T5Uk0R{lkqsd*)dK=b|c>+ g diff --git a/img/krux-installer/dmg_volume.png b/img/krux-installer/dmg_volume.png index c90fb66a4d91e415c394f35dd22e021ccd13607d..8707f9024c58175d36fc9c443add5268d6c37ab3 100644 GIT binary patch delta 20 ccmaFa!ZEv%V}f$?N5=M#jEvJiGBQ;F09`Q%KL7v# delta 481 zcmYjN%SyvQ6uoIgOPAtCa50^N3!#}bg3uw!LW?38T8fLf5z?A!&`d%ylISKB6t`}= za#Mf6Pw^jI_Ai`CpEHX&bMCq4&Y7=qb@o>MY!slR{fkrh`8}8cK+ktCM~(wW0#~7; z?1CzgA~t*kuvKD!LvaGAQ)OM9R+iOmW2!E(x+jI-#e@ozo8a2zu5(3)QK)%$(ZJX8 zu!yAs%$(+79QxctdHBRqnp?P(P=O^)Fe)Yd(Za6NLuXOqqZ3WnbZplULS}L|qW#YK zqFvl9{J?ok3CXfd%Z{}uxhJi5yG?Y17)Dbln&}HGxR*Cs+L*g6jXHihOoEsP5ku10 z8${3C!dOmPt@%TFFj|jd=^~hjNMwbyG@Y!xMXM=U+D!tVaZmVnncXr==?2NlNK#GY g^o`fdvzDv~Yu8M&`Z&9`fBUyHuD{onNxky=4=cidod5s; diff --git a/img/krux-installer/download_assets.png b/img/krux-installer/download_assets.png index 01049ba01481f723191df68b44df96b59e000b02..f2abbd4a0e10b4b87ab00997e94780ac7126f03a 100644 GIT binary patch delta 25 ecmbQRjOWlIo(am$9~s*}GJ-JE_K%Fr@`3=3kqN8- delta 485 zcmX@Kh-bnwo(anJ42;D=?oJHr&dI!FU|z9|8>y;bpKhp8 z8yV>WRp=I1=GB)ZR_NvxD??0y8RU{$oLrPyP?DLSrvNfIF)6>a#8ycOWD^`f99oi@ zhOjEH80s;g7xh6h`i6Q2`f#&>T5Uk0R{lkqsd*)dK=b|c>+ maX-&}f0xhleV!9-W@51R_ieu~ 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%0A0?w1U=MmLkscPG#+dDYjt5FxW{~TBzXV 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 literal 0 HcmV?d00001 diff --git a/img/krux-installer/unzip.png b/img/krux-installer/unzip.png index 7f2195a6da351993abbb0656fd62db174bd5adbb..020e19db30d9877535e6eae86d3e9e2b6cc521b1 100644 GIT binary patch literal 120083 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 literal 211159 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 s!9#t0K!*Mb=5n01^I!ng9R* diff --git a/img/krux-installer/warn_airgap.png b/img/krux-installer/warn_airgap.png new file mode 100644 index 0000000000000000000000000000000000000000..4e66d7a8aeb71ca56b309ec38512e60dc74fb62a GIT binary patch literal 159639 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 BbuIt^ literal 0 HcmV?d00001 diff --git a/search/search_index.json b/search/search_index.json index 625a76da..c171da37 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"faq/","title":"FAQ","text":""},{"location":"faq/#is-krux-a-hardware-wallet","title":"Is Krux a hardware wallet?","text":"

The term \"hardware wallet\" typically refers to devices dedicated to storing private keys and signing transactions. These devices often feature specific security components like secure element chips.

Krux was initially developed as a signer, operating exclusively in amnesic mode, which requires users to load their keys each time the device is powered on. However, Krux has evolved and now offers the option to store mnemonics, similar to traditional hardware wallets. These mnemonics can be stored in the device's internal memory or on SD cards.

Krux does not include hardware secure elements. The security of stored data relies on encryption.

Note: Due to the inherent fragility of electronic components, never use your Krux device or SD card encrypted storage as your sole backup method. Always maintain a physical backup for added security.

"},{"location":"faq/#what-is-beta-version","title":"What is Beta version?","text":"

The Beta version includes the latest and most experimental features, which we occasionally share on our social media. These can be found exclusively in the test (beta) repository. Use and flash the beta firmware if you are curious about new features or want to participate in the development process by hunting bugs, providing feedback, and sharing ideas in our Telegram groups or other social media platforms.

For regular use, flash the official releases, which are signed, thoroughly tested, and well-documented.

"},{"location":"faq/#what-is-krux-android-app","title":"What is Krux Android app?","text":""},{"location":"faq/#how-can-i-find-it","title":"How can I find it?","text":"

The Krux Android app is available as an APK in the test (beta) repository. It requires Android 6.0 or above.

"},{"location":"faq/#how-can-i-install-it","title":"How can I install it?","text":"

The APK is not available on the Play Store. You can download the APK directly or transfer it to your Android device via SD card or USB cable. To install it, you may need to configure your Android device to allow installations from unknown sources.

"},{"location":"faq/#is-it-safe-to-use","title":"Is it safe to use?","text":"

The Krux Android app is designed for learning about Krux and Bitcoin air-gapped transactions. Due to the numerous potential vulnerabilities inherent in smartphones, such as the lack of control over the operating system, libraries, and hardware peripherals, the Krux app should NOT be used to manage wallets containing savings or important keys and mnemonics. For secure management of your keys, a dedicated device is recommended.

"},{"location":"","title":"Krux","text":"

Krux is an open-source firmware that transforms off-the-shelf Kendryte K210 devices, such as the Maix Amigo, M5StickV and more, into versatile bitcoin transaction signers. Beyond its core functionality, Krux is a flexible platform that can adapt to devices with different form factors, providing a suite of tools to assist with the creation and recovery of mnemonic backups, some of which include encryption options for enhanced security.

Devices like the Maix Amigo and Yahboom come ready to use, with large touchscreens that make it easy and user-friendly to operate. These devices are ideal for those looking for a plug-and-play solution. On the other hand, Krux also supports development board kits, which are perfect for DIY enthusiasts who enjoy customizing and building their own hardware setups.

Interacting seamlessly with leading coordinator wallets through QR codes, SD cards, and even thermal printers, the user-friendly firmware offers unique features to support transactions and mnemonic backups in an offline environment.

To learn more about Krux, check out Getting Started.

"},{"location":"parts/","title":"Devices and Parts List","text":""},{"location":"parts/#krux-compatible-devices","title":"Krux Compatible Devices","text":""},{"location":"parts/#comparative-table","title":"Comparative Table","text":"Device M5StickV Maix Amigo Maix Dock Maix Bit Yahboom k210 module Maix Cube WonderMV Price range US$ 50-55 US$ 50-85 US$ 27-35 US$ 32-42 US$ 45-61 US$ 34-49 US$ 58-86 Screen size / resolution 1.14\" / 135*240 3.5\" / 320*480 2.4\" / 240*320 2.4\" / 240*320 2\" / 240*320 1.3\" / 240*240 2\" / 240*320 Brightness control Device size 48*24*22mm 104*63*17mm 98*59*18mm 69*84*41mm 57*41*17mm 40*40*16mm 59*41*17mm Touchscreen Capacitive Capacitive Capacitive Camera OV7740 OV7740 rearGC0328 front GC0328 OV2640 orOV5642 OV2640 (VER:1.0) orGC2145 (VER:1.1) OV7740 GC2145 Battery 200mAh 520mAh 200mAh Requirements None None Rotary encoder 3D printed case SolderingAssembly Buttons 3D printed case SolderingAssembly None None None Warnings Camera has lens distortion Micro USB 3-Way button None

: Only OV7740, OV2640 and GC2145 have an anti-glare mode to better capture images from high brightness screens or with incident light.

: M5StickV's USB-C port lacks pull up resistors required for it to be recognized and powered by host (computer) USB-C ports. If you don't have an USB-A available, you can use a USB hub connected between your computer's USB-C and M5StickV.

: Some Amigo screens have inverted X coordinates, others display colors differently. For more info see Troubleshooting.

: Some stores ship the Maix Dock with soldered pin connectors that do not fit into the 3D printed case.

All devices feature Kendryte K210 chip: 28nm process, dual-core RISC-V 64bit @400MHz, 8 MB high-speed SRAM, DVP camera and MCU LCD interface, AES Accelerator, SHA256 Accelerator, FFT Accelerator.

"},{"location":"parts/#m5stickv","title":"M5StickV","text":"

Below is a list of some distributors where you can find this device:

  • M5Stack
  • Mouser
  • Digi-Key
  • Electromaker
  • Lee's Electronic
  • AliExpress
  • ABRA
  • Adafruit
  • Cytron
"},{"location":"parts/#maix-amigo","title":"Maix Amigo","text":"

Below is a list of some distributors where you can find this device:

  • AliExpress
  • Seeed Studio
  • Digi-Key
  • Mouser
  • Electromaker
"},{"location":"parts/#yahboom-k210-module","title":"Yahboom k210 module","text":"

It comes with a compatible 32G card, an USB card reader, one PH2.0 4Pin male-to-male connector and one PH2.0 female adapter (to connect to a thermal printer). Below is a list of some distributors where you can find this device:

  • AliExpress
  • Amazon
  • Yahboom Store
  • ETC HK Shop
"},{"location":"parts/#maix-cube","title":"Maix Cube","text":"

Below is a list of some distributors where you can find this device:

  • Seeed Studio
  • Mouser
  • Electromaker
  • Digi-Key
  • AliExpress
  • Amazon
"},{"location":"parts/#maix-dock-and-maix-bit","title":"Maix Dock and Maix Bit","text":"

For the DIYers, the Maix Dock and Maix Bit are also supported but will require sourcing the parts individually and building the device yourself.

Below are example implementations with instructions on how to recreate them:

  • https://github.com/selfcustody/DockEncoderCase
  • https://github.com/selfcustody/MaixBitCase

Below is a list of some distributors where you can find these devices:

  • Mouser
  • Electromaker
  • Digi-Key
  • AliExpress
  • Amazon
"},{"location":"parts/#other-parts","title":"Other Parts","text":""},{"location":"parts/#usb-c-or-micro-usb-charge-cable","title":"USB-C or Micro USB Charge Cable","text":"

This will come with the device. It will be necessary to power, charge the device (if it has battery) and to initially flash the firmware.

"},{"location":"parts/#optional-microsd-card","title":"(Optional) MicroSD Card","text":"

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, read the Troubleshooting for more info. Yahboom will come with a compatible 32G card. The size of the SD card isn't important; anything over a few megabytes will be plenty.

"},{"location":"parts/#optional-ttl-serial-thermal-printer","title":"(Optional) TTL Serial Thermal Printer","text":"

Warning/Disclaimer: This feature is intended for individuals with experience in electronics tinkering and soldering.

Krux has the capability to print all QR codes it generates, including those for mnemonics, xpubs, wallet backups, and signed PSBTs, using a locally-connected thermal printer via its serial port.

Many TTL serial thermal printers may be compatible, but currently, the Goojprt QR203 has the best support (except this printer only supports ASCII or Chinese characters, non-ASCII characters will be printed as Chinese). The Adafruit printer starter pack can also be a convenient option to get started, as it includes all the necessary components for printing (except the conversion cable). To ensure proper functionality, enable the printer driver in the Krux settings, set the Tx pin and baud rate value to either 19200 or 9600 (depends on the printer), as explained in this Adafruit printer tutorial. You will need to connect the device's Tx to the printer's Rx and device's ground to the printer's ground, do not connect any other pins because a wrong connection may damage your device. The printer requires a dedicated power supply, typically with an output of 5 to 9V (or 12V) and capable of supplying at least 2A. For more information, see this discussion.

"},{"location":"parts/#optional-conversion-cable-for-thermal-printer","title":"(Optional) Conversion Cable for Thermal Printer","text":"

To connect the printer to M5StickV, Amigo or Cube, you will need a grove conversion cable with a 4-pin male Grove connector on one end (to connect to the device) and 4-pin male jumpers on the other end (to connect to the printer). Check your device and printer model connection first, Yahboom comes with PH2.0 4Pin female connector; Dock and Bit doesn't have a connector. For a more reliable connection, it is recommended to cut and solder the wires of your custom cables instead of using jumpers.

"},{"location":"support/","title":"Support the Project","text":""},{"location":"support/#ways-you-can-help","title":"Ways you can help","text":""},{"location":"support/#development","title":"Development","text":"

Audit the code, file an issue, make a pull request, or do all three. :)

"},{"location":"support/#documentation","title":"Documentation","text":"

\"I'd like to see Krux help as many people as possible, and to do that, good documentation is needed. If you identify a better way to say something, please make a PR, any help is appreciated.\" - Jeff

"},{"location":"support/#translation","title":"Translation","text":"

Krux supports different languages. If you missed a language or saw an awkward translation, open an issue or make a PR! You can also make a difference by translating this documentation! For information on how to translate, see here

"},{"location":"support/#social","title":"Social","text":"

Reach out via our Telegram group or X profile (Twitter) for faster help, share ideas and join the Krux community. Help others get to know Krux.

\"I'm an engineer, not a marketer. If you like Krux, help spread the word!\" - Jeff

"},{"location":"support/#donations","title":"Donations","text":"

Krux won't ask for, receive, manage or distribute donations. You can donate directly to a Krux contributor of your choice.

"},{"location":"troubleshooting/","title":"Troubleshooting","text":""},{"location":"troubleshooting/#before-installing","title":"Before Installing","text":""},{"location":"troubleshooting/#linux-os-not-listing-serial-port","title":"Linux OS not listing serial port?","text":"

If you get the following error when trying to flash your device: Failed to find device via USB. Is it connected and powered on? Make sure your device is being detected and serial ports are being mounted by running:

ls /dev/ttyUSB*\n
Expect one port to be listed for devices like M5StickV and Maix Dock /dev/ttyUSB0, and two ports for Maix Amigo and Maix Bit /dev/ttyUSB0 /dev/ttyUSB1.

If you don't see them, your OS may not be loading the correct drivers to create the serial ports to connect to. Ubuntu has a known bug where the brltty driver \"kidnaps\" serial devices. You can solve this problem by removing it:

sudo apt-get remove brltty\n

"},{"location":"troubleshooting/#m5stickv-device-not-being-recognized-and-charged","title":"M5StickV device not being recognized and charged?","text":"

M5StickV's USB-C port lacks pull up resistors required for it to be recognized and powered by host (computer) USB-C ports. If you don't have an USB-A available, you can use a USB hub connected between your computer's USB-C and M5StickV.

"},{"location":"troubleshooting/#device-not-charging-or-being-recognized","title":"Device not charging or being recognized?","text":"

If you have a Maix Amigo, make sure you're using the USB-C port at the bottom of the device, not the one on the left side.

Different computer hosts have varying hardware, operating systems, and behaviors regarding connecting to their USB ports. Below are the expected behaviors:

USB-A:

Your device should charge and turn on when connected to a USB-A port, even if it was initially turned off. You can also turn off the device while it continues to charge. However, some hosts' USB-A ports may behave like USB-C ports, as described below.

USB-C:

  • If the device is turned off and connected to a USB-C port, it should turn on and start charging. You can turn it off again, and it will continue to charge.

  • If the device is already turned on and connected to a USB-C port, it may not charge or be recognized by the computer. In this case, turn off the device to initiate recognition and charging. Once turned off and reconnected, the device should restart, be recognized by the computer, and charging should be triggered by USB-C hosts. If your device is not charging or being recognized as expected, try using a different USB port or a different computer to determine if the issue is with the device or the host's USB port.

"},{"location":"troubleshooting/#device-randomly-freezes-or-restarts","title":"Device randomly freezes or restarts?","text":"

If the device behaves this way when connected to the computer, Windows is known to have issues with USB-C devices. If you are experiencing random crashes or even reboots and your device does not have a battery, try using a phone charger or other power source such as a power bank.

"},{"location":"troubleshooting/#after-installing","title":"After Installing","text":""},{"location":"troubleshooting/#maix-amigo-touchscreen-doesnt-work-with-v24030-but-worked-okay-with-v23091","title":"Maix Amigo touchscreen doesn't work with v24.03.0 but worked okay with v23.09.1?","text":"

We added a hardware IRQ (interrupt request) to the firmware, so when you open your Maix Amigo, you will see a switch in the middle of the device board, it must be in the upper position for the touchscreen to work with v24.03.0 and later.

"},{"location":"troubleshooting/#troubleshooting-lcd-settings-on-maix-amigo","title":"Troubleshooting LCD Settings on Maix Amigo","text":"

Buttons in the Wrong Order

If the buttons on keypad input screens appear to be in the wrong order, this might be due to inverted X coordinates. To correct this:

  1. Go to Settings > Hardware > Display.
  2. Change the value of Flipped X Coordinates.

Incorrect Colors

If the colors displayed on the interface or camera preview are incorrect, you can try the following options:

Inverted Colors

If, for example, the background color is white when it should be black, go to Settings > Hardware > Display and toggle Inverted Colors .

BGR Colors

If, for example, you are using the Orange theme, and instead of orange the colors appear bluish, toggle BGR Colors in the display settings.

LCD Type

WARNING! Only try changing this setting if you failed to fix colors with previous ones.

If adjusting BGR Colors and Inverted Colors doesn't fix the color issue, try changing the LCD Type:

  1. After changing this setting, you will be warned that the device will reboot automatically if this change does not resolve the issue (if it fails, the screen will turn black, and you'll not see anything).
  2. After proceeding with the warning, if you see a message prompting you to press the PREVIOUS (UP) button, it means that the new setting worked. Follow the instructions and press UP.
  3. If you notice menu options but the colors are still wrong, try again with different combinations of Inverted Colors and BGR Colors. This time, it is likely you will find a combination that correctly displays the colors of themes and the camera feed.

If, after the warning in step 1, the screen turns black and you don't see anything, don't panic or press any buttons. Just wait 5 seconds, and the device will automatically reboot with the previous display settings. This means you should keep the default LCD Type setting and maybe try again with Inverted Colors and BGR Colors.

If you accidentally pressed PREVIOUS (UP) and saved the wrong setting, you will have to perform a wipe to remove all stored settings to be able to see the screen working again. On Linux, go to the folder where you downloaded the Krux firmware and use Ktool to fully wipe your device:

./ktool-linux -B goE -b 1500000 -E

(Soon Krux-Installer will have a full wipe button too)

Then flash the firmware again.

./ktool-linux -B goE -b 1500000 maixpy_amigo/kboot.kfpkg

"},{"location":"troubleshooting/#device-didnt-reboot-and-screen-is-blank","title":"Device didn't reboot, and screen is blank","text":"

If the device didn't reboot after successfully flashing the firmware, and the screen is blank after turning it off and on, check if the downloaded file matches the device (this can also occur due to data corruption). Try downloading binaries again.

You can also install MaixPy IDE to help with debugging, Tools > Open Terminal > New Terminal > Connect to serial port > Select a COM port available (if it doesn't work, try another COM port). It will show the terminal and some messages, a message about an empty device or with corrupted firmware appears like: \"interesting, something's wrong, boot failed with exit code 233, go to find your vendor.\"

"},{"location":"troubleshooting/#usage","title":"Usage","text":""},{"location":"troubleshooting/#why-isnt-krux-scanning-the-qr-code","title":"Why isn't Krux scanning the QR code?","text":"

The level of detail that you see is what Krux sees. If the QR code shown on the device's screen is blurry, the camera lens of the device may be out of focus. It can be adjusted by rotating it clockwise or counter-clockwise to achieve a clearer result. The lenses usually comes with a drop of glue that makes id harder to adjust for the first time. You can use your fingertip, tweezers or small precision pliers to help, being careful to don't damage the fragile lenses.

If you have adjusted the lens already, the device may be too far away or too close to the code to read it. Start by holding the device as close to the QR code as possible and pulling away slowly until all or most of the QR code is viewable within the screen. If the code on the screen looks crisp, Krux should read it quickly and give you immediate feedback.

If you are in a dark environment, you can hold down the ENTER button of the M5StickV or Maix Amigo to turn on their LED light to potentially increase visibility. Some cameras (OV7740, OV2640 and GC2145) have an anti-glare mode to better capture images from high brightness screens or with incident light, they are present on M5StickV, Amigo, Cube and Yahboom. To enable/disable the anti-glare mode on a supported device just press the PAGE button while scanning.

"},{"location":"troubleshooting/#error-when-scanning-qr-code","title":"Error when scanning QR code?","text":"

If Krux is recognizing that it sees a QR code but is displaying an error message after reading it, the likely reason is that the QR code is not in a format that Krux works with. We have listed the supported formats below:

For BIP-39 mnemonics:

  • BIP-39 Plaintext (Used by Krux and https://iancoleman.io/bip39/)
  • SeedSigner SeedQR and CompactSeedQR Formats
  • UR Type crypto-bip39
  • Encrypted QR Code (Format created by Krux, more information here)

For Wallet output descriptor:

  • JSON with at least a descriptor key containing an output descriptor string
  • Key-value INI files with at least Format, Policy, and Derivation keys
  • UR Type crypto-output

For PSBT (Partially Signed Bitcoin Transactions):

  • Base43, Base58, and Base64-encoded bytes
  • Raw Bytes
  • UR Type crypto-psbt

Additionally, Krux recognizes animated QR codes that use either the plaintext pMofN (the Specter QR format) or binary UR encodings.

"},{"location":"troubleshooting/#computer-not-reading-qr-code-that-krux-displays","title":"Computer not reading QR code that Krux displays?","text":"

You can toggle brightness of QR codes from public keys and PSBTs by pressing PAGE button. In the future, more work will be done to support displaying lower density QR codes. If you are using an M5StickV, the small screen makes it difficult for laptop webcams to capture enough detail to parse the QR codes it displays.

For now, a workaround you can do is to take a picture or video of the QR code with a better-quality camera (such as your phone), then enlarge and display the photo or video to your webcam. Alternatively, it may be simpler to use a mobile wallet such as BlueWallet with the M5StickV since phone cameras don't seem to have issues reading the small QR codes. You can also save the PSBT on a microSD card for Krux to sign and then save the signed transaction to the microSD card to transfer the file to the computer or phone.

"},{"location":"troubleshooting/#why-does-krux-say-the-entropy-of-my-fifty-dice-rolls-does-not-contain-128-bits-of-entropy","title":"Why Does Krux Say the Entropy of My Fifty Dice Rolls Does Not Contain 128 Bits of Entropy?","text":"

Please check how entropy measurement works.

"},{"location":"troubleshooting/#why-isnt-krux-detecting-my-microsd-card-or-presenting-an-error","title":"Why isn't Krux detecting my microSD card or presenting an error?","text":"

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. Make sure the SD card is using MBR/DOS partition table and FAT32 format.

"},{"location":"uncommon-questions/","title":"Uncommon Questions","text":""},{"location":"uncommon-questions/#what-are-all-the-features-available","title":"What are all the features available?","text":"

On the official releases page you will find all the features listed, with details on the Getting Started page with a brief summary on the Navigation Overview page.

"},{"location":"uncommon-questions/#what-is-the-purpose-of-using-an-sd-card-with-the-device","title":"What is the purpose of using an SD card with the device?","text":"

SD card use is optional, but can be used to upgrade the firmware, save settings, cnc/file, QR codes, XPUBs, encrypted mnemonics, and also to save and load PSBTs, messages and wallet output descriptors.

"},{"location":"getting-started/","title":"Getting Started","text":"

Krux is open-source Bitcoin signing firmware for devices with the K210 chipset; also known as a hardware signer.

Signing operations in Krux are done offline via QR code or via SD card using the PSBT functionality. 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 install 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.

Krux runs offline, and therefore never handles the broadcasting part of the PSBT transaction. Instead, you can use Krux with third-party wallet coordinators to broadcast 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:

  • Sparrow Wallet (desktop)
  • Specter Desktop (desktop)
  • Nunchuk (mobile)
  • BlueWallet (mobile)
"},{"location":"getting-started/navigation/","title":"Navigation Overview","text":"

Below is the mind map representation of the currently menus available. Click the circle with a number (Ex.: ) to the right of each node to expand and explore. Also, enable full screen in the top right menu for better viewing .

"},{"location":"getting-started/navigation/#login-menu","title":"Login Menu","text":""},{"location":"getting-started/navigation/#home-menu-loaded-a-mnemonic","title":"Home Menu (Loaded a mnemonic)","text":""},{"location":"getting-started/settings/","title":"Settings","text":"

In the Krux home menu, there is a Settings entry. Some submenu entries have too many options to fit on one screen, swipe up or down to navigate between the screens if your device has a touchscreen. Below is a breakdown of the options you can change:

"},{"location":"getting-started/settings/#default-wallet","title":"Default Wallet","text":"

Set the default attributes for wallet loading.

"},{"location":"getting-started/settings/#multisig","title":"Multisig","text":"

Set this to true if you are more likely to use Krux for multisig setups. This way, you won't need to \"Customize\" your wallet attributes every time you load a key.

"},{"location":"getting-started/settings/#network","title":"Network","text":"

This option allows you to switch between mainnet (the default) and testnet. Testnet can be used to try out different wallet coordinators or for development.

"},{"location":"getting-started/settings/#encryption","title":"Encryption","text":"

Modify the encryption method and parameters to fit your needs. This will be used when storing encrypted mnemonics or creating encrypted QR codes. For more info see Krux Encrypted Mnemonics.

"},{"location":"getting-started/settings/#pbkdf2-iter-iterations","title":"PBKDF2 Iter. (Iterations)","text":"

When you enter the encryption key, it is not directly used to encrypt your data. In order to protect against brute force attacks, the key is derived multiple times using hashing functions. PBKDF2 (Password-Based Key Derivation Function) iterations stands for the amount of derivations that will be performed over your key prior to encrypt/decrypt your mnemonic.

If you increase this value it will make the encryption harder, at the cost of taking longer to encrypt/decrypt your mnemonics.

Values must be multiple of 10,000. This was done to save data space on QR codes.

"},{"location":"getting-started/settings/#encryption-mode","title":"Encryption Mode","text":"

Choose between well known and widely used AES (Advanced Encryption Standard) modes:

"},{"location":"getting-started/settings/#aes-ecb","title":"AES-ECB","text":"

ECB (Electronic Codebook) is a simpler method where data blocks are encrypted individually. Compared to CBC, it will be faster and simpler to encrypt, QR codes will have a lower density and will be easier to transcribe.

"},{"location":"getting-started/settings/#aes-cbc","title":"AES-CBC","text":"

CBC (Cipher-block Chaining) is considered more secure than ECB. The first data block, an initialization vector (IV), is used to add random data to the encryption. The encryption of subsequent blocks depends on the data from previous blocks, ensuring chaining.

Encryption will take longer because a snapshot will be needed to generate the IV. This IV will be stored together with the encrypted data, making encrypted QR codes denser and harder to transcribe.

"},{"location":"getting-started/settings/#hardware","title":"Hardware","text":"

Customize the parameters available for your device and change printer settings.

"},{"location":"getting-started/settings/#encoder-maix-dock-only","title":"Encoder (Maix Dock only)","text":"

If your device has a rotary encoder, you can change the debounce threshold in milliseconds. With lower values, faster movements and navigation will be allowed.

The caveat is low values can cause issues, such as double step and unexpected movements, especially with lower quality encoders. If this is the case increase the value to make navigation more stable.

"},{"location":"getting-started/settings/#display-maix-amigo-only","title":"Display (Maix Amigo only)","text":"

Some Maix Amigo screens are different, here you can customize the BGR Colors, Flipped X Coordinates, Inverted Colors and LCD Type. For more info see Troubleshooting

"},{"location":"getting-started/settings/#printer","title":"Printer","text":"

You can set up a TTL serial thermal printer or tell Krux to store a GRBL CNC instructions file on a SD card to machine QR codes.

"},{"location":"getting-started/settings/#cnc","title":"CNC","text":"

Define several machining parameters according to the desired size, material you'll use, and your CNC characteristics and capabilities.

"},{"location":"getting-started/settings/#thermal","title":"Thermal","text":"

Printers can come with different baudrates from the manufacturer. By default, Krux assumes the connected printer will have a baudrate of 9600. If yours is different, you can change it here.

Also setup the TX Pin you'll use (e.g. 35 for M5StickV and 7 for Maix Amigo) and tweak other parameters according to your printer recommendations. For most printers you will only need to connect 2 cables, the device TX to the printer RX and ground. Current uses of printing are listed here. Consult the parts list for supported printers.

"},{"location":"getting-started/settings/#driver","title":"Driver","text":"

Here you choose between Thermal, CNC or none (default). Leave this setting to \"none\" if you won't use a printer and don't want to be bothered by print prompts.

"},{"location":"getting-started/settings/#touchscreen-maix-amigo-and-yahboom-only","title":"Touchscreen (Maix Amigo and Yahboom only)","text":"

If your device has touchscreen you can change the touch detection threshold. If it is being too sensitive or detecting false or ghost touches, you should increase the threshold value, making it less sensitive. The other way is also valid, reduce the threshold to make the screen more sensitive to touches.

"},{"location":"getting-started/settings/#language-locale","title":"Language - Locale","text":"

Here you can change Krux to your desired language.

"},{"location":"getting-started/settings/#persist","title":"Persist","text":"

Choose between flash (device's internal memory) or SD card for the place where your settings will be stored.

"},{"location":"getting-started/settings/#security","title":"Security","text":"

Adjust settings that may impact your security protocols.

"},{"location":"getting-started/settings/#shutdown-time","title":"Shutdown Time","text":"

Set the time it takes for Krux to automatically shut down. This feature not only conserves your device's battery, if it has one, but also serves as an important security measure. If you forget your device with private keys loaded, it will shut down automatically after the set time.

Please note that devices without batteries and power management will not shut down but will reboot instead, which is sufficient to unload private keys.

"},{"location":"getting-started/settings/#hide-mnemonics","title":"Hide Mnemonics","text":"

When \"Hide Mnemonics\" mode is set to \"True\", your device will not display private key data or backup tools when a key is loaded. It will only show public key information and allow signing operations.

"},{"location":"getting-started/settings/#appearance","title":"Appearance","text":"

Configure screensaver time and change Krux to your desired theme.

"},{"location":"getting-started/settings/#screensaver-time","title":"Screensaver time","text":"

Set how long to wait idle before the screensaver appears. Enter 0 to disable the screensaver.

"},{"location":"getting-started/settings/#theme","title":"Theme","text":"

Choose your color theme according to your preference. Some themes may be more suitable for some devices, coordinator cameras and environments. As an example, it may be easier to scan QR codes from Krux devices using light theme in brighter environments.

"},{"location":"getting-started/settings/#factory-settings","title":"Factory Settings","text":"

Restore device to factory settings and reboot.

"},{"location":"getting-started/features/QR-transcript-tools/","title":"Transcribing QR Codes","text":"

When you export a mnemonic, encrypted mnemonic or a generic text QR code, alternative visualization modes will be available. Swipe left or right to change modes, or if your device doesn't have a touchscreen, press the PAGE buttons. Find transcribe templates here.

"},{"location":"getting-started/features/QR-transcript-tools/#standard-mode","title":"Standard Mode","text":"

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

"},{"location":"getting-started/features/QR-transcript-tools/#lines-mode","title":"Lines Mode","text":"

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.

"},{"location":"getting-started/features/QR-transcript-tools/#zoomed-regions-mode","title":"Zoomed Regions Mode","text":"

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.

"},{"location":"getting-started/features/QR-transcript-tools/#highlighted-regions-mode","title":"Highlighted Regions Mode","text":"

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.

"},{"location":"getting-started/features/QR-transcript-tools/#grided-mode","title":"Grided Mode","text":"

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 (tracing). Be careful not to damage your screen with pen and markers, use an insulating plastic tape or film to protect the device when using this method.

"},{"location":"getting-started/features/encrypted-mnemonics/","title":"Encrypted Mnemonics","text":""},{"location":"getting-started/features/encrypted-mnemonics/#introduction","title":"Introduction","text":"

There are many possible security layers one could add to protect a wallet\u2019s private key. Adding a BIP-39 passphrase to the mnemonic is the most common method. Encrypting a BIP-39 mnemonic has a similar use case as the BIP-39 passphrase, but the user experience may differ depending on the implementation. The main difference between BIP-39 passphrases and Krux\u2019s encrypted mnemonic implementation is that when users type the wrong key, encrypted mnemonics will return an error instead of loading a different wallet, as BIP-39 passphrases do. This difference may be desired or not. The implementation also has the convenience of storing a mnemonic ID together with the stored or QR code encrypted mnemonics. Mnemonic encryption, with its own key, can be used together with BIP-39 passphrase as an extra security layer.

We use standard AES encryption modes ECB and CBC:

"},{"location":"getting-started/features/encrypted-mnemonics/#aes-ecb","title":"AES-ECB","text":"

ECB (Electronic Codebook) is a simpler method where encryption data blocks are encrypted individually. This mode is faster and simpler to encrypt, resulting in QR codes with lower density and easier to transcribe. It is generally considered less secure than CBC because it does not provide data chaining, meaning identical plaintext blocks will produce identical ciphertext blocks, making it vulnerable to pattern analysis. However, in Krux's implementation, only one or two binary data blocks are encrypted, so there will be no patterns, and the lack of chaining is not as relevant as it would be for larger files, plain text, or media.

"},{"location":"getting-started/features/encrypted-mnemonics/#aes-cbc","title":"AES-CBC","text":"

CBC (Cipher-block Chaining) is considered more secure. In the first data block, an initialization vector (IV) is used to add random data to the encryption. The encryption of subsequent blocks depends on the data from previous blocks, characterizing chaining. The tradeoff is that the encryption process will take longer because a snapshot will be needed to generate the IV. This IV will be stored together with encrypted data, making encrypted QR codes denser and harder to transcribe.

"},{"location":"getting-started/features/encrypted-mnemonics/#cbc-encryption-iv","title":"CBC Encryption IV","text":"

The Initial Vector (IV) will be generated from a snapshot taken with the camera. The IV is a fixed-size input value used in the first block of the encryption process. It adds randomness to the encryption, ensuring that data encrypted with the same key will produce different ciphertexts each time. The IV is not secret and will be transmitted along with the ciphertext. However, like any nonce, it should not be reused to maintain security.

"},{"location":"getting-started/features/encrypted-mnemonics/#pbkdf2-iterations","title":"PBKDF2 Iterations","text":"

When you enter the encryption key, it is not directly used to encrypt your data. In order to protect against brute force attacks, the key is derived multiple times using hashing functions. PBKDF2 (Password-Based Key Derivation Function) iterations refer to the number of derivations that will be performed over your key prior to encrypting/decrypting your mnemonic.

"},{"location":"getting-started/features/encrypted-mnemonics/#encrypted-qr-codes-data-and-parsing","title":"Encrypted QR Codes Data and Parsing","text":"

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) 1 Byte Variable 1 Byte 3 Bytes 16 Bytes (optional) 16 Bytes (12 words) 32 Bytes (24 words) 16 Bytes
  • Visible data (1 to 4):
    • (1) Mnemonic ID length (1 Byte).
    • (2) Mnemonic ID (variable lenght): Custom ID or wallet fingerprint.
    • (3) Version (1 Byte): Version of encryption method, currently two are available:
      • 0: AES-ECB-PBKDF2: Electronic Codebook with PBKDF2 key derivation.
      • 1: AES-CBC-PBKDF2: Cypher Block Chaining with PBKDF2 key derivation.
    • (4) Key derivation iterations (3 Bytes): Number of PBKDF2 key derivations times 10,000.
  • Cipher data (5 to 7):
    • (5) IV (16 Bytes-optional): Initial vector for AES-CBC encryption, possibility to be nonce for future AES-CTR or other encryption methods.
    • (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.
"},{"location":"getting-started/features/encrypted-mnemonics/#considerations","title":"Considerations","text":"

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.

Remember that the stored encrypted mnemonic is protected by the key you defined to encrypt it. If the defined key is weak, your encrypted mnemonic will not be protected. If you have stored a mnemonic with funds in the device's internal flash memory using a weak key, the best way to undo this is to wipe the device.

"},{"location":"getting-started/features/entropy/","title":"Empirical Entropy Measurement","text":""},{"location":"getting-started/features/entropy/#why-does-krux-say-the-entropy-of-my-fifty-dice-rolls-does-not-contain-128-bits-of-entropy","title":"Why Does Krux Say the Entropy of My Fifty Dice Rolls Does Not Contain 128 Bits of Entropy?","text":"

This question, frequently raised in Krux chat groups, highlights the need to clarify the concepts and tools used by Krux to help users detect possible issues in the mnemonic creation procedure. Tools in Krux were designed to help users understand the concepts involved in the process, present statistics and indicators, and encourage users to experiment and evaluate results. This way, users learn about best practices in key generation. Below, we will dive deeper into entropy concepts to better support users in the fundamental requirement for sovereign self-custody, which is to build up knowledge.

"},{"location":"getting-started/features/entropy/#entropy-in-dice-rolls","title":"Entropy in Dice Rolls","text":"

Rolling dice and collecting the resulting values can be an effective method for generating cryptographic keys due to the inherent randomness and unpredictability of each roll. Each roll of a die produces a random number within a specific range, and when multiple rolls are combined, they create a sequence that is difficult to predict or reproduce. This sequence can be used to generate cryptographic keys that are robust against attacks. By ensuring that the dice rolls are conducted in a controlled and secure environment, and by using a sufficient number of rolls to achieve the desired level of randomness, one can create cryptographic keys that are highly secure and resistant to brute-force attacks or other forms of cryptanalysis.

"},{"location":"getting-started/features/entropy/#entropy-definitions","title":"Entropy Definitions","text":"

Entropy, a fundamental concept in various scientific disciplines, measures the degree of disorder or uncertainty within a system. This notion is interpreted differently across fields, leading to distinct types of entropy: mechanical entropy, Shannon's entropy, and cryptographic entropy.

Mechanical entropy, rooted in thermodynamics and statistical mechanics, quantifies the disorder in a physical system. It describes how energy is distributed among the particles in a system, reflecting the system's tendency towards equilibrium and maximum disorder.

Shannon's entropy, from information theory, measures the uncertainty or information content in a message or data source. Introduced by Claude Shannon, it quantifies the average amount of information produced by a stochastic source of data, indicating how unpredictable the data is.

Cryptographic entropy, crucial in security, refers to the unpredictability and randomness required for secure cryptographic keys and processes. High cryptographic entropy ensures that keys are difficult to predict or reproduce, providing robustness against attacks.

While mechanical entropy deals with physical systems, Shannon's entropy focuses on information content, and cryptographic entropy emphasizes security through randomness.

"},{"location":"getting-started/features/entropy/#measuring-dice-rolls-entropy","title":"Measuring Dice Rolls Entropy","text":"

Entropy is a theoretical measure and is not directly measurable from a single roll but rather from the probability distribution of outcomes over many rolls. We can use Shannon's formula for theoretical and empirical calculations. Entropy S can be quantified with:

S = -\\sum_{i=1}^{n} p_i \\log(p_i)
  1. Empirical Measurement:
  2. Roll the dice a large number of times to observe the frequency of each outcome.
  3. Estimate the probabilities p_i based on observed frequencies.

  4. Theoretical Calculation:

  5. Use the uniform distribution assumption (equal probability for all outcomes).

where: - p_i is the probability of each possible outcome (or state) of the system. - n is the number of possible outcomes.

"},{"location":"getting-started/features/entropy/#empirical-real-vs-theoretical-entropy-in-dice-rolls","title":"Empirical (Real) vs. Theoretical Entropy in Dice Rolls","text":"

When calculating the entropy of dice rolls, the difference between real and theoretical results arises from the assumption of perfect fairness and uniformity versus the inherent imperfections in real-world experiments.

"},{"location":"getting-started/features/entropy/#theoretical-entropy","title":"Theoretical Entropy","text":"

The theoretical entropy calculation assumes that the dice are perfectly fair, meaning each face has an equal probability of landing face up.

Consider a fair six-sided die. The possible outcomes when rolling one die are {1, 2, 3, 4, 5, 6}, each with an equal probability of \\frac{1}{6}.

  1. Single Die Roll:
  2. Each outcome has a probability p_i = \\frac{1}{6}.
  3. The entropy S for one die roll is calculated as:
S = - \\sum_{i=1}^{6} \\left( \\frac{1}{6} \\log_2 \\left( \\frac{1}{6} \\right) \\right)

Since \\log_2(1/6) = -\\log_2(6) :

S = -6 \\left( \\frac{1}{6} \\times -\\log_2(6) \\right) = \\log_2(6) \\approx 2.585 \\text{ bits}
  1. Multiple Dice Rolls:
  2. For multiple dice, the entropy increases as the number of possible outcomes increases. For k fair dice, the number of possible outcomes is 6^k.
  3. The entropy S for k dice is:

    S = \\log_2(6^k) = k \\log_2(6) \\approx 2.585k \\text{ bits}

  4. For example, entropy for the roll of 50 fair dice is calculated as:

    S = \\log_2(6^{50}) = 50 \\log_2(6) \\approx 2.585 \\times 50 \\approx 129.25 \\text{ bits}

This calculation assumes that every outcome (each face of the die) has an equal likelihood, leading to a uniform distribution.

"},{"location":"getting-started/features/entropy/#empirical-entropy","title":"Empirical Entropy","text":"

In a real sample of dice rolls, several factors can cause deviations from the perfect uniform distribution:

  1. Imperfect Dice: Real dice may not be perfectly balanced. Small manufacturing defects can make certain faces slightly heavier or lighter, causing biases.
  2. Rolling Conditions: The way the dice are rolled, the surface they land on, and even air currents can introduce slight biases.
  3. Finite Sample Size: When rolling dice a finite number of times, the observed frequencies of each face will naturally deviate from the expected uniform distribution due to random variations. This phenomenon is more pronounced with smaller sample sizes.

When you roll a die multiple times and observe the outcomes, you can calculate the empirical probabilities p_i of each face. Using these probabilities, the entropy is calculated as:

S = - \\sum_{i=1}^{6} p_i \\log_2(p_i)"},{"location":"getting-started/features/entropy/#example","title":"Example","text":"

Suppose you roll a six-sided die 50 times and get the following results:

  • 1: 4 times
  • 2: 9 times
  • 3: 7 times
  • 4: 10 times
  • 5: 12 times
  • 6: 8 times

We can calculate Shannon's entropy as follows:

"},{"location":"getting-started/features/entropy/#step-1-calculate-probabilities","title":"Step 1: Calculate Probabilities","text":"

Total number of rolls:

N = 4 + 9 + 7 + 10 + 12 + 8 = 50

Probabilities for each outcome:

p_1 = \\frac{4}{50} = 0.08 p_2 = \\frac{9}{50} = 0.18 p_3 = \\frac{7}{50} = 0.14 p_4 = \\frac{10}{50} = 0.2 p_5 = \\frac{12}{50} = 0.24 p_6 = \\frac{8}{50} = 0.16"},{"location":"getting-started/features/entropy/#step-2-compute-entropy","title":"Step 2: Compute Entropy","text":"

Using Shannon's entropy formula:

S = -\\sum_{i=1}^{n} p_i \\log_2(p_i)

Calculate each term:

S_1 = -p_1 \\log_2(p_1) = -0.08 \\log_2(0.08) = -0.08 \\times (-3.64386) = 0.291509 S_2 = -p_2 \\log_2(p_2) = -0.18 \\log_2(0.18) = -0.18 \\times (-2.47393) = 0.445307 S_3 = -p_3 \\log_2(p_3) = -0.14 \\log_2(0.14) = -0.14 \\times (-2.8365) = 0.39711 S_4 = -p_4 \\log_2(p_4) = -0.2 \\log_2(0.2) = -0.2 \\times (-2.32193) = 0.464386 S_5 = -p_5 \\log_2(p_5) = -0.24 \\log_2(0.24) = -0.24 \\times (-2.05889) = 0.494132 S_6 = -p_6 \\log_2(p_6) = -0.16 \\log_2(0.16) = -0.16 \\times (-2.64386) = 0.423018

Sum the contributions:

S = S_1 + S_2 + S_3 + S_4 + S_5 + S_6 S = 0.291509 + 0.445307 + 0.39711 + 0.464386 + 0.494132 + 0.423018 = 2.515462

Thus, the Shannon's entropy for the given distribution of dice rolls is approximately 2.52 bits per roll.

This will give you a different value than \\log_2(6) due to the deviations in the empirical probabilities.

The total entropy for the N = 50 rolls is:

S_{total} = S \\times N = 2.515 + 50 \\approx 125.8 \\text{ bits}"},{"location":"getting-started/features/entropy/#shannons-entropy-in-practice","title":"Shannon's Entropy in Practice","text":"

Calculating Shannon's entropy on a real sample of dice rolls provides insights into the actual randomness and fairness of the dice and rolling conditions. Deviations from the theoretical entropy reflect the natural imperfections and variances inherent in real-world scenarios. This understanding helps in evaluating and improving the fairness and randomness of dice or similar systems.

Shannon's entropy evaluates the statistical probability distribution of samples of a dice roll. An even distribution results in higher entropy, closer to the theoretical maximum entropy, which assumes perfectly distributed rolls. An uneven distribution, created, for example, by a biased die, will result in lower Shannon's entropy. In an extreme case, with a terribly biased die that always lands on the same side, Shannon's entropy will be zero.

"},{"location":"getting-started/features/entropy/#cryptographic-entropy","title":"Cryptographic Entropy","text":"

Shannon's entropy, while a powerful measure of information content and uncertainty in a statistical distribution for natural samples, is not considered cryptographic entropy due to its inability to detect patterns or other sources of predictability within data. Shannon's formula quantifies the average information produced by a stochastic process, essentially measuring the expected surprise in a sequence of symbols based on their probabilities. However, it does not account for potential structure, correlations, or regularities within the data that could be inserted by a user and exploited by an attacker.

Cryptographic entropy, on the other hand, requires a higher standard of unpredictability. It must ensure that every bit of the cryptographic key is as random and independent as possible, making it resilient against any form of analysis that could reveal patterns or reduce the effective randomness. While Shannon's entropy can evaluate the statistical distribution of symbols, it falls short in guaranteeing the absence of patterns or dependencies, which are crucial for maintaining the security of cryptographic systems. Thus, cryptographic entropy encompasses a broader concept of randomness, ensuring that the generated keys are not only statistically random but also free from any detectable structure or predictability.

"},{"location":"getting-started/features/entropy/#pattern-detection","title":"Pattern Detection","text":"

It is possible to have dice rolls with an even distribution but poor cryptographic entropy. This issue arises when patterns are present in the sequences. Examples include sequences like 123456123456123..., 111122223333..., and 654321654321..., which exhibit poor cryptographic entropy despite having even distribution and high Shannon's entropy.

To mitigate this issue, Krux has implemented a pattern detection algorithm that evaluates the Shannon's entropy of the rolls' derivatives. In practice, this algorithm detects arithmetic progression components in the dice rolls and raises a warning if a certain threshold is crossed.

"},{"location":"getting-started/features/entropy/#what-krux-does","title":"What Krux Does?","text":"
  • Krux requires a minimum number of rolls based on theoretical entropy.
  • Krux warns the user if low Shannon's entropy, calculated with the actual rolls, is detected.
  • Krux warns the user if it suspects there are patterns within the actual rolls.
"},{"location":"getting-started/features/entropy/#conclusion","title":"Conclusion","text":"

While Krux cannot ensure rolls have good or bad cryptographic entropy, it does provide indicators to help users detect issues and learn about the concepts involved in mnemonic generation.

"},{"location":"getting-started/features/printing/","title":"Printing","text":"

Warning/Disclaimer: This feature is intended for individuals with experience in electronics tinkering and soldering.

Krux has the ability to print mnemonic backup (Words, Numbers, Tiny Seed template; but not Stackbit 1248) and any QR code (SeedQR, signed PSBT, Address, XPUB, Wallet output descriptor, ...) via a locally-connected TTL serial thermal printer. Consult the parts list page for supported printers.

Once a thermal printer and driver have been enabled in Krux settings, all screens that display a QR code will offer the option to Print to QR. Other formats of mnemonic backup will also ask if you want to Print to QR?.

There are many ways you can use this functionality, including:

  • Printing backups of your mnemonics and multisig wallet output descriptor
  • Printing your xpubs and receive addresses to share
  • Printing signed messages and PSBTs

Since printed thermal paper fades quickly, you can also print your backups on sticker thermal paper to use as templates for punching into more resilient materials like steel.

We also have plans to add support for other kinds of QR \"printers\" in the future, including CNC machines. In this case, gcode will be generated that can be sent directly to a GRBL controller to cut your QRs out of wood or metal!

Just be careful what you do with the printed codes, since most smartphones can now quickly and easily read QR codes. Treat your QR mnemonic the same way you would treat a plaintext copy of it.

"},{"location":"getting-started/features/sd-card-update/","title":"SD Card Updates","text":""},{"location":"getting-started/features/sd-card-update/#upgrade-via-microsd-card","title":"Upgrade via microSD card","text":"

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

To perform an upgrade, simply copy the official release 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. Otherwise you will be prompted to install it again.

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, read the Troubleshooting for more info. Only official releases are signed and can be installed via microSD card.

"},{"location":"getting-started/features/tinyseed/","title":"Tiny Seed and other metal plates","text":""},{"location":"getting-started/features/tinyseed/#background","title":"Background","text":"

The examples below have been created so that you can test the workflow for scanning both 12 and 24 word mnemonics. (Scanning the left plate for a 12 word mnemonic and both plates for 24) The resulting fingerprint from an successful scan is also incldued in the image.

"},{"location":"getting-started/features/tinyseed/#tinyseed","title":"TinySeed","text":""},{"location":"getting-started/features/tinyseed/#onekey-keytag","title":"OneKey KeyTag","text":""},{"location":"getting-started/features/tinyseed/#binary-grid","title":"Binary Grid","text":""},{"location":"getting-started/features/tinyseed/#size-offset-and-padding-reference","title":"Size, Offset and Padding Reference","text":"

The general logic for how these are processed is:

  1. Krux first looks for a square (Which works best if with a well lit square, with clean edges, on a dark background)
  2. This square is checked and if the ratio of length to height is within a defined range for the given seed type, the square is further processed. (Uses the aspect_high and aspect_low variables)
  3. An X and Y offset are applied to work out the corner of the seed grid within the seed plate. Some devices like the Maix Amigo use a mirrored coordinate system and some seed types will have a slightly different layout on the front and back of the plate. (Uses the x_offset and y_offset variables, p0 for the front face and p1 for the reverse face)
  4. The location of each cell within the 12x12 grid is calculated. (This uses the xpad and ypad variables)
  5. Krux uses the grid created in 4 to evaluate which cells are marked and which are blank, once a seed with a valid checksum is detected, the user can then confirm the dots.

If you have a different type of grid that you want to use, you will need to edit the offsets and padding numbers in tiny_seed.py. (All of the sizes are scaled based on the size of the square detected in step 1...)

You can match the pre-sets for supported key-types to the physical dimensions of the tag as shown below. (The numbers for these offsets are in 1/10th of a millimeter)

"},{"location":"getting-started/features/tools/","title":"Tools","text":"

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.

"},{"location":"getting-started/features/tools/#check-sd-card","title":"Check SD Card","text":"

You can check if a SD card can be detected and read by your device and explore its content. If there are too many files to fit on one screen, swipe up or down to navigate between the screens if your device has a touchscreen.

"},{"location":"getting-started/features/tools/#print-test-qr","title":"Print Test QR","text":"

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

"},{"location":"getting-started/features/tools/#create-qr-code","title":"Create QR Code","text":"

Enter text to create, print or transcribe a QR code that can later be used as an encryption key or passphrase. Swipe left or right to change modes if your device has a touchscreen.

"},{"location":"getting-started/features/tools/#descriptor-addresses","title":"Descriptor Addresses","text":"

Verify if an address or list of addresses belong to a wallet without needing to load private keys. Simply load a trusted wallet descriptor from a QR code or SD card.

"},{"location":"getting-started/features/tools/#remove-mnemonic","title":"Remove Mnemonic","text":"

This option allows you to remove any stored encrypted mnemonic from the device's internal memory or an SD card. For more information, see Krux Encrypted Mnemonics.

When mnemonics are removed from the device's flash memory, Krux will no longer be able to access them. However, as with most operating systems, the data may still be recoverable using specialized tools. If you stored any important keys with a weak encryption key, it is recommended to use the \"Wipe Device\" feature below to ensure that the data is irrecoverable.

When mnemonics are removed from an SD card, Krux will overwrite the region where the encrypted mnemonic was stored with empty data. This makes it more secure to delete mnemonics from SD cards using Krux rather than a PC or another device. However, Krux does not have a \"Wipe\" feature for SD cards; you can find this feature in third-party applications.

"},{"location":"getting-started/features/tools/#wipe-device","title":"Wipe Device","text":"

This option permanently removes all stored encrypted mnemonics and settings from the device's internal flash memory. It ensures that the data is irrecoverable, making it an adequate measure to take if any important mnemonics were stored with a weak encryption key.

"},{"location":"getting-started/installing/from-pre-built-release/","title":"From pre-built official release","text":"

This page explains how to install Krux from an official, pre-built release.

"},{"location":"getting-started/installing/from-pre-built-release/#download-the-latest-release","title":"Download the latest release","text":"

Head over to the releases page and download the latest signed release.

"},{"location":"getting-started/installing/from-pre-built-release/#verify-the-files","title":"Verify the files","text":"

Before installing the release, it's a good idea to check that:

  1. The SHA256 hash of krux-v24.09.1.zip matches the hash in krux-v24.09.1.zip.sha256.txt
  2. The signature file krux-v24.09.1.zip.sig can be verified with the selfcustody.pem public key found in the root of the krux repository.

You can either do this manually or with the krux shell script, which contains helper commands for this:

./krux sha256 krux-v24.09.1.zip\n./krux verify krux-v24.09.1.zip selfcustody.pem\n

On Mac you may need to install coreutils to be able to use sha256sum

brew install coreutils\n

Fun fact: Each Krux release is signed with Krux!

"},{"location":"getting-started/installing/from-pre-built-release/#flash-the-firmware-onto-the-device","title":"Flash the firmware onto the device","text":"

Extract the latest version of Krux you downloaded and enter the folder:

unzip krux-v24.09.1.zip && cd krux-v24.09.1\n

Connect the device to your computer via USB (for Maix Amigo, make sure you\u2019re using bottom port), power it on, and run the following, replacing DEVICE with either m5stickv, amigo, bit, cube, dock or yahboom (to yahboom you may need to manually specify the port, for example /dev/ttyUSB0 on Linux or COM6 on Windows):

./ktool -B goE -b 1500000 maixpy_DEVICE/kboot.kfpkg\n

For dock use the -B dan parameter:

./ktool -B dan -b 1500000 maixpy_dock/kboot.kfpkg\n

When the flashing process completes, you should see the Krux logo:

If it doesn't, try turning your device off and on by holding down the power button for six seconds.

Congrats, you're now running Krux!

"},{"location":"getting-started/installing/from-pre-built-release/#a-note-about-the-maix-amigo","title":"A note about the Maix Amigo","text":"

Some Amigo screens have inverted X coordinates, others display colors differently. For more info see Troubleshooting.

"},{"location":"getting-started/installing/from-pre-built-release/#troubleshooting","title":"Troubleshooting","text":"

If ktool fails to run, you may need to give it executable permissions with chmod +x ./ktool, or you might need to use \"sudo\" if your user don't have access to serial port. In Windows or Mac you may need to explicitly allow the tool to run by adding an exception for it.

If the flashing process fails midway through, check the connection, restart the device, and try the command again.

Two serial ports are created when Amigo and Bit are connected to a PC. Sometimes Ktool will pick the wrong port and flashing will fail. Manually specify the serial port to overcome this issue using -p argument:

"},{"location":"getting-started/installing/from-pre-built-release/#linux","title":"Linux","text":"

See the correct port using ls /dev/ttyUSB*, in the example below we use /dev/ttyUSB0:

./ktool-linux -B goE -b 1500000 maixpy_amigo/kboot.kfpkg -p /dev/ttyUSB1\n

"},{"location":"getting-started/installing/from-pre-built-release/#windows","title":"Windows","text":"

See the correct port at Device Manager > Ports (COM & LPT), in the example below we use COM6:

.\\ktool-win.exe -B goE -b 1500000 maixpy_amigo\\kboot.kfpkg -p COM6\n

"},{"location":"getting-started/installing/from-pre-built-release/#mac","title":"Mac","text":"

Remove the Gatekeeper quarantine extended attribute from ktool-mac:

xattr -d com.apple.quarantine ktool-mac\n

See the correct port using the command line: ls /dev/cu.usbserial*, in the example below we use /dev/cu.usbserial-10 (If the output isn't what you expect try a different cable, preferably a smartphone usb-c charger cable):

./ktool-mac -B goE -b 1500000 maixpy_amigo/kboot.kfpkg -p /dev/cu.usbserial-10\n

Different OS versions may have different port names, and the absence of ports may indicate a connection, driver or hardware related issue. See Troubleshooting for more info.

"},{"location":"getting-started/installing/from-pre-built-release/#multilingual-support","title":"Multilingual support","text":"

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.

"},{"location":"getting-started/installing/from-pre-built-release/#upgrade-via-microsd-card","title":"Upgrade via microSD card","text":"

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.

"},{"location":"getting-started/installing/from-source/","title":"From source","text":"

This page explains how to install Krux from source. You can check a simplified version of these instructions in our README too.

"},{"location":"getting-started/installing/from-source/#fetch-the-code","title":"Fetch the code","text":"

This will download the source code of Krux as well as the code of all its dependencies inside a new folder called krux (needs git):

git clone --recurse-submodules https://github.com/selfcustody/krux\n

Note: When you wish to pull updates (to all submodules, their submodules, ...) to this repo, use:

git pull origin main && git submodule update --init --recursive\n

"},{"location":"getting-started/installing/from-source/#prerequisite-for-upgrading-via-microsd","title":"Prerequisite for upgrading via microSD","text":"

If you wish to perform airgapped upgrades via microSD card later, you will need to have a private and public key pair to sign your builds and verify the signatures. If you do not want to perform further airgapped upgrades, jump to build section.

You can use an existing Krux installation and mnemonic to sign your builds with, or you can generate a keypair and sign from the openssl CLI. Commands have been added to the krux shell script to make this easier.

In either case, you will need to update the SIGNER_PUBKEY field in src/krux/metadata.py to store your public key so that Krux can verify future builds before installing.

To generate a keypair:

./krux generate-keypair\n./krux pem-to-pubkey pubkey.pem\n

The first command will create privkey.pem and pubkey.pem files you can use with openssl, and the second command will output your public key in the form expected by Krux.

Once you've updated the SIGNER_PUBKEY with this value, you can proceed with the regular build process.

"},{"location":"getting-started/installing/from-source/#build-the-firmware-linux-or-wsl","title":"Build the firmware (Linux or WSL)","text":"

The krux bash script contains commands for common development tasks. It assumes a Linux host, you will need to have Docker Desktop or Docker Engine, openssl, and wget installed at a minimum for the commands to work as expected. It works on Windows using WSL. The channel Crypto Guide from Youtube made a step-by-step video - Krux DIY Bitcoin Signer: Build From Source & Verify (With Windows + WSL2 + Docker)

To build and flash the firmware:

# build firmware for Maix Amigo\n./krux build maixpy_amigo\n

The first time, the build can take around an hour or so to complete. Subsequent builds should take only a few minutes. If all goes well, you should see a new build folder containing firmware.bin and kboot.kfpkg files when the build completes.

Note: if you encounter any of these errors while building, it is a problem connecting to github, try again (if the error persists, try changing the DNS/VPN or correcting the hostname resolution of github.com to an IP that is working for you):

error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err8)\nfatal: the remote end hung up unexpectedly\nfatal: early EOF\nfatal: index-pack failed\nfatal: clone of ... failed\nFailed to clone ...\n

"},{"location":"getting-started/installing/from-source/#reproducibility","title":"Reproducibility","text":"

If you build from the main branch of the source code, you should be able to reproduce the build process used to generate the last release binaries and obtain exact copies of the firmware.bin and kboot.kfpkg files, with matching hash checksums.

To extract and verify the firmware.bin contained in kboot.kfpkg, you can use the following command:

unzip kboot.kfpkg -d ./kboot/\n
"},{"location":"getting-started/installing/from-source/#flash-the-firmware-onto-the-device","title":"Flash the firmware onto the device","text":"

Connect the device to your computer via USB (for Maix Amigo, make sure you\u2019re using bottom port), power it on, and run the following, replacing DEVICE with either m5stickv, amigo, bit, cube, dock or yahboom:

# build firmware for DEVICE\n./krux flash maixpy_DEVICE\n
If the flashing fails try one of the following common solutions listed on FAQ

When the flashing process completes, you should see the Krux logo:

If it doesn't, try turning your device off and on by holding down the power button for six seconds.

Congrats, you're now running Krux!

"},{"location":"getting-started/installing/from-source/#a-note-about-the-maix-amigo","title":"A note about the Maix Amigo","text":"

Some Amigo screens have inverted X coordinates, others display colors differently. For more info see Troubleshooting.

"},{"location":"getting-started/installing/from-source/#signing-the-firmware","title":"Signing the firmware","text":"

You can sign the firmware to perform airgapped upgrades using one of the two methods listed below:

"},{"location":"getting-started/installing/from-source/#method-1-signing-from-krux","title":"Method 1: Signing from Krux","text":"

First, calculate the SHA256 hash of the new firmware by running:

./krux sha256 build/firmware.bin\n

Copy this hex string and turn it into a QR code using whichever QR code generator you'd like.

In Krux, enter the mnemonic of your private key that will be used for signing, and go to Sign > Message. Scan the QR code you generated, and you will be asked if you wish to sign the hash. Proceed, and you will be presented with a base64-encoded string containing the signature, as text and as a QR code.

Take this string and create a signature file by running:

./krux b64decode \"signature-in-base64\" > build/firmware.bin.sig\n

This will generate a firmware.bin.sig file containing a signature of the firmware's SHA256 hash.

"},{"location":"getting-started/installing/from-source/#method-2-signing-from-your-computer-with-openssl","title":"Method 2: Signing from your computer with OpenSSL","text":"

With the keypair you generated before, you can now run:

./krux sign build/firmware.bin privkey.pem\n

This will generate a firmware.bin.sig file containing a signature of the firmware's SHA256 hash.

"},{"location":"getting-started/installing/from-test-release/","title":"From pre-built test release","text":"

This page explains how to install Krux from a test (beta), pre-built release.

"},{"location":"getting-started/installing/from-test-release/#warning","title":"Warning","text":"

Keep in mind that these are unsigned binaries.

"},{"location":"getting-started/installing/from-test-release/#download","title":"Download","text":"

Download experimental compiled firmware or the Android app apk from our test (beta) repository.

"},{"location":"getting-started/installing/from-test-release/#android","title":"Android","text":"

The Krux Android app is designed for learning about Krux and Bitcoin air-gapped transactions. Due to the numerous potential vulnerabilities inherent in smartphones, such as the lack of control over the operating system, libraries, and hardware peripherals, the Krux app should NOT be used to manage wallets containing savings or important keys and mnemonics. For secure management of your keys, a dedicated device is recommended.

"},{"location":"getting-started/installing/from-test-release/#compiled-firmware-for-kendryte-k210-devices","title":"Compiled firmware for Kendryte K210 devices","text":""},{"location":"getting-started/installing/from-test-release/#m5stickv","title":"M5StickV","text":"

To Flash M5StickV run the following.

"},{"location":"getting-started/installing/from-test-release/#linux","title":"Linux","text":"
./ktool-linux -B goE -b 1500000 maixpy_m5stickv/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#mac","title":"Mac","text":"
./ktool-mac -B goE -b 1500000 maixpy_m5stickv/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#windows","title":"Windows","text":"
.\\ktool-win.exe -B goE -b 1500000 maixpy_m5stickv\\kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#sipeed-maix-amigo","title":"Sipeed Maix Amigo","text":"

To Flash Maix Amigo run the following.

"},{"location":"getting-started/installing/from-test-release/#linux_1","title":"Linux","text":"
./ktool-linux -B goE -b 1500000 maixpy_amigo/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#mac_1","title":"Mac","text":"
./ktool-mac -B goE -b 1500000 maixpy_amigo/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#windows_1","title":"Windows","text":"
.\\ktool-win.exe -B goE -b 1500000 maixpy_amigo\\kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#a-note-about-the-maix-amigo","title":"A note about the Maix Amigo","text":"

Some Amigo screens have inverted X coordinates, others display colors differently. For more info see Troubleshooting.

"},{"location":"getting-started/installing/from-test-release/#sipeed-maix-bit","title":"Sipeed Maix Bit","text":"

To Flash Maix Bit run the following.

"},{"location":"getting-started/installing/from-test-release/#linux_2","title":"Linux","text":"
./ktool-linux -B goE -b 1500000 maixpy_bit/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#mac_2","title":"Mac","text":"
./ktool-mac -B goE -b 1500000 maixpy_bit/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#windows_2","title":"Windows","text":"
.\\ktool-win.exe -B goE -b 1500000 maixpy_bit\\kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#sipeed-maix-cube","title":"Sipeed Maix Cube","text":"

To Flash Maix Cube run the following.

"},{"location":"getting-started/installing/from-test-release/#linux_3","title":"Linux","text":"
./ktool-linux -B goE -b 1500000 maixpy_cube/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#mac_3","title":"Mac","text":"
./ktool-mac -B goE -b 1500000 maixpy_cube/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#windows_3","title":"Windows","text":"
.\\ktool-win.exe -B goE -b 1500000 maixpy_cube\\kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#sipeed-maix-dock","title":"Sipeed Maix Dock","text":"

To Flash Maix Dock you need to pass the -B dan parameter.

"},{"location":"getting-started/installing/from-test-release/#linux_4","title":"Linux","text":"
./ktool-linux -B dan -b 1500000 maixpy_dock/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#mac_4","title":"Mac","text":"
./ktool-mac -B dan -b 1500000 maixpy_dock/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#windows_4","title":"Windows","text":"
.\\ktool-win.exe -B dan -b 1500000 maixpy_dock\\kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#aimotion-yahboom-k210-module","title":"Aimotion Yahboom k210 module","text":"

To Flash Yahboom k210 module you'll have to manually specify the port.

"},{"location":"getting-started/installing/from-test-release/#linux_5","title":"Linux","text":"

See the correct port using ls /dev/ttyUSB*, in the example below we use /dev/ttyUSB0:

./ktool-linux -B goE -b 1500000 -p /dev/ttyUSB0 maixpy_yahboom/kboot.kfpkg\n

"},{"location":"getting-started/installing/from-test-release/#mac_5","title":"Mac","text":"

See the correct port using the command line: ls /dev/cu.usbserial*, in the example below we use /dev/cu.usbserial-10:

./ktool-mac -B goE -b 1500000 -p /dev/cu.usbserial-10 maixpy_yahboom/kboot.kfpkg\n

"},{"location":"getting-started/installing/from-test-release/#windows_5","title":"Windows","text":"

See the correct port at Device Manager > Ports (COM & LPT), in the example below we use COM6:

.\\ktool-win.exe -B goE -b 1500000 -p COM6 maixpy_yahboom\\kboot.kfpkg\n

"},{"location":"getting-started/installing/","title":"Installing","text":"

You can install Krux in four different ways:

  • From GUI application
  • From pre-built official release
  • From pre-built test (beta) release
  • From source
"},{"location":"getting-started/installing/#requirements","title":"Requirements","text":"

Please, check the parts list for the compatible devices and requirements.

After the first firmware install, you can use a microSD card if you wish to perform further airgapped updates.

"},{"location":"getting-started/installing/from-gui/debian-like/","title":"Download assets","text":"
  • krux-installer_0.0.20-alpha-3_amd64.deb
  • krux-installer_0.0.20-alpha-3_amd64.deb.sha256.txt
  • krux-installer_0.0.20-alpha-3_amd64.deb.sig
"},{"location":"getting-started/installing/from-gui/debian-like/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

sha256sum --check ./krux-installer_0.0.20-alpha-3_amd64.deb.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/debian-like/#verify-the-authenticity","title":"Verify the authenticity","text":"

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer_0.0.20-alpha-3_amd64.deb.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/debian-like/#install","title":"Install","text":"

krux-installer isn't available on Debian or Ubuntu repositories. Therefore, only the apt-get install command will not work. To install, it'll be necessary two steps:

  • Install the .deb package itself:
sudo dpkg -i krux-installer_0.0.20-alpha-3_amd64.deb\n
  • Update the installed package:
sudo apt-get install -f\n

It will warn you that your system user was added to dialout group and maybe you need to reboot to activate the sudoless flash procedure.

"},{"location":"getting-started/installing/from-gui/debian-like/#after-install","title":"After install","text":"

Once installed, you can proceed to firmware installation.

"},{"location":"getting-started/installing/from-gui/fedora-like/","title":"Download assets","text":"
  • krux-installer-0.0.20_alpha_3-1.x86_64.rpm
  • krux-installer-0.0.20_alpha_3-1.x86_64.rpm.sha256.txt
  • krux-installer-0.0.20_alpha_3-1.x86_64.rpm.sig
"},{"location":"getting-started/installing/from-gui/fedora-like/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

sha256sum --check ./krux-installer-0.0.20_alpha_3-1.x86_64.rpm.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/fedora-like/#verify-the-authenticity","title":"Verify the authenticity","text":"

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer-0.0.20_alpha_3-1.x86_64.rpm.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/fedora-like/#install","title":"Install","text":"

krux-installer isn't available on Fedora or RedHat repositories. You'll need to add it manually:

"},{"location":"getting-started/installing/from-gui/fedora-like/#fedora","title":"Fedora","text":"
sudo  dnf install krux-installer-0.0.20_alpha_3-1.x86_64.rpm\n
"},{"location":"getting-started/installing/from-gui/fedora-like/#other-redhat-based-distros","title":"Other RedHat based distros:","text":"
sudo yum localinstall krux-installer-0.0.20_alpha_3-1.x86_64.rpm\n

It will warn you that your system user was added to dialout group and maybe you need to reboot to activate the sudoless flash procedure.

"},{"location":"getting-started/installing/from-gui/fedora-like/#after-install","title":"After install","text":"

Once installed, you can proceed to firmware installation.

"},{"location":"getting-started/installing/from-gui/","title":"From GUI application","text":"

You can install Krux (both official or beta releases) onto your K210-based device using our official desktop application, KruxInstaller, available for:

\u26a0\ufe0f WARNING: Krux-Installer latest version is in it's alpha version. Maybe you can experience bugs or don't like something. If it is the case, please submit a issue.

  • Windows
  • MacOS Intel
  • MacOS M1/M2/M3
  • Debian and like
  • Fedora and like
  • Other linux distros
"},{"location":"getting-started/installing/from-gui/macos-arm64/","title":"Download assets","text":"
  • krux-installer_0.0.20-alpha-3_arm64.dmg
  • krux-installer_0.0.20-alpha-3_arm64.dmg.sha256.txt
  • krux-installer_0.0.20-alpha-3_arm64.dmg.sig
"},{"location":"getting-started/installing/from-gui/macos-arm64/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

sha256sum --check ./krux-installer_0.0.20-alpha-3_arm64.dmg.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/macos-arm64/#verify-the-authenticity","title":"Verify the authenticity","text":"

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer_0.0.20-alpha-3_arm64.dmg.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/macos-arm64/#install","title":"Install","text":"

Open the dmg file and a new volume will be presented; drag'n'drop the krux-installer to the Applications folder:

Before run, you'll need to remove the quarantine flag from application. This occurs because we don't added the Apple's code signing and notarization.

To fix this, open your terminal and execute the following command:

xattr -d com.apple.quarantine -r /Applications/krux-installer.app\n

\ud83d\udee1\ufe0f TIP: If you followed the steps presented in authenticity section, you already have the assurance that the software is from a verified and genuine software publisher. This will also help establish a chain of trust when you perform the firmware verification step before flashing.

"},{"location":"getting-started/installing/from-gui/macos-arm64/#after-install","title":"After install","text":"

Once installed, you can proceed to firmware installation.

"},{"location":"getting-started/installing/from-gui/macos-intel/","title":"Download assets","text":"
  • krux-installer_0.0.20-alpha-3_x86_64.dmg
  • krux-installer_0.0.20-alpha-3_x86_64.dmg.sha256.txt
  • krux-installer_0.0.20-alpha-3_x86_64.dmg.sig
"},{"location":"getting-started/installing/from-gui/macos-intel/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

sha256sum --check ./krux-installer_0.0.20-alpha-3_x86_64.dmg.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/macos-intel/#verify-the-authenticity","title":"Verify the authenticity","text":"

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer_0.0.20-alpha-3_x86_64.dmg.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/macos-intel/#install","title":"Install","text":"

Open the dmg file and a new volume will be presented; drag'n'drop the krux-installer to the Applications folder:

Before run, you'll need to remove the quarantine flag from application. This occurs because we don't added the Apple's code signing and notarization.

To fix this, open your terminal and execute the following command:

xattr -d com.apple.quarantine -r /Applications/krux-installer.app\n

\ud83d\udee1\ufe0f TIP: If you followed the steps presented in authenticity section, you already have the assurance that the software is from a verified and genuine software publisher. This will also help establish a chain of trust when you perform the firmware verification step before flashing.

"},{"location":"getting-started/installing/from-gui/macos-intel/#after-install","title":"After install","text":"

Once installed, you can proceed to firmware installation.

"},{"location":"getting-started/installing/from-gui/other-linux-distro/","title":"Download assets","text":"

For this installation, we'll use the .deb sources:

  • krux-installer_0.0.20-alpha-3_amd64.deb
  • krux-installer_0.0.20-alpha-3_amd64.deb.sha256.txt
  • krux-installer_0.0.20-alpha-3_amd64.deb.sig
"},{"location":"getting-started/installing/from-gui/other-linux-distro/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

sha256sum --check ./krux-installer_0.0.20-alpha-3_amd64.deb.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/other-linux-distro/#verify-the-authenticity","title":"Verify the authenticity","text":"

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer_0.0.20-alpha-3_amd64.deb.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/other-linux-distro/#install","title":"Install","text":"

This step it's not really an installation. At least it will make the program's binary available somewhere on your computer; it can be useful if you want to develop a package for your distro.

To do this you'll need two tools:

  • ar;
  • bsdtar.
"},{"location":"getting-started/installing/from-gui/other-linux-distro/#extract-contents","title":"Extract contents","text":"
  • Extract the .deb contents:
ar xv krux-installer_0.0.20-alpha-3_amd64.deb\n
  • Extract the data.tar.zst contents:
bsdtar -xvf data.tar.zst\n

The binary will be located at ./usr/local/bin/krux-installer.

"},{"location":"getting-started/installing/from-gui/usage/","title":"Usage","text":"

This guide will walk through the basic use of the installer. At startup, it can differ in some operational systems. In the rest, the procedures will be similar.

"},{"location":"getting-started/installing/from-gui/usage/#main-menu","title":"Main Menu","text":"

When executing the Krux Installer, you will be presented with a menu of 4 enabled buttons and two disabled buttons:

  • Enabled buttons:

    • Version: select a firmware version;

    • Device: select a supported device for the selected version;

    • Settings: change some application settings;

    • About: just show some information about the application.

  • Disabled buttons:

    • Flash firmware: This button will start the flash firmware procedure;

      • It will be enabled when user select both version and device;
    • Wipe device: This button will start the wipe device procedure.

      • It will be enabled when user select the device.
"},{"location":"getting-started/installing/from-gui/usage/#select-version","title":"Select version","text":"

At startup, the application will setup it to the latest one, krux-v24.09.1. But you can select even a beta release or older versions:

  • Click in the button that show the text Version: krux-v24.09.1;

  • To select a beta release, click on button that show the text odudex/krux_binaries;

  • To select an older version, click on button that show the text Old versions;

"},{"location":"getting-started/installing/from-gui/usage/#beta-release","title":"Beta release","text":"

After choose odudex/krux_binaries, you'll be warned with a message:

"},{"location":"getting-started/installing/from-gui/usage/#older-versions","title":"Older versions","text":"
  • We put this option in case you have any interest in the history of firmware development;
  • Each version supports one device or the other;

  • For example: the version v22.03.0 has support only for m5stickv.

"},{"location":"getting-started/installing/from-gui/usage/#settings","title":"Settings","text":"

krux-Installer will give to you some freedom of choices for:

  • Krux-Installer settings;

  • General settings;

"},{"location":"getting-started/installing/from-gui/usage/#krux-installer-specific-settings","title":"krux-installer specific settings","text":"

Here you can configure some of the specifics of krux firmare, like:

  • Where you'll save downloaded assets;

  • The flash baudrate

  • The natural language that will be used in the application (system locale).

"},{"location":"getting-started/installing/from-gui/usage/#flash-baudrate","title":"Flash baudrate","text":"

The flash baudrate is how quickly the firmware will be written to the device.

But not any value can be used. The valid ones are: 9600, 19200, 28800, 38400, 57600, 76800, 115200, 230400, 460800, 576000, 921600, 1500000.

"},{"location":"getting-started/installing/from-gui/usage/#system-locale","title":"System locale","text":"

At startup, krux-installer recognize the locale used in your system. If your language isn't supported, it will defaults to en_US.

"},{"location":"getting-started/installing/from-gui/usage/#select-device","title":"Select Device","text":"

Everytime you select a new version, you'll see that the device button will be reseted to Device: select a new one state. Once a version is selected you can choose a device on which the firmware will be written.

First, select the device we want to flash. After that the menu will shown three items:

Note that some devices may be disabled if they are not supported by the chosen version

"},{"location":"getting-started/installing/from-gui/usage/#flash-device","title":"Flash device","text":"

Once you choose the device and version, it enables the \"flash device\" button. It will start an automatic process of:

  • For official firmware's releases:

    • Warning;

    • Download;

    • Verification:

    • Unzip the correct firmware;

    • The flash itself;

  • For beta releases:

    • Download asset;

    • The flash itself;

"},{"location":"getting-started/installing/from-gui/usage/#warning","title":"Warning","text":"

If you already downloaded assets, you'll be warned about this and will be offered the possibility to download again or continue without downloading:

"},{"location":"getting-started/installing/from-gui/usage/#download","title":"Download","text":"

Krux-installer download can download four assets for official releases or one for beta releases.

"},{"location":"getting-started/installing/from-gui/usage/#official-releases","title":"Official releases","text":"
  • A zip file containing all firmwares for each device;

  • Download a zip.sha256.txt file containing a zip's digital fingerprint;

  • Download a zip.sig file containing a zip's digital signature;

  • Download the selfcustody.pem file containing a public key certificate, signed by odudex;

"},{"location":"getting-started/installing/from-gui/usage/#beta-releases","title":"Beta releases","text":"
  • A kfpkg file containing the specific firmware for choosen device;
"},{"location":"getting-started/installing/from-gui/usage/#verification","title":"Verification","text":"
  • Integrity verification compares the computed hash of zip against thei provided zip.sha256.txt;

  • Authenticity verification check if the zip file was really signed by odudex, using the zip.sig and selfcustody.pem.

"},{"location":"getting-started/installing/from-gui/usage/#unzip","title":"Unzip","text":"

Now you will be able to select if you do a flash process or need to do an airgap process (soon):

"},{"location":"getting-started/installing/from-gui/usage/#flash","title":"Flash","text":"

When flash starts, it will warn you to not disconnect the device until the process is complete. You'll be able to see the flash progress:

\u26a0\ufe0f TIP: You must connect and turn on your device before click extract and flashing starts!.

As well a done icon:

\u26a0\ufe0f TIP: When the flashing process completes, you should see the Krux logo:

If it doesn't, try turning your device off and on by holding down the power button for six seconds.

Congrats, you're now running Krux!

"},{"location":"getting-started/installing/from-gui/usage/#wipe-device","title":"Wipe device","text":"

This is two step process:

  • Warning

  • Wipe

"},{"location":"getting-started/installing/from-gui/usage/#warning_1","title":"Warning","text":"

Before the wipe starts, it will show to you a message:

\u26a0\ufe0f TIP: It's useful when your device is not working or for security reasons. To use Krux again, you'll need to re-flash the firmware.

"},{"location":"getting-started/installing/from-gui/usage/#wipe","title":"Wipe","text":"

Once the process starts, the screen will appear frozen and a spinner will keep moving. When it's done, you can scroll down you will see a check icon.

\u26a0\ufe0f TIP: Do not unplug or poweroff your device or computer. Wait until the process finishes.

"},{"location":"getting-started/installing/from-gui/usage/#tips-after-install","title":"Tips after install","text":""},{"location":"getting-started/installing/from-gui/usage/#multilingual-support","title":"Multilingual support","text":"

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.

"},{"location":"getting-started/installing/from-gui/usage/#upgrade-via-microsd-card","title":"Upgrade via microSD card","text":"

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.

"},{"location":"getting-started/installing/from-gui/windows/","title":"Download assets","text":"
  • krux-installer_v0.0.20-alpha-3.Setup.exe
  • krux-installer_v0.0.20-alpha-3.Setup.exe.sha256.txt
  • krux-installer_v0.0.20-alpha-3.Setup.exe.sig
"},{"location":"getting-started/installing/from-gui/windows/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

(Get-FileHash '.\\krux-installer_v0.0.20-alpha-3.Setup.exe').Hash.ToLower() -eq (Get-Content '.\\krux-installer_v0.0.20-alpha-3.Setup.exe.sha256.txt').split(\" \")[0]\n

The result in prompt should be True.

Alternatively, you can check more closely in two steps:

  • Compute the binary sha256sum hash:
# Option 1: Compute in default way\nGet-FileHash '.\\krux-installer_v0.0.20-alpha-3.Setup.exe'\n\n# Option 2: Compute and filter the necessary information\n(Get-FileHash '.\\krux-installer_v0.0.20-alpha-3.Setup.exe').Hash\n\n# Option 3: Compute, filter and process the Hash for lowercase letters\n(Get-FileHash '.\\krux-installer_v0.0.20-alpha-3.Setup.exe').Hash.ToLower()\n
  • Compare with provided hash:
# Option 1: Get content \nGet-Content '.\\krux-installer_v0.0.20-alpha-3.Setup.exe.sha256.txt'\n\n# Option 2: Get content and filter the necessary information\n(Get-Content '.\\krux-installer_v0.0.20-alpha-3.Setup.exe.sha256.txt').split(\" \")[0]\n
"},{"location":"getting-started/installing/from-gui/windows/#verify-the-authenticity","title":"Verify the authenticity","text":"
  • You'll need have GPG installed;
  • We recommend installing GPG4Win.

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer_v0.0.20-alpha-3.Setup.exe.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/windows/#install","title":"Install","text":"

Execute the krux-installer_v0.0.20-alpha-3.Setup.exe. You'll be faced with a blue window saying \"Windows protected your PC\". This occurs because we don't have a code signing certificate:

\ud83d\udee1\ufe0f TIP: If you followed the steps presented in authenticity section, you already have the assurance that the software is from a verified and genuine software publisher. This will also help establish a chain of trust when you perform the firmware verification step before flashing.

Follow the installer's instructions to complete the installation. At the end, click on \"Create desktop icon\":

"},{"location":"getting-started/installing/from-gui/windows/#after-install","title":"After install","text":"

Once installed, you can proceed to firmware installation.

"},{"location":"getting-started/usage/generating-a-mnemonic/","title":"Generating a Mnemonic","text":"

Krux supports creating 12 and 24-word BIP-39 mnemonic seed phrases. Since generating true entropy is challenging, especially with an embedded device, we recommend outsourcing entropy generation using dice rolls. However, it is also possible to randomly pick words (e.g., SeedPicker) or use the camera as a source of entropy to quickly create a mnemonic.

At the start screen, after selecting New Mnemonic, you will be taken to a second menu where you can choose to create a mnemonic via the camera, words, rolls of a D6 (standard six-sided die), or a D20 (20-sided die).

"},{"location":"getting-started/usage/generating-a-mnemonic/#camera","title":"Camera","text":"

(Experimental!) Choose between 12, 24 words or double mnemonic, then take a random picture and Krux will generate a mnemonic from the hash of the image bytes.

"},{"location":"getting-started/usage/generating-a-mnemonic/#image-entropy-quality-estimation","title":"Image Entropy Quality Estimation","text":"

During image capture, entropy quality estimation is displayed to assist you in obtaining a high-quality image source for your key. After a snapshot is taken, Shannon's entropy and pixel deviation indices are presented. Minimum thresholds are established to prevent the use of poor-quality images with low entropy for key generation. It's important to note that these values serve as indicators or estimations of entropy quality, but they are not absolute entropy values in a cryptographic context.

"},{"location":"getting-started/usage/generating-a-mnemonic/#double-mnemonic","title":"Double mnemonic","text":"

It is the combination of two 12-word mnemonics that also forms a valid 24-word BIP-39 mnemonic. This is achieved by using the first 16 bytes (128 bits) of the image's entropy to generate the first 12-word, then using the next 16 bytes to generate the second 12-word and checking if these two 12-word together forms a valid 24-word, if not, we iterate over the second 12-word incrementing its entropy bytes until the two 12-word forms a valid 24-word.

Some might say that the name double mnemonic is incorrect because we end up with two 12-word plus a 24-word mnemonic (12 + 12 + 24), so it's a triple mnemonic! But we only use entropy for the two 12-word ones, hence the name double mnemonic. Also, this name has already been used in this double mnemonic generator since July 2023.

Some may wonder what is the use of this, it may be useful to some plausible deniability or even a way to improve your OPSEC.

"},{"location":"getting-started/usage/generating-a-mnemonic/#words","title":"Words","text":"

Print the BIP39 word list in 3D or on paper, then cut out the words and place them in a bucket. Manually draw 11 or 23 words from the bucket. For the final word, Krux will assist you in picking a valid 12th or 24th word by adjusting its smart keypad to only allow typing words with a valid checksum. Alternatively, you can leave it empty, and Krux will select a final, valid checksum word for you.

"},{"location":"getting-started/usage/generating-a-mnemonic/#dice-rolls","title":"Dice Rolls","text":""},{"location":"getting-started/usage/generating-a-mnemonic/#via-d6","title":"Via D6","text":"

Choose between 12 or 24 words. The entropy in a single roll of a D6 is 2.585 bits ( log2(6) ); therefore a minimum of a 50 rolls will be required for 128 bits of entropy, enough to generate a 12-word mnemonic. For 24-word, or an entropy of 256 bits, a minimum of 99 rolls will be required.

"},{"location":"getting-started/usage/generating-a-mnemonic/#via-d20","title":"Via D20","text":"

Since a D20 has more possible outcomes, the entropy is increased per roll to 4.322 bits ( log2(20) ). This means that only 30 rolls are necessary to create a 12-word mnemonic and 60 rolls for a 24-word mnemonic.

"},{"location":"getting-started/usage/generating-a-mnemonic/#dice-rolls-entropy-quality-estimation","title":"Dice Rolls Entropy Quality Estimation","text":"

When you input your dice rolls, you'll see two progress bars filling up. The top progress bar shows how many rolls you've entered compared to the minimum number needed. The bottom progress bar shows the real-time calculated Shannon's entropy compared to the required minimum (128 bits for 12 words and 256 bits for 24 words). When the Shannon's entropy estimation reaches the recommended level, the progress bar will be full, and its frame will change color. If you've met the minimum number of rolls but the entropy estimation is still below the recommended level, a warning will appear, suggesting you add more rolls to increase entropy. Note: Similar to image entropy quality estimation, dice rolls Shannon's entropy serves as an indicator and should not be considered an absolute measure of cryptographic entropy.

Learn more about Krux Entropy Quality Estimation.

"},{"location":"getting-started/usage/generating-a-mnemonic/#stats-for-nerds","title":"Stats for Nerds","text":"

A low Shannon's entropy value could suggest that your dice are biased or that there's a problem with how you're gathering entropy. To investigate further, examine the \"Stats for Nerds\" section to check the distribution of your rolls and look for any abnormalities.

"},{"location":"getting-started/usage/generating-a-mnemonic/#editing-a-new-mnemonic-optional","title":"Editing a New Mnemonic - Optional","text":"

After entering dice rolls, random words, or captured entropy through the camera, you can manually add custom entropy by editing some of the words. Edited words will be highlighted, and the final word will automatically update to ensure a valid checksum. However, proceed with caution, modifying words can negatively impact the natural entropy previously captured.

"},{"location":"getting-started/usage/generating-a-mnemonic/#how-entropy-capture-works","title":"How Entropy Capture Works","text":"

For dice rolls, Krux keeps track of every roll you enter and displays the cumulative string of outcomes after each roll.

When you have entered your final roll, Krux will hash this string using SHA256 and output the resulting hash to the screen so that you can verify it for yourself.

In case a camera snapshot is used as a source, the image bytes, which contain pixels data in RGB565 format, will be hashed in the same way as the dice rolls.

Krux then takes this hash, runs unhexlify on it to encode it as bytes, and deterministically converts it into a mnemonic according to the BIP-39 Reference Implementation.

Note: For 12-word mnemonics, only the first half of the SHA256 hash is used (128 bits), while 24-word mnemonics use the full hash (256 bits).

"},{"location":"getting-started/usage/generating-a-mnemonic/#how-to-verify","title":"How to Verify","text":"

Don't trust, verify. We encourage you not to trust any claim you cannot verify yourself. Therefore, there are wallets that use compatible algorithms to calculate the entropy derived from dice rolls. You can use the SeedSigner or Coldcard hardware wallets, or even the Bitcoiner Guide website, they share the same logic that Krux uses and will give the same mnemonic for the dice roll method.

"},{"location":"getting-started/usage/loading-a-mnemonic/","title":"Loading a Mnemonic","text":"

Once you have either a 12 or 24-word BIP-39 mnemonic, choose Load Mnemonic on Krux's start menu (aka login menu), and you will be presented with several input methods:

"},{"location":"getting-started/usage/loading-a-mnemonic/#input-methods","title":"Input Methods","text":""},{"location":"getting-started/usage/loading-a-mnemonic/#via-camera","title":"Via Camera","text":"

You can choose to use the camera to scan a QR code, Tiny Seed, OneKey KeyTag or a Binary Grid.

If you are in a dark environment, you can hold down the ENTER button of the M5StickV or Maix Amigo to turn on their LED light to potentially increase visibility. Some cameras (OV7740, OV2640 and GC2145) have an anti-glare mode to better capture images from high brightness screens or with incident light, they are present on M5StickV, Amigo, Cube and Yahboom. To enable/disable the anti-glare mode on a supported device just press the PAGE button while scanning.

"},{"location":"getting-started/usage/loading-a-mnemonic/#qr-code","title":"QR Code","text":"

It's unpleasant having to manually enter 12 or 24 words every time you want to use Krux. To remedy this you can instead use the device's camera to read a QR code containing the words. Krux will decode QR codes of four types:

  • Plain text QR: The mnemonic words encoded as text, with words separated by spaces.
  • SeedQR: Basically, it is the mnemonic words of the respective BIP-39 numbers concatenated, encoded as text.
  • Compact SeedQR: Basically, it is the mnemonic words bits concatenated as bytes.
  • Encrypted Mnemonic: A specification created by Krux that encrypts the mnemonic words bits and adds some information about the encryption used.

After opening a wallet via one of the methods available you can use Krux to backup the mnemonic as QR code, transcribe them to paper or metal using the transcription helpers or attach a thermal printer to your Krux and print out the mnemonic as QR. Check out the printing section for more information. You can also use an offline QR code generator for this (ideally on an airgapped device).

"},{"location":"getting-started/usage/loading-a-mnemonic/#tiny-seed-onekey-keytag-or-binary-grid","title":"Tiny Seed, OneKey KeyTag or Binary Grid","text":"

Tiny Seed, Onekey KeyTag and others directly encode a seed as binary, allowing for a very compact mnemonic storage. Krux devices have machine vision capabilities that allow users to scan these metal plates and instantly load mnemonics engraved on them (this feature is not available in Krux Android app).

To properly scan, place the backup plate over a black background and paint the punched bits black to increase contrast. You can also scan the thermally printed version, or a filled template. You can find some examples of mnemonics encoded here. Alternatively, you can find templates to scan or print here.

"},{"location":"getting-started/usage/loading-a-mnemonic/#via-manual-input","title":"Via Manual Input","text":"

Manually type Words, Word Numbers, Tiny Seed (toggle the bits or punches) or Stackbit 1248.

"},{"location":"getting-started/usage/loading-a-mnemonic/#words","title":"Words","text":"

Enter each word of your BIP-39 mnemonic one at a time. Krux will disable impossible-to-reach letters as you type and will attempt to autocomplete your words to speed up the process.

"},{"location":"getting-started/usage/loading-a-mnemonic/#word-numbers","title":"Word Numbers","text":""},{"location":"getting-started/usage/loading-a-mnemonic/#decimal","title":"Decimal","text":"

Enter each word of your BIP-39 mnemonic as a number (1-2048) one at a time. You can use this list for reference.

"},{"location":"getting-started/usage/loading-a-mnemonic/#hexadecimal-and-octal","title":"Hexadecimal and Octal","text":"

You can also enter your BIP-39 mnemonic word's numbers (1-2048) in hexadecimal format, with values ranging from 0x1 to 0x800, or in octal format, with values ranging from 01 to 04000. This is useful with some metal plate backups that uses those formats.

"},{"location":"getting-started/usage/loading-a-mnemonic/#tiny-seed-bits","title":"Tiny Seed (Bits)","text":"

Enter the BIP-39 mnemonic word's numbers (1-2048) in binary format, toggling necessary bits to recreate each of the word's respective number. The last word will have checksum bits dynamically toggled while you fill the bits.

"},{"location":"getting-started/usage/loading-a-mnemonic/#stackbit-1248","title":"Stackbit 1248","text":"

Enter the BIP-39 mnemonic word's numbers (1-2048) using the Stackbit 1248 metal plate backup method, where each of the four digits of the word's number is a sum of the numbers marked (punched) 1, 2, 4, or 8. For example, to enter the word \"oyster\", number 1268, you must punch (1)(2)(2,4)(8).

"},{"location":"getting-started/usage/loading-a-mnemonic/#from-storage","title":"From Storage","text":"

You can retrieve mnemonics previously stored on device's internal flash or external (SD card). All stored mnemonics are encrypted, to load them you'll have to enter the same key you used to encrypt them.

"},{"location":"getting-started/usage/loading-a-mnemonic/#wallet-loading","title":"Wallet Loading","text":""},{"location":"getting-started/usage/loading-a-mnemonic/#confirm-mnemonic-words","title":"Confirm Mnemonic Words","text":"

Once you have entered your mnemonic, you will be presented with the full list of words to confirm.

If you see an asterisk (*) in the header, it means this is a double mnemonic.

"},{"location":"getting-started/usage/loading-a-mnemonic/#edit-mnemonic-optional","title":"Edit Mnemonic - Optional","text":"

If you make a mistake while loading a mnemonic, you can easily edit it. Simply touch or navigate to the word you want to change and replace it. Edited words will be highlighted in a different color. If the final word contains an invalid checksum, it will appear in red. If your checksum word is red, please review your mnemonic carefully, as there may be an error.

"},{"location":"getting-started/usage/loading-a-mnemonic/#confirm-wallet-attributes","title":"Confirm Wallet Attributes","text":"

You will be presented with a screen containing wallet attributes, if they are as expected just press Load Wallet and you'll be ready to use your loaded key.

"},{"location":"getting-started/usage/loading-a-mnemonic/#fingerprint","title":"Fingerprint","text":"
  • 73c5da0a: The BIP-32 master wallet's fingerprint, if you have it noted down, will help you make sure you entered the correct mnemonic and passphrase (optional) and will load the expected wallet.
"},{"location":"getting-started/usage/loading-a-mnemonic/#network","title":"Network","text":"
  • Mainnet: Check if you are loading a Testnet or Mainnet wallet.
"},{"location":"getting-started/usage/loading-a-mnemonic/#single-multisig","title":"Single / Multisig","text":"
  • Single-sig: Check if you are loading a Single-sig or Multisig wallet.
"},{"location":"getting-started/usage/loading-a-mnemonic/#derivation-path","title":"Derivation Path","text":"
  • m/84'/0'/0': The derivation path is a sequence of numbers, or \"nodes\", that define the script type, network, and account index of your wallet.
    • Script Type 84': The first number defines the script type. The default is 84', corresponding to a Native Segwit wallet. Other values include:
      • 44' for Legacy
      • 49' for Nested Segwit
      • 86' for Taproot
      • 48' for Multisig
    • Network 0': The second number defines the network:
      • 0' for Mainnet
      • 1' for Testnet
    • Account Index 0': The third number is the account index, with 0' being the default.
    • Additional: For multisig wallets, a fourth node with the value 2' is added to the derivation path.
"},{"location":"getting-started/usage/loading-a-mnemonic/#passphrase","title":"Passphrase","text":"
  • No Passphrase: Informs if the wallet has a loaded passphrase.
"},{"location":"getting-started/usage/loading-a-mnemonic/#customize","title":"Customize","text":"

You can change any of the attributes before and after loading a wallet. It is also possible to change default settings for Network and Single/Multisig on settings.

"},{"location":"getting-started/usage/loading-a-mnemonic/#passphrase_1","title":"Passphrase","text":"

You can type or scan a BIP-39 passphrase. When typing, swipe left or right to change keypads if your device has a touchscreen. You can also hold the button PAGE or PAGE_PREV when navigating among letters while typing text to fast forward or backward. For scanning, you can also create a QR code from your offline passphrase using the create QR code tool.

"},{"location":"getting-started/usage/loading-a-mnemonic/#customize_1","title":"Customize","text":"

Press Customize to open a menu where you can change the Network, Single/Multisig, Script Type and Account.

Now, onto the main menu...

"},{"location":"getting-started/usage/navigating-the-main-menu/","title":"Navigating the Main Menu","text":"

After entering your mnemonic, and loading a wallet, you will find yourself on Krux's main menu. Below is a breakdown of the entries available:

"},{"location":"getting-started/usage/navigating-the-main-menu/#backup-mnemonic","title":"Backup Mnemonic","text":"

This will open a new submenu with different types of backups. QR Code based, Encrypted and Other Formats

If you set a printer, it will also give the option to print them!

"},{"location":"getting-started/usage/navigating-the-main-menu/#qr-code","title":"QR Code","text":"
  • Plaintext QR

Generate a QR containing the mnemonic words as regular text, where words are separated by spaces. Any QR code can be printed if a thermal printer driver is set.

  • Compact SeedQR

A QR code is created from a binary representation of mnemonic words. Format created by SeedSigner, more info here.

  • SeedQR

Words are converted to their BIP-39 numeric indexes, those numbers are then concatenated as a string and finally converted to a QR code. Format created by SeedSigner, more info here.

  • Encrypted QR Code

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.

"},{"location":"getting-started/usage/navigating-the-main-menu/#encrypted","title":"Encrypted","text":"

This feature allows you to back up your mnemonic by encrypting it and storing it on the device's flash memory, an SD card, or in QR code format. You can customize the encryption method and parameters in the settings.

For convenience, you may choose to store the encrypted mnemonic on flash memory or an SD card, but it is advisable not to rely solely on these methods for backup. Flash storage can degrade over time and may be subject to permanent damage, resulting in the loss of stored information.

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.

  • Store on Flash

This option stores the encrypted mnemonic in the device's flash memory. You can decrypt and load it later through the \"Load Mnemonic\" -> \"From Storage\" option.

  • Store on SD Card

If an SD card is available, this option stores the encrypted mnemonic on it. You can decrypt and load it later through the \"Load Mnemonic\" -> \"From Storage\" option.

  • Encrypted QR Code It's another path for the same functionality present on QR Code backups, described above.
"},{"location":"getting-started/usage/navigating-the-main-menu/#other-formats","title":"Other Formats","text":"
  • Words

Display the BIP-39 mnemonic words as text so you can write them down.

  • Numbers

Display the BIP-39 mnemonic word numbers (1-2048) in decimal, hex, or octal format.

  • Stackbit 1248

This metal backup format represents the BIP-39 mnemonic word's numbers (1-2048). Each of the four digits is converted to a sum of 1, 2, 4 or 8. This option does not print even if a printer driver is set.

  • Tiny Seed

This metal backup format represents the BIP-39 mnemonic word's numbers (1-2048) in binary format on a metal plate, where the 1's are marked (punched) and the 0's are left intact. You can also print your mnemonic in this format if a thermal printer driver is set.

"},{"location":"getting-started/usage/navigating-the-main-menu/#extended-public-key","title":"Extended Public Key","text":"

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.

All QR codes will contain key origin information in 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.

"},{"location":"getting-started/usage/navigating-the-main-menu/#wallet","title":"Wallet","text":"

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

"},{"location":"getting-started/usage/navigating-the-main-menu/#wallet-descriptor","title":"Wallet Descriptor","text":"

A Bitcoin Wallet Output Script 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). - Origin Info: Defines the master fingerprint and derivation path used to derive keys. - Extended Public Keys: usually represented as an xpub, but could be ypub, zpub, etc.

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.

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.

"},{"location":"getting-started/usage/navigating-the-main-menu/#passphrase","title":"Passphrase","text":"

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.

"},{"location":"getting-started/usage/navigating-the-main-menu/#customize","title":"Customize","text":"

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

"},{"location":"getting-started/usage/navigating-the-main-menu/#bip85","title":"BIP85","text":"

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.

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 passphrases will be removed when loading a BIP85 child.

"},{"location":"getting-started/usage/navigating-the-main-menu/#address","title":"Address","text":"

Scan, verify, export or print your wallet addresses.

"},{"location":"getting-started/usage/navigating-the-main-menu/#scan-address","title":"Scan Address","text":"

This option turns on the camera and allows you to scan in a QR code of a receive address. Upon scanning, it will render its own QR code of the address back to the display along with the (text) address below it. You could use this feature to scan the address of someone you want to send coins to and display the QR back to your wallet coordinator rather than copy-pasting an address. If you have a thermal printer attached, you can also print this QR code.

After proceeding through this screen, you will be asked if you want to check that the address belongs to your wallet. If you confirm, it will exhaustively search through as many addresses derived from your wallet as you want in order to find a match.

This option exists as an extra security check to verify that the address your wallet coordinator has generated is authentic and belongs to your wallet.

"},{"location":"getting-started/usage/navigating-the-main-menu/#receive-addresses","title":"Receive Addresses","text":"

List your wallet receiving addresses, you can browse to select an arbitrary address to show your QR code and print if you want.

"},{"location":"getting-started/usage/navigating-the-main-menu/#change-addresses","title":"Change Addresses","text":"

List your wallet change addresses, you can browse to select an arbitrary address to show your QR code and print if you want.

"},{"location":"getting-started/usage/navigating-the-main-menu/#sign","title":"Sign","text":"

Under Sign, you can choose to sign a PSBT or a message. You can load both PSBTs and messages scanning QR codes or loading from files on a SD card.

"},{"location":"getting-started/usage/navigating-the-main-menu/#psbt","title":"PSBT","text":"

To sign a Bitcoin PSBT, you have the following options:

  • Scan an Animated QR Code: Turn on the camera and scan an animated QR code of a PSBT generated by your wallet coordinator software. If you have any issues, see Troubleshooting.
  • Load from SD Card: Load an unsigned PSBT file from your SD card.

Upon loading the PSBT, you will be presented with a preview showing the amount of BTC being sent, the recipient's address, and the transaction fee. Amounts are displayed according to your locale and the International Bureau of Weights and Measures, while still adhering to the concept of the Satcomma standard format.

If you choose to proceed and sign the transaction, the signed PSBT can be exported in two ways:

  • As an animated QR code, which can be scanned back into your coordinator wallet.
  • As a signed PSBT file, which can be saved to your SD card and then loaded back into your coordinator wallet for broadcasting.

If a thermal printer is attached to your device, you can also print the PSBT QR codes for record-keeping or further processing.

"},{"location":"getting-started/usage/navigating-the-main-menu/#message","title":"Message","text":"

Similar to PSBTs, Krux can load, sign, and export signatures for messages. This feature allows you to attest not only to the ownership of the messages themselves but also to the ownership of Bitcoin addresses and the authorship of documents and files.

"},{"location":"getting-started/usage/navigating-the-main-menu/#standard-messages-and-files","title":"Standard Messages and Files","text":"

You can scan or load a file from an SD card, the content can be plaintext or the SHA-256 hash of a message. Upon loading, you will be shown a preview of the message's SHA-256 hash for confirmation before signing.

If you confirm, a signature will be generated, and you will see a base64-encoded version of it. You can then choose to export it as a QR code or save it to an SD card. If a thermal printer is attached, you can also print the QR code.

Following this, you will see and be allowed to export your raw (master) public key in hexadecimal form, which can be used by others to verify your signature. If a thermal printer is attached, you can also print this QR code.

This feature is used to sign Krux releases, airgapped, using a Krux device.

"},{"location":"getting-started/usage/navigating-the-main-menu/#messages-at-address","title":"Messages at Address","text":"

Coordinators like Sparrow and Specter offer the possibility to sign messages at a Bitcoin receive address, allowing you to attest ownership of that address. Krux will detect if the message is of this type and present a similar workflow for signing. The main difference is that the address will be displayed along with the raw message, and since the message is signed with a derived address instead of the master public key, Krux won't offer the option to export the raw public key after the signature.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/","title":"Setting a Coordinator and Signing","text":"

After creating a mnemonic, making a safe backup, and testing to recover your mnemonic, it's time to set up a coordinator.

Krux can work with multiple coordinator wallets. Popular options include:

  • Sparrow Wallet (desktop)

  • Specter Desktop (desktop)

  • Nunchuk (mobile)

  • BlueWallet (mobile)

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-1-install-the-coordinator-wallet","title":"Step 1: Install the Coordinator Wallet","text":"

Download and install the appropriate version of your chosen coordinator wallet for your device and operating system.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-2-create-a-new-wallet-with-krux-as-a-signer","title":"Step 2: Create a New Wallet with Krux as a Signer","text":"

Depending on the coordinator, the steps to add Krux as a signer may vary slightly:

Specter and Nunchuk Single-sig: Add Krux as signer device, then create a wallet that uses it.

Specter and Nunchuk Multisig: Add Krux as signer device, add other devices, then create a wallet that uses them.

Sparrow and BlueWallet: Create a wallet (or vault in Blue Wallet) first, then add signer device(s).

  1. Load a mnemonic and wallet in Krux.

  1. On your coordinator, when presented with possible signer devices to add, choose Krux if available, otherwise choose \"other\" or even another QR code compatible signer. As Krux is compatible with many QR code formats, most of available alternatives should work.

  2. When prompted by your coordinator to import signer's public key, access the \"Extended Public Key\" on Krux.

  1. Export an XPUB (or YPUB, ZPUB, etc., based on the script type) as a QR code.

  1. Scan this QR code with your coordinator.

  2. Ensure the coordinator\u2019s wallet attributes (policy type, script type, fingerprint, and derivation) match those in Krux.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-3-load-and-backup-wallet-descriptor-multisig-only","title":"Step 3: Load and Backup Wallet Descriptor (Multisig Only)","text":"
  1. In your coordinator, export the wallet descriptor containing information about the wallet and all cosigners:
    • Sparrow: \"Descriptor\"
    • Specter: \"Export Wallet\"
    • Nunchuk: \"Export Wallet Configuration\"
    • BlueWallet: \"Export Coordination Setup\"
  2. Export the descriptor as a QR code or file.
  3. On Krux, go to \"Wallet\" -> \"Wallet Descriptor\" to scan the descriptor QR code or load it via SD card.
  1. If you access \"Wallet\" -> \"Wallet Descriptor\" again, you will be able to:

    • Check the wallet cosigners.
    • Save the descriptor on an SD card (useful if you initially loaded it from QR codes).

    It is crucial to have a backup of this descriptor to recover your wallet in case one of the cosigners is lost.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-4-verify-addresses","title":"Step 4: Verify Addresses","text":"

For single-sig or multisig (after loading a descriptor):

  • Go to \"Address\" on Krux.

  • List \"Receive Addresses\" and \"Change Addresses\" or use \"Scan Address\" to verify if addresses from your coordinator are matched by Krux.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-5-funding-your-wallet","title":"Step 5: Funding your Wallet","text":"

Once addresses are verified, send a small test amount to your wallet. Test signing and sending a transaction before adding more funds.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-6-sign-psbts-and-messages","title":"Step 6: Sign PSBTs and Messages","text":""},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#psbts","title":"PSBTs","text":"
  1. Create a transaction in your coordinator.

  2. Export the transaction as a QR code.

  3. On Krux, go to \"Sign\" -> \"PSBT\" -> \"Load from camera\".

  4. Scan the animated QR code.

  5. Verify the transaction details.

  6. If correct, press \"Sign to QR code\".

  7. Scan the signed transaction QR code back into the coordinator to broadcast it.

Alternatively, you can use an SD card:

Save the transaction as a file on an SD card. On Krux, go to \"Sign\" -> \"PSBT\" -> \"Load from SD card\" and \"Sign to SD card\". Load the signed transaction on the coordinator and broadcast it.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#messages","title":"Messages","text":"

Some coordinators, like Sparrow, allow you to sign messages linked to your wallet's addresses. Signing and verifying a message signature attests to the ownership of an address and serves as an additional test for your setup.

"},{"location":"getting-started/usage/video-tutorials/","title":"Video Tutorials","text":""},{"location":"getting-started/usage/video-tutorials/#krux-video-tutorials","title":"Krux Video Tutorials","text":"

Most people prefer to learn by watching videos, and we are fortunate to have excellent content creators in the Bitcoin space, here are some examples of Krux related content and tutorials.

"},{"location":"getting-started/usage/video-tutorials/#english","title":"English","text":""},{"location":"getting-started/usage/video-tutorials/#krux-on-m5stickv-sparrow","title":"Krux on M5StickV + Sparrow","text":"

Krux on M5StickV + Sparrow Wallet by Crypto Guide

"},{"location":"getting-started/usage/video-tutorials/#krux-on-maix-amigo-blue","title":"Krux on Maix Amigo + Blue","text":"

Krux on Maix Amigo + Blue Wallet by Crypto Guide

"},{"location":"getting-started/usage/video-tutorials/#diy-only-multisig","title":"DIY-Only MultiSig","text":"

DIY-Only Multivendor Hardware Wallet MultiSig: SeedSigner, Jade, Krux, Satochip + Sparrow & Electrum by Crypto Guide

"},{"location":"getting-started/usage/video-tutorials/#build-from-source-verify","title":"Build From Source & Verify","text":"

Krux DIY Bitcoin Signer: Build From Source & Verify (With Windows + WSL2 + Docker) by Crypto Guide

"},{"location":"getting-started/usage/video-tutorials/#portuguese","title":"Portuguese","text":""},{"location":"getting-started/usage/video-tutorials/#krux-facil-de-instalar","title":"Krux f\u00e1cil de instalar","text":"

Hardwallet Krux f\u00e1cil de instalar + QRs criptografados - por Bitdov

"},{"location":"getting-started/usage/video-tutorials/#multisig-com-krux","title":"Multisig com Krux","text":"

Multisig com Krux e Nunchuk no celular - por Bitdov

"},{"location":"getting-started/usage/video-tutorials/#krux-com-impressora-termica","title":"Krux com impressora t\u00e9rmica","text":"

Usando a Krux com impressora t\u00e9rmica - por Bitdov

"},{"location":"getting-started/usage/video-tutorials/#krux-no-celular","title":"Krux no celular","text":"

Carteira Bitcoin com celular OFFLINE - Krux mobile APK - por Dig

"},{"location":"getting-started/usage/video-tutorials/#krux-no-celular-ii","title":"Krux no celular II","text":"

Como utilizar a carteira Krux no celular - por Jo\u00e3o Trein

"},{"location":"getting-started/usage/video-tutorials/#faca-sua-krux","title":"Fa\u00e7a sua Krux","text":"

Fa\u00e7a sua hardware wallet em casa com a KRUX! - por Caiovski

"},{"location":"snippets/after-install-installer/","title":"After install installer","text":"

Once installed, you can proceed to firmware installation.

"}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"faq/","title":"FAQ","text":""},{"location":"faq/#is-krux-a-hardware-wallet","title":"Is Krux a hardware wallet?","text":"

The term \"hardware wallet\" typically refers to devices dedicated to storing private keys and signing transactions. These devices often feature specific security components like secure element chips.

Krux was initially developed as a signer, operating exclusively in amnesic mode, which requires users to load their keys each time the device is powered on. However, Krux has evolved and now offers the option to store mnemonics, similar to traditional hardware wallets. These mnemonics can be stored in the device's internal memory or on SD cards.

Krux does not include hardware secure elements. The security of stored data relies on encryption.

Note: Due to the inherent fragility of electronic components, never use your Krux device or SD card encrypted storage as your sole backup method. Always maintain a physical backup for added security.

"},{"location":"faq/#what-is-beta-version","title":"What is Beta version?","text":"

The Beta version includes the latest and most experimental features, which we occasionally share on our social media. These can be found exclusively in the test (beta) repository. Use and flash the beta firmware if you are curious about new features or want to participate in the development process by hunting bugs, providing feedback, and sharing ideas in our Telegram groups or other social media platforms.

For regular use, flash the official releases, which are signed, thoroughly tested, and well-documented.

"},{"location":"faq/#what-is-krux-android-app","title":"What is Krux Android app?","text":""},{"location":"faq/#how-can-i-find-it","title":"How can I find it?","text":"

The Krux Android app is available as an APK in the test (beta) repository. It requires Android 6.0 or above.

"},{"location":"faq/#how-can-i-install-it","title":"How can I install it?","text":"

The APK is not available on the Play Store. You can download the APK directly or transfer it to your Android device via SD card or USB cable. To install it, you may need to configure your Android device to allow installations from unknown sources.

"},{"location":"faq/#is-it-safe-to-use","title":"Is it safe to use?","text":"

The Krux Android app is designed for learning about Krux and Bitcoin air-gapped transactions. Due to the numerous potential vulnerabilities inherent in smartphones, such as the lack of control over the operating system, libraries, and hardware peripherals, the Krux app should NOT be used to manage wallets containing savings or important keys and mnemonics. For secure management of your keys, a dedicated device is recommended.

"},{"location":"","title":"Krux","text":"

Krux is an open-source firmware that transforms off-the-shelf Kendryte K210 devices, such as the Maix Amigo, M5StickV and more, into versatile bitcoin transaction signers. Beyond its core functionality, Krux is a flexible platform that can adapt to devices with different form factors, providing a suite of tools to assist with the creation and recovery of mnemonic backups, some of which include encryption options for enhanced security.

Devices like the Maix Amigo and Yahboom come ready to use, with large touchscreens that make it easy and user-friendly to operate. These devices are ideal for those looking for a plug-and-play solution. On the other hand, Krux also supports development board kits, which are perfect for DIY enthusiasts who enjoy customizing and building their own hardware setups.

Interacting seamlessly with leading coordinator wallets through QR codes, SD cards, and even thermal printers, the user-friendly firmware offers unique features to support transactions and mnemonic backups in an offline environment.

To learn more about Krux, check out Getting Started.

"},{"location":"parts/","title":"Devices and Parts List","text":""},{"location":"parts/#krux-compatible-devices","title":"Krux Compatible Devices","text":""},{"location":"parts/#comparative-table","title":"Comparative Table","text":"Device M5StickV Maix Amigo Maix Dock Maix Bit Yahboom k210 module Maix Cube WonderMV Price range US$ 50-55 US$ 50-85 US$ 27-35 US$ 32-42 US$ 45-61 US$ 34-49 US$ 58-86 Screen size / resolution 1.14\" / 135*240 3.5\" / 320*480 2.4\" / 240*320 2.4\" / 240*320 2\" / 240*320 1.3\" / 240*240 2\" / 240*320 Brightness control Device size 48*24*22mm 104*63*17mm 98*59*18mm 69*84*41mm 57*41*17mm 40*40*16mm 59*41*17mm Touchscreen Capacitive Capacitive Capacitive Camera OV7740 OV7740 rearGC0328 front GC0328 OV2640 orOV5642 OV2640 (VER:1.0) orGC2145 (VER:1.1) OV7740 GC2145 Battery 200mAh 520mAh 200mAh Requirements None None Rotary encoder 3D printed case SolderingAssembly Buttons 3D printed case SolderingAssembly None None None Warnings Camera has lens distortion Micro USB 3-Way button None

: Only OV7740, OV2640 and GC2145 have an anti-glare mode to better capture images from high brightness screens or with incident light.

: M5StickV's USB-C port lacks pull up resistors required for it to be recognized and powered by host (computer) USB-C ports. If you don't have an USB-A available, you can use a USB hub connected between your computer's USB-C and M5StickV.

: Some Amigo screens have inverted X coordinates, others display colors differently. For more info see Troubleshooting.

: Some stores ship the Maix Dock with soldered pin connectors that do not fit into the 3D printed case.

All devices feature Kendryte K210 chip: 28nm process, dual-core RISC-V 64bit @400MHz, 8 MB high-speed SRAM, DVP camera and MCU LCD interface, AES Accelerator, SHA256 Accelerator, FFT Accelerator.

"},{"location":"parts/#m5stickv","title":"M5StickV","text":"

Below is a list of some distributors where you can find this device:

  • M5Stack
  • Mouser
  • Digi-Key
  • Electromaker
  • Lee's Electronic
  • AliExpress
  • ABRA
  • Adafruit
  • Cytron
"},{"location":"parts/#maix-amigo","title":"Maix Amigo","text":"

Below is a list of some distributors where you can find this device:

  • AliExpress
  • Seeed Studio
  • Digi-Key
  • Mouser
  • Electromaker
"},{"location":"parts/#yahboom-k210-module","title":"Yahboom k210 module","text":"

It comes with a compatible 32G card, an USB card reader, one PH2.0 4Pin male-to-male connector and one PH2.0 female adapter (to connect to a thermal printer). Below is a list of some distributors where you can find this device:

  • AliExpress
  • Amazon
  • Yahboom Store
  • ETC HK Shop
"},{"location":"parts/#maix-cube","title":"Maix Cube","text":"

Below is a list of some distributors where you can find this device:

  • Seeed Studio
  • Mouser
  • Electromaker
  • Digi-Key
  • AliExpress
  • Amazon
"},{"location":"parts/#maix-dock-and-maix-bit","title":"Maix Dock and Maix Bit","text":"

For the DIYers, the Maix Dock and Maix Bit are also supported but will require sourcing the parts individually and building the device yourself.

Below are example implementations with instructions on how to recreate them:

  • https://github.com/selfcustody/DockEncoderCase
  • https://github.com/selfcustody/MaixBitCase

Below is a list of some distributors where you can find these devices:

  • Mouser
  • Electromaker
  • Digi-Key
  • AliExpress
  • Amazon
"},{"location":"parts/#other-parts","title":"Other Parts","text":""},{"location":"parts/#usb-c-or-micro-usb-charge-cable","title":"USB-C or Micro USB Charge Cable","text":"

This will come with the device. It will be necessary to power, charge the device (if it has battery) and to initially flash the firmware.

"},{"location":"parts/#optional-microsd-card","title":"(Optional) MicroSD Card","text":"

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, read the Troubleshooting for more info. Yahboom will come with a compatible 32G card. The size of the SD card isn't important; anything over a few megabytes will be plenty.

"},{"location":"parts/#optional-ttl-serial-thermal-printer","title":"(Optional) TTL Serial Thermal Printer","text":"

Warning/Disclaimer: This feature is intended for individuals with experience in electronics tinkering and soldering.

Krux has the capability to print all QR codes it generates, including those for mnemonics, xpubs, wallet backups, and signed PSBTs, using a locally-connected thermal printer via its serial port.

Many TTL serial thermal printers may be compatible, but currently, the Goojprt QR203 has the best support (except this printer only supports ASCII or Chinese characters, non-ASCII characters will be printed as Chinese). The Adafruit printer starter pack can also be a convenient option to get started, as it includes all the necessary components for printing (except the conversion cable). To ensure proper functionality, enable the printer driver in the Krux settings, set the Tx pin and baud rate value to either 19200 or 9600 (depends on the printer), as explained in this Adafruit printer tutorial. You will need to connect the device's Tx to the printer's Rx and device's ground to the printer's ground, do not connect any other pins because a wrong connection may damage your device. The printer requires a dedicated power supply, typically with an output of 5 to 9V (or 12V) and capable of supplying at least 2A. For more information, see this discussion.

"},{"location":"parts/#optional-conversion-cable-for-thermal-printer","title":"(Optional) Conversion Cable for Thermal Printer","text":"

To connect the printer to M5StickV, Amigo or Cube, you will need a grove conversion cable with a 4-pin male Grove connector on one end (to connect to the device) and 4-pin male jumpers on the other end (to connect to the printer). Check your device and printer model connection first, Yahboom comes with PH2.0 4Pin female connector; Dock and Bit doesn't have a connector. For a more reliable connection, it is recommended to cut and solder the wires of your custom cables instead of using jumpers.

"},{"location":"support/","title":"Support the Project","text":""},{"location":"support/#ways-you-can-help","title":"Ways you can help","text":""},{"location":"support/#development","title":"Development","text":"

Audit the code, file an issue, make a pull request, or do all three. :)

"},{"location":"support/#documentation","title":"Documentation","text":"

\"I'd like to see Krux help as many people as possible, and to do that, good documentation is needed. If you identify a better way to say something, please make a PR, any help is appreciated.\" - Jeff

"},{"location":"support/#translation","title":"Translation","text":"

Krux supports different languages. If you missed a language or saw an awkward translation, open an issue or make a PR! You can also make a difference by translating this documentation! For information on how to translate, see here

"},{"location":"support/#social","title":"Social","text":"

Reach out via our Telegram group or X profile (Twitter) for faster help, share ideas and join the Krux community. Help others get to know Krux.

\"I'm an engineer, not a marketer. If you like Krux, help spread the word!\" - Jeff

"},{"location":"support/#donations","title":"Donations","text":"

Krux won't ask for, receive, manage or distribute donations. You can donate directly to a Krux contributor of your choice.

"},{"location":"troubleshooting/","title":"Troubleshooting","text":""},{"location":"troubleshooting/#before-installing","title":"Before Installing","text":""},{"location":"troubleshooting/#linux-os-not-listing-serial-port","title":"Linux OS not listing serial port?","text":"

If you get the following error when trying to flash your device: Failed to find device via USB. Is it connected and powered on? Make sure your device is being detected and serial ports are being mounted by running:

ls /dev/ttyUSB*\n
Expect one port to be listed for devices like M5StickV and Maix Dock /dev/ttyUSB0, and two ports for Maix Amigo and Maix Bit /dev/ttyUSB0 /dev/ttyUSB1.

If you don't see them, your OS may not be loading the correct drivers to create the serial ports to connect to. Ubuntu has a known bug where the brltty driver \"kidnaps\" serial devices. You can solve this problem by removing it:

sudo apt-get remove brltty\n

"},{"location":"troubleshooting/#m5stickv-device-not-being-recognized-and-charged","title":"M5StickV device not being recognized and charged?","text":"

M5StickV's USB-C port lacks pull up resistors required for it to be recognized and powered by host (computer) USB-C ports. If you don't have an USB-A available, you can use a USB hub connected between your computer's USB-C and M5StickV.

"},{"location":"troubleshooting/#device-not-charging-or-being-recognized","title":"Device not charging or being recognized?","text":"

If you have a Maix Amigo, make sure you're using the USB-C port at the bottom of the device, not the one on the left side.

Different computer hosts have varying hardware, operating systems, and behaviors regarding connecting to their USB ports. Below are the expected behaviors:

USB-A:

Your device should charge and turn on when connected to a USB-A port, even if it was initially turned off. You can also turn off the device while it continues to charge. However, some hosts' USB-A ports may behave like USB-C ports, as described below.

USB-C:

  • If the device is turned off and connected to a USB-C port, it should turn on and start charging. You can turn it off again, and it will continue to charge.

  • If the device is already turned on and connected to a USB-C port, it may not charge or be recognized by the computer. In this case, turn off the device to initiate recognition and charging. Once turned off and reconnected, the device should restart, be recognized by the computer, and charging should be triggered by USB-C hosts. If your device is not charging or being recognized as expected, try using a different USB port or a different computer to determine if the issue is with the device or the host's USB port.

"},{"location":"troubleshooting/#device-randomly-freezes-or-restarts","title":"Device randomly freezes or restarts?","text":"

If the device behaves this way when connected to the computer, Windows is known to have issues with USB-C devices. If you are experiencing random crashes or even reboots and your device does not have a battery, try using a phone charger or other power source such as a power bank.

"},{"location":"troubleshooting/#after-installing","title":"After Installing","text":""},{"location":"troubleshooting/#maix-amigo-touchscreen-doesnt-work-with-v24030-but-worked-okay-with-v23091","title":"Maix Amigo touchscreen doesn't work with v24.03.0 but worked okay with v23.09.1?","text":"

We added a hardware IRQ (interrupt request) to the firmware, so when you open your Maix Amigo, you will see a switch in the middle of the device board, it must be in the upper position for the touchscreen to work with v24.03.0 and later.

"},{"location":"troubleshooting/#troubleshooting-lcd-settings-on-maix-amigo","title":"Troubleshooting LCD Settings on Maix Amigo","text":"

Buttons in the Wrong Order

If the buttons on keypad input screens appear to be in the wrong order, this might be due to inverted X coordinates. To correct this:

  1. Go to Settings > Hardware > Display.
  2. Change the value of Flipped X Coordinates.

Incorrect Colors

If the colors displayed on the interface or camera preview are incorrect, you can try the following options:

Inverted Colors

If, for example, the background color is white when it should be black, go to Settings > Hardware > Display and toggle Inverted Colors .

BGR Colors

If, for example, you are using the Orange theme, and instead of orange the colors appear bluish, toggle BGR Colors in the display settings.

LCD Type

WARNING! Only try changing this setting if you failed to fix colors with previous ones.

If adjusting BGR Colors and Inverted Colors doesn't fix the color issue, try changing the LCD Type:

  1. After changing this setting, you will be warned that the device will reboot automatically if this change does not resolve the issue (if it fails, the screen will turn black, and you'll not see anything).
  2. After proceeding with the warning, if you see a message prompting you to press the PREVIOUS (UP) button, it means that the new setting worked. Follow the instructions and press UP.
  3. If you notice menu options but the colors are still wrong, try again with different combinations of Inverted Colors and BGR Colors. This time, it is likely you will find a combination that correctly displays the colors of themes and the camera feed.

If, after the warning in step 1, the screen turns black and you don't see anything, don't panic or press any buttons. Just wait 5 seconds, and the device will automatically reboot with the previous display settings. This means you should keep the default LCD Type setting and maybe try again with Inverted Colors and BGR Colors.

If you accidentally pressed PREVIOUS (UP) and saved the wrong setting, you will have to perform a wipe to remove all stored settings to be able to see the screen working again. On Linux, go to the folder where you downloaded the Krux firmware and use Ktool to fully wipe your device:

./ktool-linux -B goE -b 1500000 -E

(Soon Krux-Installer will have a full wipe button too)

Then flash the firmware again.

./ktool-linux -B goE -b 1500000 maixpy_amigo/kboot.kfpkg

"},{"location":"troubleshooting/#device-didnt-reboot-and-screen-is-blank","title":"Device didn't reboot, and screen is blank","text":"

If the device didn't reboot after successfully flashing the firmware, and the screen is blank after turning it off and on, check if the downloaded file matches the device (this can also occur due to data corruption). Try downloading binaries again.

You can also install MaixPy IDE to help with debugging, Tools > Open Terminal > New Terminal > Connect to serial port > Select a COM port available (if it doesn't work, try another COM port). It will show the terminal and some messages, a message about an empty device or with corrupted firmware appears like: \"interesting, something's wrong, boot failed with exit code 233, go to find your vendor.\"

"},{"location":"troubleshooting/#usage","title":"Usage","text":""},{"location":"troubleshooting/#why-isnt-krux-scanning-the-qr-code","title":"Why isn't Krux scanning the QR code?","text":"

The level of detail that you see is what Krux sees. If the QR code shown on the device's screen is blurry, the camera lens of the device may be out of focus. It can be adjusted by rotating it clockwise or counter-clockwise to achieve a clearer result. The lenses usually comes with a drop of glue that makes id harder to adjust for the first time. You can use your fingertip, tweezers or small precision pliers to help, being careful to don't damage the fragile lenses.

If you have adjusted the lens already, the device may be too far away or too close to the code to read it. Start by holding the device as close to the QR code as possible and pulling away slowly until all or most of the QR code is viewable within the screen. If the code on the screen looks crisp, Krux should read it quickly and give you immediate feedback.

If you are in a dark environment, you can hold down the ENTER button of the M5StickV or Maix Amigo to turn on their LED light to potentially increase visibility. Some cameras (OV7740, OV2640 and GC2145) have an anti-glare mode to better capture images from high brightness screens or with incident light, they are present on M5StickV, Amigo, Cube and Yahboom. To enable/disable the anti-glare mode on a supported device just press the PAGE button while scanning.

"},{"location":"troubleshooting/#error-when-scanning-qr-code","title":"Error when scanning QR code?","text":"

If Krux is recognizing that it sees a QR code but is displaying an error message after reading it, the likely reason is that the QR code is not in a format that Krux works with. We have listed the supported formats below:

For BIP-39 mnemonics:

  • BIP-39 Plaintext (Used by Krux and https://iancoleman.io/bip39/)
  • SeedSigner SeedQR and CompactSeedQR Formats
  • UR Type crypto-bip39
  • Encrypted QR Code (Format created by Krux, more information here)

For Wallet output descriptor:

  • JSON with at least a descriptor key containing an output descriptor string
  • Key-value INI files with at least Format, Policy, and Derivation keys
  • UR Type crypto-output

For PSBT (Partially Signed Bitcoin Transactions):

  • Base43, Base58, and Base64-encoded bytes
  • Raw Bytes
  • UR Type crypto-psbt

Additionally, Krux recognizes animated QR codes that use either the plaintext pMofN (the Specter QR format) or binary UR encodings.

"},{"location":"troubleshooting/#computer-not-reading-qr-code-that-krux-displays","title":"Computer not reading QR code that Krux displays?","text":"

You can toggle brightness of QR codes from public keys and PSBTs by pressing PAGE button. In the future, more work will be done to support displaying lower density QR codes. If you are using an M5StickV, the small screen makes it difficult for laptop webcams to capture enough detail to parse the QR codes it displays.

For now, a workaround you can do is to take a picture or video of the QR code with a better-quality camera (such as your phone), then enlarge and display the photo or video to your webcam. Alternatively, it may be simpler to use a mobile wallet such as BlueWallet with the M5StickV since phone cameras don't seem to have issues reading the small QR codes. You can also save the PSBT on a microSD card for Krux to sign and then save the signed transaction to the microSD card to transfer the file to the computer or phone.

"},{"location":"troubleshooting/#why-does-krux-say-the-entropy-of-my-fifty-dice-rolls-does-not-contain-128-bits-of-entropy","title":"Why Does Krux Say the Entropy of My Fifty Dice Rolls Does Not Contain 128 Bits of Entropy?","text":"

Please check how entropy measurement works.

"},{"location":"troubleshooting/#why-isnt-krux-detecting-my-microsd-card-or-presenting-an-error","title":"Why isn't Krux detecting my microSD card or presenting an error?","text":"

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. Make sure the SD card is using MBR/DOS partition table and FAT32 format.

"},{"location":"uncommon-questions/","title":"Uncommon Questions","text":""},{"location":"uncommon-questions/#what-are-all-the-features-available","title":"What are all the features available?","text":"

On the official releases page you will find all the features listed, with details on the Getting Started page with a brief summary on the Navigation Overview page.

"},{"location":"uncommon-questions/#what-is-the-purpose-of-using-an-sd-card-with-the-device","title":"What is the purpose of using an SD card with the device?","text":"

SD card use is optional, but can be used to upgrade the firmware, save settings, cnc/file, QR codes, XPUBs, encrypted mnemonics, and also to save and load PSBTs, messages and wallet output descriptors.

"},{"location":"getting-started/","title":"Getting Started","text":"

Krux is open-source Bitcoin signing firmware for devices with the K210 chipset; also known as a hardware signer.

Signing operations in Krux are done offline via QR code or via SD card using the PSBT functionality. 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 install 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.

Krux runs offline, and therefore never handles the broadcasting part of the PSBT transaction. Instead, you can use Krux with third-party wallet coordinators to broadcast 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:

  • Sparrow Wallet (desktop)
  • Specter Desktop (desktop)
  • Nunchuk (mobile)
  • BlueWallet (mobile)
"},{"location":"getting-started/navigation/","title":"Navigation Overview","text":"

Below is the mind map representation of the currently menus available. Click the circle with a number (Ex.: ) to the right of each node to expand and explore. Also, enable full screen in the top right menu for better viewing .

"},{"location":"getting-started/navigation/#login-menu","title":"Login Menu","text":""},{"location":"getting-started/navigation/#home-menu-loaded-a-mnemonic","title":"Home Menu (Loaded a mnemonic)","text":""},{"location":"getting-started/settings/","title":"Settings","text":"

In the Krux home menu, there is a Settings entry. Some submenu entries have too many options to fit on one screen, swipe up or down to navigate between the screens if your device has a touchscreen. Below is a breakdown of the options you can change:

"},{"location":"getting-started/settings/#default-wallet","title":"Default Wallet","text":"

Set the default attributes for wallet loading.

"},{"location":"getting-started/settings/#multisig","title":"Multisig","text":"

Set this to true if you are more likely to use Krux for multisig setups. This way, you won't need to \"Customize\" your wallet attributes every time you load a key.

"},{"location":"getting-started/settings/#network","title":"Network","text":"

This option allows you to switch between mainnet (the default) and testnet. Testnet can be used to try out different wallet coordinators or for development.

"},{"location":"getting-started/settings/#encryption","title":"Encryption","text":"

Modify the encryption method and parameters to fit your needs. This will be used when storing encrypted mnemonics or creating encrypted QR codes. For more info see Krux Encrypted Mnemonics.

"},{"location":"getting-started/settings/#pbkdf2-iter-iterations","title":"PBKDF2 Iter. (Iterations)","text":"

When you enter the encryption key, it is not directly used to encrypt your data. In order to protect against brute force attacks, the key is derived multiple times using hashing functions. PBKDF2 (Password-Based Key Derivation Function) iterations stands for the amount of derivations that will be performed over your key prior to encrypt/decrypt your mnemonic.

If you increase this value it will make the encryption harder, at the cost of taking longer to encrypt/decrypt your mnemonics.

Values must be multiple of 10,000. This was done to save data space on QR codes.

"},{"location":"getting-started/settings/#encryption-mode","title":"Encryption Mode","text":"

Choose between well known and widely used AES (Advanced Encryption Standard) modes:

"},{"location":"getting-started/settings/#aes-ecb","title":"AES-ECB","text":"

ECB (Electronic Codebook) is a simpler method where data blocks are encrypted individually. Compared to CBC, it will be faster and simpler to encrypt, QR codes will have a lower density and will be easier to transcribe.

"},{"location":"getting-started/settings/#aes-cbc","title":"AES-CBC","text":"

CBC (Cipher-block Chaining) is considered more secure than ECB. The first data block, an initialization vector (IV), is used to add random data to the encryption. The encryption of subsequent blocks depends on the data from previous blocks, ensuring chaining.

Encryption will take longer because a snapshot will be needed to generate the IV. This IV will be stored together with the encrypted data, making encrypted QR codes denser and harder to transcribe.

"},{"location":"getting-started/settings/#hardware","title":"Hardware","text":"

Customize the parameters available for your device and change printer settings.

"},{"location":"getting-started/settings/#encoder-maix-dock-only","title":"Encoder (Maix Dock only)","text":"

If your device has a rotary encoder, you can change the debounce threshold in milliseconds. With lower values, faster movements and navigation will be allowed.

The caveat is low values can cause issues, such as double step and unexpected movements, especially with lower quality encoders. If this is the case increase the value to make navigation more stable.

"},{"location":"getting-started/settings/#display-maix-amigo-only","title":"Display (Maix Amigo only)","text":"

Some Maix Amigo screens are different, here you can customize the BGR Colors, Flipped X Coordinates, Inverted Colors and LCD Type. For more info see Troubleshooting

"},{"location":"getting-started/settings/#printer","title":"Printer","text":"

You can set up a TTL serial thermal printer or tell Krux to store a GRBL CNC instructions file on a SD card to machine QR codes.

"},{"location":"getting-started/settings/#cnc","title":"CNC","text":"

Define several machining parameters according to the desired size, material you'll use, and your CNC characteristics and capabilities.

"},{"location":"getting-started/settings/#thermal","title":"Thermal","text":"

Printers can come with different baudrates from the manufacturer. By default, Krux assumes the connected printer will have a baudrate of 9600. If yours is different, you can change it here.

Also setup the TX Pin you'll use (e.g. 35 for M5StickV and 7 for Maix Amigo) and tweak other parameters according to your printer recommendations. For most printers you will only need to connect 2 cables, the device TX to the printer RX and ground. Current uses of printing are listed here. Consult the parts list for supported printers.

"},{"location":"getting-started/settings/#driver","title":"Driver","text":"

Here you choose between Thermal, CNC or none (default). Leave this setting to \"none\" if you won't use a printer and don't want to be bothered by print prompts.

"},{"location":"getting-started/settings/#touchscreen-maix-amigo-and-yahboom-only","title":"Touchscreen (Maix Amigo and Yahboom only)","text":"

If your device has touchscreen you can change the touch detection threshold. If it is being too sensitive or detecting false or ghost touches, you should increase the threshold value, making it less sensitive. The other way is also valid, reduce the threshold to make the screen more sensitive to touches.

"},{"location":"getting-started/settings/#language-locale","title":"Language - Locale","text":"

Here you can change Krux to your desired language.

"},{"location":"getting-started/settings/#persist","title":"Persist","text":"

Choose between flash (device's internal memory) or SD card for the place where your settings will be stored.

"},{"location":"getting-started/settings/#security","title":"Security","text":"

Adjust settings that may impact your security protocols.

"},{"location":"getting-started/settings/#shutdown-time","title":"Shutdown Time","text":"

Set the time it takes for Krux to automatically shut down. This feature not only conserves your device's battery, if it has one, but also serves as an important security measure. If you forget your device with private keys loaded, it will shut down automatically after the set time.

Please note that devices without batteries and power management will not shut down but will reboot instead, which is sufficient to unload private keys.

"},{"location":"getting-started/settings/#hide-mnemonics","title":"Hide Mnemonics","text":"

When \"Hide Mnemonics\" mode is set to \"True\", your device will not display private key data or backup tools when a key is loaded. It will only show public key information and allow signing operations.

"},{"location":"getting-started/settings/#appearance","title":"Appearance","text":"

Configure screensaver time and change Krux to your desired theme.

"},{"location":"getting-started/settings/#screensaver-time","title":"Screensaver time","text":"

Set how long to wait idle before the screensaver appears. Enter 0 to disable the screensaver.

"},{"location":"getting-started/settings/#theme","title":"Theme","text":"

Choose your color theme according to your preference. Some themes may be more suitable for some devices, coordinator cameras and environments. As an example, it may be easier to scan QR codes from Krux devices using light theme in brighter environments.

"},{"location":"getting-started/settings/#factory-settings","title":"Factory Settings","text":"

Restore device to factory settings and reboot.

"},{"location":"getting-started/features/QR-transcript-tools/","title":"Transcribing QR Codes","text":"

When you export a mnemonic, encrypted mnemonic or a generic text QR code, alternative visualization modes will be available. Swipe left or right to change modes, or if your device doesn't have a touchscreen, press the PAGE buttons. Find transcribe templates here.

"},{"location":"getting-started/features/QR-transcript-tools/#standard-mode","title":"Standard Mode","text":"

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

"},{"location":"getting-started/features/QR-transcript-tools/#lines-mode","title":"Lines Mode","text":"

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.

"},{"location":"getting-started/features/QR-transcript-tools/#zoomed-regions-mode","title":"Zoomed Regions Mode","text":"

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.

"},{"location":"getting-started/features/QR-transcript-tools/#highlighted-regions-mode","title":"Highlighted Regions Mode","text":"

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.

"},{"location":"getting-started/features/QR-transcript-tools/#grided-mode","title":"Grided Mode","text":"

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 (tracing). Be careful not to damage your screen with pen and markers, use an insulating plastic tape or film to protect the device when using this method.

"},{"location":"getting-started/features/encrypted-mnemonics/","title":"Encrypted Mnemonics","text":""},{"location":"getting-started/features/encrypted-mnemonics/#introduction","title":"Introduction","text":"

There are many possible security layers one could add to protect a wallet\u2019s private key. Adding a BIP-39 passphrase to the mnemonic is the most common method. Encrypting a BIP-39 mnemonic has a similar use case as the BIP-39 passphrase, but the user experience may differ depending on the implementation. The main difference between BIP-39 passphrases and Krux\u2019s encrypted mnemonic implementation is that when users type the wrong key, encrypted mnemonics will return an error instead of loading a different wallet, as BIP-39 passphrases do. This difference may be desired or not. The implementation also has the convenience of storing a mnemonic ID together with the stored or QR code encrypted mnemonics. Mnemonic encryption, with its own key, can be used together with BIP-39 passphrase as an extra security layer.

We use standard AES encryption modes ECB and CBC:

"},{"location":"getting-started/features/encrypted-mnemonics/#aes-ecb","title":"AES-ECB","text":"

ECB (Electronic Codebook) is a simpler method where encryption data blocks are encrypted individually. This mode is faster and simpler to encrypt, resulting in QR codes with lower density and easier to transcribe. It is generally considered less secure than CBC because it does not provide data chaining, meaning identical plaintext blocks will produce identical ciphertext blocks, making it vulnerable to pattern analysis. However, in Krux's implementation, only one or two binary data blocks are encrypted, so there will be no patterns, and the lack of chaining is not as relevant as it would be for larger files, plain text, or media.

"},{"location":"getting-started/features/encrypted-mnemonics/#aes-cbc","title":"AES-CBC","text":"

CBC (Cipher-block Chaining) is considered more secure. In the first data block, an initialization vector (IV) is used to add random data to the encryption. The encryption of subsequent blocks depends on the data from previous blocks, characterizing chaining. The tradeoff is that the encryption process will take longer because a snapshot will be needed to generate the IV. This IV will be stored together with encrypted data, making encrypted QR codes denser and harder to transcribe.

"},{"location":"getting-started/features/encrypted-mnemonics/#cbc-encryption-iv","title":"CBC Encryption IV","text":"

The Initial Vector (IV) will be generated from a snapshot taken with the camera. The IV is a fixed-size input value used in the first block of the encryption process. It adds randomness to the encryption, ensuring that data encrypted with the same key will produce different ciphertexts each time. The IV is not secret and will be transmitted along with the ciphertext. However, like any nonce, it should not be reused to maintain security.

"},{"location":"getting-started/features/encrypted-mnemonics/#pbkdf2-iterations","title":"PBKDF2 Iterations","text":"

When you enter the encryption key, it is not directly used to encrypt your data. In order to protect against brute force attacks, the key is derived multiple times using hashing functions. PBKDF2 (Password-Based Key Derivation Function) iterations refer to the number of derivations that will be performed over your key prior to encrypting/decrypting your mnemonic.

"},{"location":"getting-started/features/encrypted-mnemonics/#encrypted-qr-codes-data-and-parsing","title":"Encrypted QR Codes Data and Parsing","text":"

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) 1 Byte Variable 1 Byte 3 Bytes 16 Bytes (optional) 16 Bytes (12 words) 32 Bytes (24 words) 16 Bytes
  • Visible data (1 to 4):
    • (1) Mnemonic ID length (1 Byte).
    • (2) Mnemonic ID (variable lenght): Custom ID or wallet fingerprint.
    • (3) Version (1 Byte): Version of encryption method, currently two are available:
      • 0: AES-ECB-PBKDF2: Electronic Codebook with PBKDF2 key derivation.
      • 1: AES-CBC-PBKDF2: Cypher Block Chaining with PBKDF2 key derivation.
    • (4) Key derivation iterations (3 Bytes): Number of PBKDF2 key derivations times 10,000.
  • Cipher data (5 to 7):
    • (5) IV (16 Bytes-optional): Initial vector for AES-CBC encryption, possibility to be nonce for future AES-CTR or other encryption methods.
    • (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.
"},{"location":"getting-started/features/encrypted-mnemonics/#considerations","title":"Considerations","text":"

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.

Remember that the stored encrypted mnemonic is protected by the key you defined to encrypt it. If the defined key is weak, your encrypted mnemonic will not be protected. If you have stored a mnemonic with funds in the device's internal flash memory using a weak key, the best way to undo this is to wipe the device.

"},{"location":"getting-started/features/entropy/","title":"Empirical Entropy Measurement","text":""},{"location":"getting-started/features/entropy/#why-does-krux-say-the-entropy-of-my-fifty-dice-rolls-does-not-contain-128-bits-of-entropy","title":"Why Does Krux Say the Entropy of My Fifty Dice Rolls Does Not Contain 128 Bits of Entropy?","text":"

This question, frequently raised in Krux chat groups, highlights the need to clarify the concepts and tools used by Krux to help users detect possible issues in the mnemonic creation procedure. Tools in Krux were designed to help users understand the concepts involved in the process, present statistics and indicators, and encourage users to experiment and evaluate results. This way, users learn about best practices in key generation. Below, we will dive deeper into entropy concepts to better support users in the fundamental requirement for sovereign self-custody, which is to build up knowledge.

"},{"location":"getting-started/features/entropy/#entropy-in-dice-rolls","title":"Entropy in Dice Rolls","text":"

Rolling dice and collecting the resulting values can be an effective method for generating cryptographic keys due to the inherent randomness and unpredictability of each roll. Each roll of a die produces a random number within a specific range, and when multiple rolls are combined, they create a sequence that is difficult to predict or reproduce. This sequence can be used to generate cryptographic keys that are robust against attacks. By ensuring that the dice rolls are conducted in a controlled and secure environment, and by using a sufficient number of rolls to achieve the desired level of randomness, one can create cryptographic keys that are highly secure and resistant to brute-force attacks or other forms of cryptanalysis.

"},{"location":"getting-started/features/entropy/#entropy-definitions","title":"Entropy Definitions","text":"

Entropy, a fundamental concept in various scientific disciplines, measures the degree of disorder or uncertainty within a system. This notion is interpreted differently across fields, leading to distinct types of entropy: mechanical entropy, Shannon's entropy, and cryptographic entropy.

Mechanical entropy, rooted in thermodynamics and statistical mechanics, quantifies the disorder in a physical system. It describes how energy is distributed among the particles in a system, reflecting the system's tendency towards equilibrium and maximum disorder.

Shannon's entropy, from information theory, measures the uncertainty or information content in a message or data source. Introduced by Claude Shannon, it quantifies the average amount of information produced by a stochastic source of data, indicating how unpredictable the data is.

Cryptographic entropy, crucial in security, refers to the unpredictability and randomness required for secure cryptographic keys and processes. High cryptographic entropy ensures that keys are difficult to predict or reproduce, providing robustness against attacks.

While mechanical entropy deals with physical systems, Shannon's entropy focuses on information content, and cryptographic entropy emphasizes security through randomness.

"},{"location":"getting-started/features/entropy/#measuring-dice-rolls-entropy","title":"Measuring Dice Rolls Entropy","text":"

Entropy is a theoretical measure and is not directly measurable from a single roll but rather from the probability distribution of outcomes over many rolls. We can use Shannon's formula for theoretical and empirical calculations. Entropy S can be quantified with:

S = -\\sum_{i=1}^{n} p_i \\log(p_i)
  1. Empirical Measurement:
  2. Roll the dice a large number of times to observe the frequency of each outcome.
  3. Estimate the probabilities p_i based on observed frequencies.

  4. Theoretical Calculation:

  5. Use the uniform distribution assumption (equal probability for all outcomes).

where: - p_i is the probability of each possible outcome (or state) of the system. - n is the number of possible outcomes.

"},{"location":"getting-started/features/entropy/#empirical-real-vs-theoretical-entropy-in-dice-rolls","title":"Empirical (Real) vs. Theoretical Entropy in Dice Rolls","text":"

When calculating the entropy of dice rolls, the difference between real and theoretical results arises from the assumption of perfect fairness and uniformity versus the inherent imperfections in real-world experiments.

"},{"location":"getting-started/features/entropy/#theoretical-entropy","title":"Theoretical Entropy","text":"

The theoretical entropy calculation assumes that the dice are perfectly fair, meaning each face has an equal probability of landing face up.

Consider a fair six-sided die. The possible outcomes when rolling one die are {1, 2, 3, 4, 5, 6}, each with an equal probability of \\frac{1}{6}.

  1. Single Die Roll:
  2. Each outcome has a probability p_i = \\frac{1}{6}.
  3. The entropy S for one die roll is calculated as:
S = - \\sum_{i=1}^{6} \\left( \\frac{1}{6} \\log_2 \\left( \\frac{1}{6} \\right) \\right)

Since \\log_2(1/6) = -\\log_2(6) :

S = -6 \\left( \\frac{1}{6} \\times -\\log_2(6) \\right) = \\log_2(6) \\approx 2.585 \\text{ bits}
  1. Multiple Dice Rolls:
  2. For multiple dice, the entropy increases as the number of possible outcomes increases. For k fair dice, the number of possible outcomes is 6^k.
  3. The entropy S for k dice is:

    S = \\log_2(6^k) = k \\log_2(6) \\approx 2.585k \\text{ bits}

  4. For example, entropy for the roll of 50 fair dice is calculated as:

    S = \\log_2(6^{50}) = 50 \\log_2(6) \\approx 2.585 \\times 50 \\approx 129.25 \\text{ bits}

This calculation assumes that every outcome (each face of the die) has an equal likelihood, leading to a uniform distribution.

"},{"location":"getting-started/features/entropy/#empirical-entropy","title":"Empirical Entropy","text":"

In a real sample of dice rolls, several factors can cause deviations from the perfect uniform distribution:

  1. Imperfect Dice: Real dice may not be perfectly balanced. Small manufacturing defects can make certain faces slightly heavier or lighter, causing biases.
  2. Rolling Conditions: The way the dice are rolled, the surface they land on, and even air currents can introduce slight biases.
  3. Finite Sample Size: When rolling dice a finite number of times, the observed frequencies of each face will naturally deviate from the expected uniform distribution due to random variations. This phenomenon is more pronounced with smaller sample sizes.

When you roll a die multiple times and observe the outcomes, you can calculate the empirical probabilities p_i of each face. Using these probabilities, the entropy is calculated as:

S = - \\sum_{i=1}^{6} p_i \\log_2(p_i)"},{"location":"getting-started/features/entropy/#example","title":"Example","text":"

Suppose you roll a six-sided die 50 times and get the following results:

  • 1: 4 times
  • 2: 9 times
  • 3: 7 times
  • 4: 10 times
  • 5: 12 times
  • 6: 8 times

We can calculate Shannon's entropy as follows:

"},{"location":"getting-started/features/entropy/#step-1-calculate-probabilities","title":"Step 1: Calculate Probabilities","text":"

Total number of rolls:

N = 4 + 9 + 7 + 10 + 12 + 8 = 50

Probabilities for each outcome:

p_1 = \\frac{4}{50} = 0.08 p_2 = \\frac{9}{50} = 0.18 p_3 = \\frac{7}{50} = 0.14 p_4 = \\frac{10}{50} = 0.2 p_5 = \\frac{12}{50} = 0.24 p_6 = \\frac{8}{50} = 0.16"},{"location":"getting-started/features/entropy/#step-2-compute-entropy","title":"Step 2: Compute Entropy","text":"

Using Shannon's entropy formula:

S = -\\sum_{i=1}^{n} p_i \\log_2(p_i)

Calculate each term:

S_1 = -p_1 \\log_2(p_1) = -0.08 \\log_2(0.08) = -0.08 \\times (-3.64386) = 0.291509 S_2 = -p_2 \\log_2(p_2) = -0.18 \\log_2(0.18) = -0.18 \\times (-2.47393) = 0.445307 S_3 = -p_3 \\log_2(p_3) = -0.14 \\log_2(0.14) = -0.14 \\times (-2.8365) = 0.39711 S_4 = -p_4 \\log_2(p_4) = -0.2 \\log_2(0.2) = -0.2 \\times (-2.32193) = 0.464386 S_5 = -p_5 \\log_2(p_5) = -0.24 \\log_2(0.24) = -0.24 \\times (-2.05889) = 0.494132 S_6 = -p_6 \\log_2(p_6) = -0.16 \\log_2(0.16) = -0.16 \\times (-2.64386) = 0.423018

Sum the contributions:

S = S_1 + S_2 + S_3 + S_4 + S_5 + S_6 S = 0.291509 + 0.445307 + 0.39711 + 0.464386 + 0.494132 + 0.423018 = 2.515462

Thus, the Shannon's entropy for the given distribution of dice rolls is approximately 2.52 bits per roll.

This will give you a different value than \\log_2(6) due to the deviations in the empirical probabilities.

The total entropy for the N = 50 rolls is:

S_{total} = S \\times N = 2.515 + 50 \\approx 125.8 \\text{ bits}"},{"location":"getting-started/features/entropy/#shannons-entropy-in-practice","title":"Shannon's Entropy in Practice","text":"

Calculating Shannon's entropy on a real sample of dice rolls provides insights into the actual randomness and fairness of the dice and rolling conditions. Deviations from the theoretical entropy reflect the natural imperfections and variances inherent in real-world scenarios. This understanding helps in evaluating and improving the fairness and randomness of dice or similar systems.

Shannon's entropy evaluates the statistical probability distribution of samples of a dice roll. An even distribution results in higher entropy, closer to the theoretical maximum entropy, which assumes perfectly distributed rolls. An uneven distribution, created, for example, by a biased die, will result in lower Shannon's entropy. In an extreme case, with a terribly biased die that always lands on the same side, Shannon's entropy will be zero.

"},{"location":"getting-started/features/entropy/#cryptographic-entropy","title":"Cryptographic Entropy","text":"

Shannon's entropy, while a powerful measure of information content and uncertainty in a statistical distribution for natural samples, is not considered cryptographic entropy due to its inability to detect patterns or other sources of predictability within data. Shannon's formula quantifies the average information produced by a stochastic process, essentially measuring the expected surprise in a sequence of symbols based on their probabilities. However, it does not account for potential structure, correlations, or regularities within the data that could be inserted by a user and exploited by an attacker.

Cryptographic entropy, on the other hand, requires a higher standard of unpredictability. It must ensure that every bit of the cryptographic key is as random and independent as possible, making it resilient against any form of analysis that could reveal patterns or reduce the effective randomness. While Shannon's entropy can evaluate the statistical distribution of symbols, it falls short in guaranteeing the absence of patterns or dependencies, which are crucial for maintaining the security of cryptographic systems. Thus, cryptographic entropy encompasses a broader concept of randomness, ensuring that the generated keys are not only statistically random but also free from any detectable structure or predictability.

"},{"location":"getting-started/features/entropy/#pattern-detection","title":"Pattern Detection","text":"

It is possible to have dice rolls with an even distribution but poor cryptographic entropy. This issue arises when patterns are present in the sequences. Examples include sequences like 123456123456123..., 111122223333..., and 654321654321..., which exhibit poor cryptographic entropy despite having even distribution and high Shannon's entropy.

To mitigate this issue, Krux has implemented a pattern detection algorithm that evaluates the Shannon's entropy of the rolls' derivatives. In practice, this algorithm detects arithmetic progression components in the dice rolls and raises a warning if a certain threshold is crossed.

"},{"location":"getting-started/features/entropy/#what-krux-does","title":"What Krux Does?","text":"
  • Krux requires a minimum number of rolls based on theoretical entropy.
  • Krux warns the user if low Shannon's entropy, calculated with the actual rolls, is detected.
  • Krux warns the user if it suspects there are patterns within the actual rolls.
"},{"location":"getting-started/features/entropy/#conclusion","title":"Conclusion","text":"

While Krux cannot ensure rolls have good or bad cryptographic entropy, it does provide indicators to help users detect issues and learn about the concepts involved in mnemonic generation.

"},{"location":"getting-started/features/printing/","title":"Printing","text":"

Warning/Disclaimer: This feature is intended for individuals with experience in electronics tinkering and soldering.

Krux has the ability to print mnemonic backup (Words, Numbers, Tiny Seed template; but not Stackbit 1248) and any QR code (SeedQR, signed PSBT, Address, XPUB, Wallet output descriptor, ...) via a locally-connected TTL serial thermal printer. Consult the parts list page for supported printers.

Once a thermal printer and driver have been enabled in Krux settings, all screens that display a QR code will offer the option to Print to QR. Other formats of mnemonic backup will also ask if you want to Print to QR?.

There are many ways you can use this functionality, including:

  • Printing backups of your mnemonics and multisig wallet output descriptor
  • Printing your xpubs and receive addresses to share
  • Printing signed messages and PSBTs

Since printed thermal paper fades quickly, you can also print your backups on sticker thermal paper to use as templates for punching into more resilient materials like steel.

We also have plans to add support for other kinds of QR \"printers\" in the future, including CNC machines. In this case, gcode will be generated that can be sent directly to a GRBL controller to cut your QRs out of wood or metal!

Just be careful what you do with the printed codes, since most smartphones can now quickly and easily read QR codes. Treat your QR mnemonic the same way you would treat a plaintext copy of it.

"},{"location":"getting-started/features/sd-card-update/","title":"SD Card Updates","text":""},{"location":"getting-started/features/sd-card-update/#upgrade-via-microsd-card","title":"Upgrade via microSD card","text":"

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

To perform an upgrade, simply copy the official release 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. Otherwise you will be prompted to install it again.

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, read the Troubleshooting for more info. Only official releases are signed and can be installed via microSD card.

"},{"location":"getting-started/features/tinyseed/","title":"Tiny Seed and other metal plates","text":""},{"location":"getting-started/features/tinyseed/#background","title":"Background","text":"

The examples below have been created so that you can test the workflow for scanning both 12 and 24 word mnemonics. (Scanning the left plate for a 12 word mnemonic and both plates for 24) The resulting fingerprint from an successful scan is also incldued in the image.

"},{"location":"getting-started/features/tinyseed/#tinyseed","title":"TinySeed","text":""},{"location":"getting-started/features/tinyseed/#onekey-keytag","title":"OneKey KeyTag","text":""},{"location":"getting-started/features/tinyseed/#binary-grid","title":"Binary Grid","text":""},{"location":"getting-started/features/tinyseed/#size-offset-and-padding-reference","title":"Size, Offset and Padding Reference","text":"

The general logic for how these are processed is:

  1. Krux first looks for a square (Which works best if with a well lit square, with clean edges, on a dark background)
  2. This square is checked and if the ratio of length to height is within a defined range for the given seed type, the square is further processed. (Uses the aspect_high and aspect_low variables)
  3. An X and Y offset are applied to work out the corner of the seed grid within the seed plate. Some devices like the Maix Amigo use a mirrored coordinate system and some seed types will have a slightly different layout on the front and back of the plate. (Uses the x_offset and y_offset variables, p0 for the front face and p1 for the reverse face)
  4. The location of each cell within the 12x12 grid is calculated. (This uses the xpad and ypad variables)
  5. Krux uses the grid created in 4 to evaluate which cells are marked and which are blank, once a seed with a valid checksum is detected, the user can then confirm the dots.

If you have a different type of grid that you want to use, you will need to edit the offsets and padding numbers in tiny_seed.py. (All of the sizes are scaled based on the size of the square detected in step 1...)

You can match the pre-sets for supported key-types to the physical dimensions of the tag as shown below. (The numbers for these offsets are in 1/10th of a millimeter)

"},{"location":"getting-started/features/tools/","title":"Tools","text":"

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.

"},{"location":"getting-started/features/tools/#check-sd-card","title":"Check SD Card","text":"

You can check if a SD card can be detected and read by your device and explore its content. If there are too many files to fit on one screen, swipe up or down to navigate between the screens if your device has a touchscreen.

"},{"location":"getting-started/features/tools/#print-test-qr","title":"Print Test QR","text":"

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

"},{"location":"getting-started/features/tools/#create-qr-code","title":"Create QR Code","text":"

Enter text to create, print or transcribe a QR code that can later be used as an encryption key or passphrase. Swipe left or right to change modes if your device has a touchscreen.

"},{"location":"getting-started/features/tools/#descriptor-addresses","title":"Descriptor Addresses","text":"

Verify if an address or list of addresses belong to a wallet without needing to load private keys. Simply load a trusted wallet descriptor from a QR code or SD card.

"},{"location":"getting-started/features/tools/#remove-mnemonic","title":"Remove Mnemonic","text":"

This option allows you to remove any stored encrypted mnemonic from the device's internal memory or an SD card. For more information, see Krux Encrypted Mnemonics.

When mnemonics are removed from the device's flash memory, Krux will no longer be able to access them. However, as with most operating systems, the data may still be recoverable using specialized tools. If you stored any important keys with a weak encryption key, it is recommended to use the \"Wipe Device\" feature below to ensure that the data is irrecoverable.

When mnemonics are removed from an SD card, Krux will overwrite the region where the encrypted mnemonic was stored with empty data. This makes it more secure to delete mnemonics from SD cards using Krux rather than a PC or another device. However, Krux does not have a \"Wipe\" feature for SD cards; you can find this feature in third-party applications.

"},{"location":"getting-started/features/tools/#wipe-device","title":"Wipe Device","text":"

This option permanently removes all stored encrypted mnemonics and settings from the device's internal flash memory. It ensures that the data is irrecoverable, making it an adequate measure to take if any important mnemonics were stored with a weak encryption key.

"},{"location":"getting-started/installing/from-pre-built-release/","title":"From pre-built official release","text":"

This page explains how to install Krux from an official, pre-built release.

"},{"location":"getting-started/installing/from-pre-built-release/#download-the-latest-release","title":"Download the latest release","text":"

Head over to the releases page and download the latest signed release.

"},{"location":"getting-started/installing/from-pre-built-release/#verify-the-files","title":"Verify the files","text":"

Before installing the release, it's a good idea to check that:

  1. The SHA256 hash of krux-v24.09.1.zip matches the hash in krux-v24.09.1.zip.sha256.txt
  2. The signature file krux-v24.09.1.zip.sig can be verified with the selfcustody.pem public key found in the root of the krux repository.

You can either do this manually or with the krux shell script, which contains helper commands for this:

./krux sha256 krux-v24.09.1.zip\n./krux verify krux-v24.09.1.zip selfcustody.pem\n

On Mac you may need to install coreutils to be able to use sha256sum

brew install coreutils\n

Fun fact: Each Krux release is signed with Krux!

"},{"location":"getting-started/installing/from-pre-built-release/#flash-the-firmware-onto-the-device","title":"Flash the firmware onto the device","text":"

Extract the latest version of Krux you downloaded and enter the folder:

unzip krux-v24.09.1.zip && cd krux-v24.09.1\n

Connect the device to your computer via USB (for Maix Amigo, make sure you\u2019re using bottom port), power it on, and run the following, replacing DEVICE with either m5stickv, amigo, bit, cube, dock or yahboom (to yahboom you may need to manually specify the port, for example /dev/ttyUSB0 on Linux or COM6 on Windows):

./ktool -B goE -b 1500000 maixpy_DEVICE/kboot.kfpkg\n

For dock use the -B dan parameter:

./ktool -B dan -b 1500000 maixpy_dock/kboot.kfpkg\n

When the flashing process completes, you should see the Krux logo:

If it doesn't, try turning your device off and on by holding down the power button for six seconds.

Congrats, you're now running Krux!

"},{"location":"getting-started/installing/from-pre-built-release/#a-note-about-the-maix-amigo","title":"A note about the Maix Amigo","text":"

Some Amigo screens have inverted X coordinates, others display colors differently. For more info see Troubleshooting.

"},{"location":"getting-started/installing/from-pre-built-release/#troubleshooting","title":"Troubleshooting","text":"

If ktool fails to run, you may need to give it executable permissions with chmod +x ./ktool, or you might need to use \"sudo\" if your user don't have access to serial port. In Windows or Mac you may need to explicitly allow the tool to run by adding an exception for it.

If the flashing process fails midway through, check the connection, restart the device, and try the command again.

Two serial ports are created when Amigo and Bit are connected to a PC. Sometimes Ktool will pick the wrong port and flashing will fail. Manually specify the serial port to overcome this issue using -p argument:

"},{"location":"getting-started/installing/from-pre-built-release/#linux","title":"Linux","text":"

See the correct port using ls /dev/ttyUSB*, in the example below we use /dev/ttyUSB0:

./ktool-linux -B goE -b 1500000 maixpy_amigo/kboot.kfpkg -p /dev/ttyUSB1\n

"},{"location":"getting-started/installing/from-pre-built-release/#windows","title":"Windows","text":"

See the correct port at Device Manager > Ports (COM & LPT), in the example below we use COM6:

.\\ktool-win.exe -B goE -b 1500000 maixpy_amigo\\kboot.kfpkg -p COM6\n

"},{"location":"getting-started/installing/from-pre-built-release/#mac","title":"Mac","text":"

Remove the Gatekeeper quarantine extended attribute from ktool-mac:

xattr -d com.apple.quarantine ktool-mac\n

See the correct port using the command line: ls /dev/cu.usbserial*, in the example below we use /dev/cu.usbserial-10 (If the output isn't what you expect try a different cable, preferably a smartphone usb-c charger cable):

./ktool-mac -B goE -b 1500000 maixpy_amigo/kboot.kfpkg -p /dev/cu.usbserial-10\n

Different OS versions may have different port names, and the absence of ports may indicate a connection, driver or hardware related issue. See Troubleshooting for more info.

"},{"location":"getting-started/installing/from-pre-built-release/#multilingual-support","title":"Multilingual support","text":"

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.

"},{"location":"getting-started/installing/from-pre-built-release/#upgrade-via-microsd-card","title":"Upgrade via microSD card","text":"

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.

"},{"location":"getting-started/installing/from-source/","title":"From source","text":"

This page explains how to install Krux from source. You can check a simplified version of these instructions in our README too.

"},{"location":"getting-started/installing/from-source/#fetch-the-code","title":"Fetch the code","text":"

This will download the source code of Krux as well as the code of all its dependencies inside a new folder called krux (needs git):

git clone --recurse-submodules https://github.com/selfcustody/krux\n

Note: When you wish to pull updates (to all submodules, their submodules, ...) to this repo, use:

git pull origin main && git submodule update --init --recursive\n

"},{"location":"getting-started/installing/from-source/#prerequisite-for-upgrading-via-microsd","title":"Prerequisite for upgrading via microSD","text":"

If you wish to perform airgapped upgrades via microSD card later, you will need to have a private and public key pair to sign your builds and verify the signatures. If you do not want to perform further airgapped upgrades, jump to build section.

You can use an existing Krux installation and mnemonic to sign your builds with, or you can generate a keypair and sign from the openssl CLI. Commands have been added to the krux shell script to make this easier.

In either case, you will need to update the SIGNER_PUBKEY field in src/krux/metadata.py to store your public key so that Krux can verify future builds before installing.

To generate a keypair:

./krux generate-keypair\n./krux pem-to-pubkey pubkey.pem\n

The first command will create privkey.pem and pubkey.pem files you can use with openssl, and the second command will output your public key in the form expected by Krux.

Once you've updated the SIGNER_PUBKEY with this value, you can proceed with the regular build process.

"},{"location":"getting-started/installing/from-source/#build-the-firmware-linux-or-wsl","title":"Build the firmware (Linux or WSL)","text":"

The krux bash script contains commands for common development tasks. It assumes a Linux host, you will need to have Docker Desktop or Docker Engine, openssl, and wget installed at a minimum for the commands to work as expected. It works on Windows using WSL. The channel Crypto Guide from Youtube made a step-by-step video - Krux DIY Bitcoin Signer: Build From Source & Verify (With Windows + WSL2 + Docker)

To build and flash the firmware:

# build firmware for Maix Amigo\n./krux build maixpy_amigo\n

The first time, the build can take around an hour or so to complete. Subsequent builds should take only a few minutes. If all goes well, you should see a new build folder containing firmware.bin and kboot.kfpkg files when the build completes.

Note: if you encounter any of these errors while building, it is a problem connecting to github, try again (if the error persists, try changing the DNS/VPN or correcting the hostname resolution of github.com to an IP that is working for you):

error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err8)\nfatal: the remote end hung up unexpectedly\nfatal: early EOF\nfatal: index-pack failed\nfatal: clone of ... failed\nFailed to clone ...\n

"},{"location":"getting-started/installing/from-source/#reproducibility","title":"Reproducibility","text":"

If you build from the main branch of the source code, you should be able to reproduce the build process used to generate the last release binaries and obtain exact copies of the firmware.bin and kboot.kfpkg files, with matching hash checksums.

To extract and verify the firmware.bin contained in kboot.kfpkg, you can use the following command:

unzip kboot.kfpkg -d ./kboot/\n
"},{"location":"getting-started/installing/from-source/#flash-the-firmware-onto-the-device","title":"Flash the firmware onto the device","text":"

Connect the device to your computer via USB (for Maix Amigo, make sure you\u2019re using bottom port), power it on, and run the following, replacing DEVICE with either m5stickv, amigo, bit, cube, dock or yahboom:

# build firmware for DEVICE\n./krux flash maixpy_DEVICE\n
If the flashing fails try one of the following common solutions listed on FAQ

When the flashing process completes, you should see the Krux logo:

If it doesn't, try turning your device off and on by holding down the power button for six seconds.

Congrats, you're now running Krux!

"},{"location":"getting-started/installing/from-source/#a-note-about-the-maix-amigo","title":"A note about the Maix Amigo","text":"

Some Amigo screens have inverted X coordinates, others display colors differently. For more info see Troubleshooting.

"},{"location":"getting-started/installing/from-source/#signing-the-firmware","title":"Signing the firmware","text":"

You can sign the firmware to perform airgapped upgrades using one of the two methods listed below:

"},{"location":"getting-started/installing/from-source/#method-1-signing-from-krux","title":"Method 1: Signing from Krux","text":"

First, calculate the SHA256 hash of the new firmware by running:

./krux sha256 build/firmware.bin\n

Copy this hex string and turn it into a QR code using whichever QR code generator you'd like.

In Krux, enter the mnemonic of your private key that will be used for signing, and go to Sign > Message. Scan the QR code you generated, and you will be asked if you wish to sign the hash. Proceed, and you will be presented with a base64-encoded string containing the signature, as text and as a QR code.

Take this string and create a signature file by running:

./krux b64decode \"signature-in-base64\" > build/firmware.bin.sig\n

This will generate a firmware.bin.sig file containing a signature of the firmware's SHA256 hash.

"},{"location":"getting-started/installing/from-source/#method-2-signing-from-your-computer-with-openssl","title":"Method 2: Signing from your computer with OpenSSL","text":"

With the keypair you generated before, you can now run:

./krux sign build/firmware.bin privkey.pem\n

This will generate a firmware.bin.sig file containing a signature of the firmware's SHA256 hash.

"},{"location":"getting-started/installing/from-test-release/","title":"From pre-built test release","text":"

This page explains how to install Krux from a test (beta), pre-built release.

"},{"location":"getting-started/installing/from-test-release/#warning","title":"Warning","text":"

Keep in mind that these are unsigned binaries.

"},{"location":"getting-started/installing/from-test-release/#download","title":"Download","text":"

Download experimental compiled firmware or the Android app apk from our test (beta) repository.

"},{"location":"getting-started/installing/from-test-release/#android","title":"Android","text":"

The Krux Android app is designed for learning about Krux and Bitcoin air-gapped transactions. Due to the numerous potential vulnerabilities inherent in smartphones, such as the lack of control over the operating system, libraries, and hardware peripherals, the Krux app should NOT be used to manage wallets containing savings or important keys and mnemonics. For secure management of your keys, a dedicated device is recommended.

"},{"location":"getting-started/installing/from-test-release/#compiled-firmware-for-kendryte-k210-devices","title":"Compiled firmware for Kendryte K210 devices","text":""},{"location":"getting-started/installing/from-test-release/#m5stickv","title":"M5StickV","text":"

To Flash M5StickV run the following.

"},{"location":"getting-started/installing/from-test-release/#linux","title":"Linux","text":"
./ktool-linux -B goE -b 1500000 maixpy_m5stickv/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#mac","title":"Mac","text":"
./ktool-mac -B goE -b 1500000 maixpy_m5stickv/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#windows","title":"Windows","text":"
.\\ktool-win.exe -B goE -b 1500000 maixpy_m5stickv\\kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#sipeed-maix-amigo","title":"Sipeed Maix Amigo","text":"

To Flash Maix Amigo run the following.

"},{"location":"getting-started/installing/from-test-release/#linux_1","title":"Linux","text":"
./ktool-linux -B goE -b 1500000 maixpy_amigo/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#mac_1","title":"Mac","text":"
./ktool-mac -B goE -b 1500000 maixpy_amigo/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#windows_1","title":"Windows","text":"
.\\ktool-win.exe -B goE -b 1500000 maixpy_amigo\\kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#a-note-about-the-maix-amigo","title":"A note about the Maix Amigo","text":"

Some Amigo screens have inverted X coordinates, others display colors differently. For more info see Troubleshooting.

"},{"location":"getting-started/installing/from-test-release/#sipeed-maix-bit","title":"Sipeed Maix Bit","text":"

To Flash Maix Bit run the following.

"},{"location":"getting-started/installing/from-test-release/#linux_2","title":"Linux","text":"
./ktool-linux -B goE -b 1500000 maixpy_bit/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#mac_2","title":"Mac","text":"
./ktool-mac -B goE -b 1500000 maixpy_bit/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#windows_2","title":"Windows","text":"
.\\ktool-win.exe -B goE -b 1500000 maixpy_bit\\kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#sipeed-maix-cube","title":"Sipeed Maix Cube","text":"

To Flash Maix Cube run the following.

"},{"location":"getting-started/installing/from-test-release/#linux_3","title":"Linux","text":"
./ktool-linux -B goE -b 1500000 maixpy_cube/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#mac_3","title":"Mac","text":"
./ktool-mac -B goE -b 1500000 maixpy_cube/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#windows_3","title":"Windows","text":"
.\\ktool-win.exe -B goE -b 1500000 maixpy_cube\\kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#sipeed-maix-dock","title":"Sipeed Maix Dock","text":"

To Flash Maix Dock you need to pass the -B dan parameter.

"},{"location":"getting-started/installing/from-test-release/#linux_4","title":"Linux","text":"
./ktool-linux -B dan -b 1500000 maixpy_dock/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#mac_4","title":"Mac","text":"
./ktool-mac -B dan -b 1500000 maixpy_dock/kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#windows_4","title":"Windows","text":"
.\\ktool-win.exe -B dan -b 1500000 maixpy_dock\\kboot.kfpkg\n
"},{"location":"getting-started/installing/from-test-release/#aimotion-yahboom-k210-module","title":"Aimotion Yahboom k210 module","text":"

To Flash Yahboom k210 module you'll have to manually specify the port.

"},{"location":"getting-started/installing/from-test-release/#linux_5","title":"Linux","text":"

See the correct port using ls /dev/ttyUSB*, in the example below we use /dev/ttyUSB0:

./ktool-linux -B goE -b 1500000 -p /dev/ttyUSB0 maixpy_yahboom/kboot.kfpkg\n

"},{"location":"getting-started/installing/from-test-release/#mac_5","title":"Mac","text":"

See the correct port using the command line: ls /dev/cu.usbserial*, in the example below we use /dev/cu.usbserial-10:

./ktool-mac -B goE -b 1500000 -p /dev/cu.usbserial-10 maixpy_yahboom/kboot.kfpkg\n

"},{"location":"getting-started/installing/from-test-release/#windows_5","title":"Windows","text":"

See the correct port at Device Manager > Ports (COM & LPT), in the example below we use COM6:

.\\ktool-win.exe -B goE -b 1500000 -p COM6 maixpy_yahboom\\kboot.kfpkg\n

"},{"location":"getting-started/installing/","title":"Installing","text":"

You can install Krux in four different ways:

  • From GUI application
  • From pre-built official release
  • From pre-built test (beta) release
  • From source
"},{"location":"getting-started/installing/#requirements","title":"Requirements","text":"

Please, check the parts list for the compatible devices and requirements.

After the first firmware install, you can use a microSD card if you wish to perform further airgapped updates.

"},{"location":"getting-started/installing/from-gui/debian-like/","title":"Download assets","text":"
  • krux-installer_0.0.20-beta_amd64.deb
  • krux-installer_0.0.20-beta_amd64.deb.sha256.txt
  • krux-installer_0.0.20-beta_amd64.deb.sig
"},{"location":"getting-started/installing/from-gui/debian-like/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

sha256sum --check ./krux-installer_0.0.20-beta_amd64.deb.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/debian-like/#verify-the-authenticity","title":"Verify the authenticity","text":"

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer_0.0.20-beta_amd64.deb.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/debian-like/#install","title":"Install","text":"

krux-installer isn't available on Debian or Ubuntu repositories. Therefore, only the apt-get install command will not work. To install, it'll be necessary two steps:

  • Install the .deb package itself:
sudo dpkg -i krux-installer_0.0.20-beta_amd64.deb\n
  • Update the installed package:
sudo apt-get install -f\n

It will warn you that your system user was added to dialout group and maybe you need to reboot to activate the sudoless flash procedure.

"},{"location":"getting-started/installing/from-gui/debian-like/#after-install","title":"After install","text":"

Once installed, you can proceed to firmware installation.

"},{"location":"getting-started/installing/from-gui/fedora-like/","title":"Download assets","text":"
  • krux-installer-0.0.20_beta-1.x86_64.rpm
  • krux-installer-0.0.20_beta-1.x86_64.rpm.sha256.txt
  • krux-installer-0.0.20_beta-1.x86_64.rpm.sig
"},{"location":"getting-started/installing/from-gui/fedora-like/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

sha256sum --check ./krux-installer-0.0.20_beta-1.x86_64.rpm.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/fedora-like/#verify-the-authenticity","title":"Verify the authenticity","text":"

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer-0.0.20_beta-1.x86_64.rpm.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/fedora-like/#install","title":"Install","text":"

krux-installer isn't available on Fedora or RedHat repositories. You'll need to add it manually:

"},{"location":"getting-started/installing/from-gui/fedora-like/#fedora","title":"Fedora","text":"
sudo  dnf install krux-installer-0.0.20_beta-1.x86_64.rpm\n
"},{"location":"getting-started/installing/from-gui/fedora-like/#other-redhat-based-distros","title":"Other RedHat based distros:","text":"
sudo yum localinstall krux-installer-0.0.20_beta-1.x86_64.rpm\n

It will warn you that your system user was added to dialout group and maybe you need to reboot to activate the sudoless flash procedure.

"},{"location":"getting-started/installing/from-gui/fedora-like/#after-install","title":"After install","text":"

Once installed, you can proceed to firmware installation.

"},{"location":"getting-started/installing/from-gui/","title":"From GUI application","text":"

You can install Krux (both official or beta releases) onto your K210-based device using our official desktop application, KruxInstaller, available for:

\u26a0\ufe0f WARNING: Krux-Installer latest version is in it's alpha version. Maybe you can experience bugs or don't like something. If it is the case, please submit a issue.

  • Windows
  • MacOS Intel
  • MacOS M1/M2/M3
  • Debian and like
  • Fedora and like
  • Other linux distros
"},{"location":"getting-started/installing/from-gui/macos-arm64/","title":"Download assets","text":"
  • krux-installer_0.0.20-beta_arm64.dmg
  • krux-installer_0.0.20-beta_arm64.dmg.sha256.txt
  • krux-installer_0.0.20-beta_arm64.dmg.sig
"},{"location":"getting-started/installing/from-gui/macos-arm64/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

sha256sum --check ./krux-installer_0.0.20-beta_arm64.dmg.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/macos-arm64/#verify-the-authenticity","title":"Verify the authenticity","text":"

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer_0.0.20-beta_arm64.dmg.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/macos-arm64/#install","title":"Install","text":"

Open the dmg file and a new volume will be presented; drag'n'drop the krux-installer to the Applications folder:

Before run, you'll need to remove the quarantine flag from application. This occurs because we don't added the Apple's code signing and notarization.

To fix this, open your terminal and execute the following command:

xattr -d com.apple.quarantine -r /Applications/krux-installer.app\n

\ud83d\udee1\ufe0f TIP: If you followed the steps presented in authenticity section, you already have the assurance that the software is from a verified and genuine software publisher. This will also help establish a chain of trust when you perform the firmware verification step before flashing.

"},{"location":"getting-started/installing/from-gui/macos-arm64/#after-install","title":"After install","text":"

Once installed, you can proceed to firmware installation.

"},{"location":"getting-started/installing/from-gui/macos-intel/","title":"Download assets","text":"
  • krux-installer_0.0.20-beta_x86_64.dmg
  • krux-installer_0.0.20-beta_x86_64.dmg.sha256.txt
  • krux-installer_0.0.20-beta_x86_64.dmg.sig
"},{"location":"getting-started/installing/from-gui/macos-intel/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

sha256sum --check ./krux-installer_0.0.20-beta_x86_64.dmg.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/macos-intel/#verify-the-authenticity","title":"Verify the authenticity","text":"

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer_0.0.20-beta_x86_64.dmg.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/macos-intel/#install","title":"Install","text":"

Open the dmg file and a new volume will be presented; drag'n'drop the krux-installer to the Applications folder:

Before run, you'll need to remove the quarantine flag from application. This occurs because we don't added the Apple's code signing and notarization.

To fix this, open your terminal and execute the following command:

xattr -d com.apple.quarantine -r /Applications/krux-installer.app\n

\ud83d\udee1\ufe0f TIP: If you followed the steps presented in authenticity section, you already have the assurance that the software is from a verified and genuine software publisher. This will also help establish a chain of trust when you perform the firmware verification step before flashing.

"},{"location":"getting-started/installing/from-gui/macos-intel/#after-install","title":"After install","text":"

Once installed, you can proceed to firmware installation.

"},{"location":"getting-started/installing/from-gui/other-linux-distro/","title":"Download assets","text":"

For this installation, we'll use the .deb sources:

  • krux-installer_0.0.20-beta_amd64.deb
  • krux-installer_0.0.20-beta_amd64.deb.sha256.txt
  • krux-installer_0.0.20-beta_amd64.deb.sig
"},{"location":"getting-started/installing/from-gui/other-linux-distro/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

sha256sum --check ./krux-installer_0.0.20-beta_amd64.deb.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/other-linux-distro/#verify-the-authenticity","title":"Verify the authenticity","text":"

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer_0.0.20-beta_amd64.deb.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/other-linux-distro/#install","title":"Install","text":"

This step it's not really an installation. At least it will make the program's binary available somewhere on your computer; it can be useful if you want to develop a package for your distro.

To do this you'll need two tools:

  • ar;
  • bsdtar.
"},{"location":"getting-started/installing/from-gui/other-linux-distro/#extract-contents","title":"Extract contents","text":"
  • Extract the .deb contents:
ar xv krux-installer_0.0.20-beta_amd64.deb\n
  • Extract the data.tar.zst contents:
bsdtar -xvf data.tar.zst\n

The binary will be located at ./usr/local/bin/krux-installer.

"},{"location":"getting-started/installing/from-gui/usage/","title":"Usage","text":"

This guide will walk through the basic use of the installer. At startup, it can differ in some operational systems. In the rest, the procedures will be similar.

"},{"location":"getting-started/installing/from-gui/usage/#main-menu","title":"Main Menu","text":"

When executing the Krux Installer, you will be presented with a menu of 4 enabled buttons and two disabled buttons:

  • Enabled buttons:

    • Version: select a firmware version;

    • Device: select a supported device for the selected version;

    • Settings: change some application settings;

    • About: just show some information about the application.

  • Disabled buttons:

    • Flash firmware: This button will start the flash firmware procedure;

      • It will be enabled when user select both version and device;
    • Wipe device: This button will start the wipe device procedure.

      • It will be enabled when user select the device.
"},{"location":"getting-started/installing/from-gui/usage/#select-version","title":"Select version","text":"

At startup, the application will setup it to the latest one, krux-v24.09.1. But you can select even a beta release or older versions:

  • Click in the button that show the text Version: krux-v24.09.1;

  • To select a beta release, click on button that show the text odudex/krux_binaries;

  • To select an older version, click on button that show the text Old versions;

"},{"location":"getting-started/installing/from-gui/usage/#beta-release","title":"Beta release","text":"

After choose odudex/krux_binaries, you'll be warned with a message:

"},{"location":"getting-started/installing/from-gui/usage/#older-versions","title":"Older versions","text":"
  • We put this option in case you have any interest in the history of firmware development;
  • Each version supports one device or the other;

  • For example: the version v22.03.0 has support only for m5stickv.

"},{"location":"getting-started/installing/from-gui/usage/#settings","title":"Settings","text":"

krux-Installer will give to you some freedom of choices for:

  • Krux-Installer settings;

  • General settings;

"},{"location":"getting-started/installing/from-gui/usage/#krux-installer-specific-settings","title":"krux-installer specific settings","text":"

Here you can configure some of the specifics of krux firmare, like:

  • Where you'll save downloaded assets;

  • The flash baudrate

  • The natural language that will be used in the application (system locale).

"},{"location":"getting-started/installing/from-gui/usage/#flash-baudrate","title":"Flash baudrate","text":"

The flash baudrate is how quickly the firmware will be written to the device.

But not any value can be used. The valid ones are: 9600, 19200, 28800, 38400, 57600, 76800, 115200, 230400, 460800, 576000, 921600, 1500000.

"},{"location":"getting-started/installing/from-gui/usage/#system-locale","title":"System locale","text":"

At startup, krux-installer recognize the locale used in your system. If your language isn't supported, it will defaults to en_US.

"},{"location":"getting-started/installing/from-gui/usage/#select-device","title":"Select Device","text":"

Everytime you select a new version, you'll see that the device button will be reseted to Device: select a new one state. Once a version is selected you can choose a device on which the firmware will be written.

First, select the device we want to flash. After that the menu will shown three items:

Note that some devices may be disabled if they are not supported by the chosen version

"},{"location":"getting-started/installing/from-gui/usage/#flash-device","title":"Flash device","text":"

Once you choose the device and version, it enables the \"flash device\" button. It will start an automatic process of:

  • For official firmware's releases:

    • Warning;

    • Download;

    • Verification:

    • Unzip the correct firmware;

    • Flash:

      • The flash itself via USB;

      • Air-gapped update via microSD;

  • For beta releases:

    • Download asset;

    • The flash itself;

"},{"location":"getting-started/installing/from-gui/usage/#warning","title":"Warning","text":"

If you already downloaded assets, you'll be warned about this and will be offered the possibility to download again or continue without downloading:

"},{"location":"getting-started/installing/from-gui/usage/#download","title":"Download","text":"

Krux-installer download can download four assets for official releases or one for beta releases.

"},{"location":"getting-started/installing/from-gui/usage/#official-releases","title":"Official releases","text":"
  • A zip file containing all firmwares for each device;

  • Download a zip.sha256.txt file containing a zip's digital fingerprint;

  • Download a zip.sig file containing a zip's digital signature;

  • Download the selfcustody.pem file containing a public key certificate, signed by odudex;

"},{"location":"getting-started/installing/from-gui/usage/#beta-releases","title":"Beta releases","text":"
  • A kfpkg file containing the specific firmware for choosen device;
"},{"location":"getting-started/installing/from-gui/usage/#verification","title":"Verification","text":"
  • Integrity verification compares the computed hash of zip against thei provided zip.sha256.txt;

  • Authenticity verification check if the zip file was really signed by odudex, using the zip.sig and selfcustody.pem.

"},{"location":"getting-started/installing/from-gui/usage/#unzip","title":"Unzip","text":"

Now you will be able to select if you do a flash process or need to do an airgap process:

Click on Flash with to install via USB or Air-gapped update with to perform upgrades via a microSD card.

"},{"location":"getting-started/installing/from-gui/usage/#flash-with","title":"Flash with","text":"

When flash starts, it will warn you to not disconnect the device until the process is complete. You'll be able to see the flash progress:

\u26a0\ufe0f TIP: You must connect and turn on your device before click extract and flashing starts!.

As well a done icon:

\u26a0\ufe0f TIP: When the flashing process completes, you should see the Krux logo:

If it doesn't, try turning your device off and on by holding down the power button for six seconds.

Congrats, you're now running Krux!

"},{"location":"getting-started/installing/from-gui/usage/#air-gapped-update-with","title":"Air-gapped update with","text":"

Once you've installed the initial firmware on your device via USB, you can perform upgrades via microSD card to keep the device airgapped.

\u26a0\ufe0f Click on \"Air-gapped update with\"

Once the firmware.bin and firmware.bin.sig are extracted, you'll see a warning message.

Insert the microSD and click \"Proceed\" to installer detect the microSD card.

\u26a0\ufe0f If you one microSD, the screen will be turned on a big button. If you have more removable drives, both microSD and drives will be listed

Click on desired removable drive to copy both firmware.bin and firmware.bin.sig. The first is the krux firmware itself and the second is a file that assert both firmware's integrity and authenticity.

Now you can compare the firmware's hash computed by installer with the firmware's hash computed by the device.

\u26a0\ufe0f Once files are copied, remove the microSD from computer, connect to device and compare the hashes

"},{"location":"getting-started/installing/from-gui/usage/#wipe-device","title":"Wipe device","text":"

This is two step process:

  • Warning

  • Wipe

"},{"location":"getting-started/installing/from-gui/usage/#warning_1","title":"Warning","text":"

Before the wipe starts, it will show to you a message:

\u26a0\ufe0f TIP: It's useful when your device is not working or for security reasons. To use Krux again, you'll need to re-flash the firmware.

"},{"location":"getting-started/installing/from-gui/usage/#wipe","title":"Wipe","text":"

Once the process starts, the screen will appear frozen and a spinner will keep moving. When it's done, you can scroll down you will see a check icon.

\u26a0\ufe0f TIP: Do not unplug or poweroff your device or computer. Wait until the process finishes.

"},{"location":"getting-started/installing/from-gui/usage/#tips-after-install","title":"Tips after install","text":""},{"location":"getting-started/installing/from-gui/usage/#multilingual-support","title":"Multilingual support","text":"

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.

"},{"location":"getting-started/installing/from-gui/usage/#upgrade-via-microsd-card","title":"Upgrade via microSD card","text":"

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.

"},{"location":"getting-started/installing/from-gui/windows/","title":"Download assets","text":"
  • krux-installer_v0.0.20-beta.Setup.exe
  • krux-installer_v0.0.20-beta.Setup.exe.sha256.txt
  • krux-installer_v0.0.20-beta.Setup.exe.sig
"},{"location":"getting-started/installing/from-gui/windows/#verify-the-integrity","title":"Verify the integrity","text":"

Open your terminal and type the command below:

(Get-FileHash '.\\krux-installer_v0.0.20-beta.Setup.exe').Hash.ToLower() -eq (Get-Content '.\\krux-installer_v0.0.20-beta.Setup.exe.sha256.txt').split(\" \")[0]\n

The result in prompt should be True.

Alternatively, you can check more closely in two steps:

  • Compute the binary sha256sum hash:
# Option 1: Compute in default way\nGet-FileHash '.\\krux-installer_v0.0.20-beta.Setup.exe'\n\n# Option 2: Compute and filter the necessary information\n(Get-FileHash '.\\krux-installer_v0.0.20-beta.Setup.exe').Hash\n\n# Option 3: Compute, filter and process the Hash for lowercase letters\n(Get-FileHash '.\\krux-installer_v0.0.20-beta.Setup.exe').Hash.ToLower()\n
  • Compare with provided hash:
# Option 1: Get content \nGet-Content '.\\krux-installer_v0.0.20-beta.Setup.exe.sha256.txt'\n\n# Option 2: Get content and filter the necessary information\n(Get-Content '.\\krux-installer_v0.0.20-beta.Setup.exe.sha256.txt').split(\" \")[0]\n
"},{"location":"getting-started/installing/from-gui/windows/#verify-the-authenticity","title":"Verify the authenticity","text":"
  • You'll need have GPG installed;
  • We recommend installing GPG4Win.

The first step is import the developer's key:

gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322\n

Then, to verify yourself, run this command on your terminal:

gpg --verify ./krux-installer_v0.0.20-beta.Setup.exe.sig\n

\u26a0\ufe0f TIP: If the verification was successful, you may get a message similar to: Good signature from \"qlrddev <qlrddev@gmail.com>\"

"},{"location":"getting-started/installing/from-gui/windows/#install","title":"Install","text":"

Execute the krux-installer_v0.0.20-beta.Setup.exe. You'll be faced with a blue window saying \"Windows protected your PC\". This occurs because we don't have a code signing certificate:

\ud83d\udee1\ufe0f TIP: If you followed the steps presented in authenticity section, you already have the assurance that the software is from a verified and genuine software publisher. This will also help establish a chain of trust when you perform the firmware verification step before flashing.

Follow the installer's instructions to complete the installation. At the end, click on \"Create desktop icon\":

"},{"location":"getting-started/installing/from-gui/windows/#after-install","title":"After install","text":"

Once installed, you can proceed to firmware installation.

"},{"location":"getting-started/usage/generating-a-mnemonic/","title":"Generating a Mnemonic","text":"

Krux supports creating 12 and 24-word BIP-39 mnemonic seed phrases. Since generating true entropy is challenging, especially with an embedded device, we recommend outsourcing entropy generation using dice rolls. However, it is also possible to randomly pick words (e.g., SeedPicker) or use the camera as a source of entropy to quickly create a mnemonic.

At the start screen, after selecting New Mnemonic, you will be taken to a second menu where you can choose to create a mnemonic via the camera, words, rolls of a D6 (standard six-sided die), or a D20 (20-sided die).

"},{"location":"getting-started/usage/generating-a-mnemonic/#camera","title":"Camera","text":"

(Experimental!) Choose between 12, 24 words or double mnemonic, then take a random picture and Krux will generate a mnemonic from the hash of the image bytes.

"},{"location":"getting-started/usage/generating-a-mnemonic/#image-entropy-quality-estimation","title":"Image Entropy Quality Estimation","text":"

During image capture, entropy quality estimation is displayed to assist you in obtaining a high-quality image source for your key. After a snapshot is taken, Shannon's entropy and pixel deviation indices are presented. Minimum thresholds are established to prevent the use of poor-quality images with low entropy for key generation. It's important to note that these values serve as indicators or estimations of entropy quality, but they are not absolute entropy values in a cryptographic context.

"},{"location":"getting-started/usage/generating-a-mnemonic/#double-mnemonic","title":"Double mnemonic","text":"

It is the combination of two 12-word mnemonics that also forms a valid 24-word BIP-39 mnemonic. This is achieved by using the first 16 bytes (128 bits) of the image's entropy to generate the first 12-word, then using the next 16 bytes to generate the second 12-word and checking if these two 12-word together forms a valid 24-word, if not, we iterate over the second 12-word incrementing its entropy bytes until the two 12-word forms a valid 24-word.

Some might say that the name double mnemonic is incorrect because we end up with two 12-word plus a 24-word mnemonic (12 + 12 + 24), so it's a triple mnemonic! But we only use entropy for the two 12-word ones, hence the name double mnemonic. Also, this name has already been used in this double mnemonic generator since July 2023.

Some may wonder what is the use of this, it may be useful to some plausible deniability or even a way to improve your OPSEC.

"},{"location":"getting-started/usage/generating-a-mnemonic/#words","title":"Words","text":"

Print the BIP39 word list in 3D or on paper, then cut out the words and place them in a bucket. Manually draw 11 or 23 words from the bucket. For the final word, Krux will assist you in picking a valid 12th or 24th word by adjusting its smart keypad to only allow typing words with a valid checksum. Alternatively, you can leave it empty, and Krux will select a final, valid checksum word for you.

"},{"location":"getting-started/usage/generating-a-mnemonic/#dice-rolls","title":"Dice Rolls","text":""},{"location":"getting-started/usage/generating-a-mnemonic/#via-d6","title":"Via D6","text":"

Choose between 12 or 24 words. The entropy in a single roll of a D6 is 2.585 bits ( log2(6) ); therefore a minimum of a 50 rolls will be required for 128 bits of entropy, enough to generate a 12-word mnemonic. For 24-word, or an entropy of 256 bits, a minimum of 99 rolls will be required.

"},{"location":"getting-started/usage/generating-a-mnemonic/#via-d20","title":"Via D20","text":"

Since a D20 has more possible outcomes, the entropy is increased per roll to 4.322 bits ( log2(20) ). This means that only 30 rolls are necessary to create a 12-word mnemonic and 60 rolls for a 24-word mnemonic.

"},{"location":"getting-started/usage/generating-a-mnemonic/#dice-rolls-entropy-quality-estimation","title":"Dice Rolls Entropy Quality Estimation","text":"

When you input your dice rolls, you'll see two progress bars filling up. The top progress bar shows how many rolls you've entered compared to the minimum number needed. The bottom progress bar shows the real-time calculated Shannon's entropy compared to the required minimum (128 bits for 12 words and 256 bits for 24 words). When the Shannon's entropy estimation reaches the recommended level, the progress bar will be full, and its frame will change color. If you've met the minimum number of rolls but the entropy estimation is still below the recommended level, a warning will appear, suggesting you add more rolls to increase entropy. Note: Similar to image entropy quality estimation, dice rolls Shannon's entropy serves as an indicator and should not be considered an absolute measure of cryptographic entropy.

Learn more about Krux Entropy Quality Estimation.

"},{"location":"getting-started/usage/generating-a-mnemonic/#stats-for-nerds","title":"Stats for Nerds","text":"

A low Shannon's entropy value could suggest that your dice are biased or that there's a problem with how you're gathering entropy. To investigate further, examine the \"Stats for Nerds\" section to check the distribution of your rolls and look for any abnormalities.

"},{"location":"getting-started/usage/generating-a-mnemonic/#editing-a-new-mnemonic-optional","title":"Editing a New Mnemonic - Optional","text":"

After entering dice rolls, random words, or captured entropy through the camera, you can manually add custom entropy by editing some of the words. Edited words will be highlighted, and the final word will automatically update to ensure a valid checksum. However, proceed with caution, modifying words can negatively impact the natural entropy previously captured.

"},{"location":"getting-started/usage/generating-a-mnemonic/#how-entropy-capture-works","title":"How Entropy Capture Works","text":"

For dice rolls, Krux keeps track of every roll you enter and displays the cumulative string of outcomes after each roll.

When you have entered your final roll, Krux will hash this string using SHA256 and output the resulting hash to the screen so that you can verify it for yourself.

In case a camera snapshot is used as a source, the image bytes, which contain pixels data in RGB565 format, will be hashed in the same way as the dice rolls.

Krux then takes this hash, runs unhexlify on it to encode it as bytes, and deterministically converts it into a mnemonic according to the BIP-39 Reference Implementation.

Note: For 12-word mnemonics, only the first half of the SHA256 hash is used (128 bits), while 24-word mnemonics use the full hash (256 bits).

"},{"location":"getting-started/usage/generating-a-mnemonic/#how-to-verify","title":"How to Verify","text":"

Don't trust, verify. We encourage you not to trust any claim you cannot verify yourself. Therefore, there are wallets that use compatible algorithms to calculate the entropy derived from dice rolls. You can use the SeedSigner or Coldcard hardware wallets, or even the Bitcoiner Guide website, they share the same logic that Krux uses and will give the same mnemonic for the dice roll method.

"},{"location":"getting-started/usage/loading-a-mnemonic/","title":"Loading a Mnemonic","text":"

Once you have either a 12 or 24-word BIP-39 mnemonic, choose Load Mnemonic on Krux's start menu (aka login menu), and you will be presented with several input methods:

"},{"location":"getting-started/usage/loading-a-mnemonic/#input-methods","title":"Input Methods","text":""},{"location":"getting-started/usage/loading-a-mnemonic/#via-camera","title":"Via Camera","text":"

You can choose to use the camera to scan a QR code, Tiny Seed, OneKey KeyTag or a Binary Grid.

If you are in a dark environment, you can hold down the ENTER button of the M5StickV or Maix Amigo to turn on their LED light to potentially increase visibility. Some cameras (OV7740, OV2640 and GC2145) have an anti-glare mode to better capture images from high brightness screens or with incident light, they are present on M5StickV, Amigo, Cube and Yahboom. To enable/disable the anti-glare mode on a supported device just press the PAGE button while scanning.

"},{"location":"getting-started/usage/loading-a-mnemonic/#qr-code","title":"QR Code","text":"

It's unpleasant having to manually enter 12 or 24 words every time you want to use Krux. To remedy this you can instead use the device's camera to read a QR code containing the words. Krux will decode QR codes of four types:

  • Plain text QR: The mnemonic words encoded as text, with words separated by spaces.
  • SeedQR: Basically, it is the mnemonic words of the respective BIP-39 numbers concatenated, encoded as text.
  • Compact SeedQR: Basically, it is the mnemonic words bits concatenated as bytes.
  • Encrypted Mnemonic: A specification created by Krux that encrypts the mnemonic words bits and adds some information about the encryption used.

After opening a wallet via one of the methods available you can use Krux to backup the mnemonic as QR code, transcribe them to paper or metal using the transcription helpers or attach a thermal printer to your Krux and print out the mnemonic as QR. Check out the printing section for more information. You can also use an offline QR code generator for this (ideally on an airgapped device).

"},{"location":"getting-started/usage/loading-a-mnemonic/#tiny-seed-onekey-keytag-or-binary-grid","title":"Tiny Seed, OneKey KeyTag or Binary Grid","text":"

Tiny Seed, Onekey KeyTag and others directly encode a seed as binary, allowing for a very compact mnemonic storage. Krux devices have machine vision capabilities that allow users to scan these metal plates and instantly load mnemonics engraved on them (this feature is not available in Krux Android app).

To properly scan, place the backup plate over a black background and paint the punched bits black to increase contrast. You can also scan the thermally printed version, or a filled template. You can find some examples of mnemonics encoded here. Alternatively, you can find templates to scan or print here.

"},{"location":"getting-started/usage/loading-a-mnemonic/#via-manual-input","title":"Via Manual Input","text":"

Manually type Words, Word Numbers, Tiny Seed (toggle the bits or punches) or Stackbit 1248.

"},{"location":"getting-started/usage/loading-a-mnemonic/#words","title":"Words","text":"

Enter each word of your BIP-39 mnemonic one at a time. Krux will disable impossible-to-reach letters as you type and will attempt to autocomplete your words to speed up the process.

"},{"location":"getting-started/usage/loading-a-mnemonic/#word-numbers","title":"Word Numbers","text":""},{"location":"getting-started/usage/loading-a-mnemonic/#decimal","title":"Decimal","text":"

Enter each word of your BIP-39 mnemonic as a number (1-2048) one at a time. You can use this list for reference.

"},{"location":"getting-started/usage/loading-a-mnemonic/#hexadecimal-and-octal","title":"Hexadecimal and Octal","text":"

You can also enter your BIP-39 mnemonic word's numbers (1-2048) in hexadecimal format, with values ranging from 0x1 to 0x800, or in octal format, with values ranging from 01 to 04000. This is useful with some metal plate backups that uses those formats.

"},{"location":"getting-started/usage/loading-a-mnemonic/#tiny-seed-bits","title":"Tiny Seed (Bits)","text":"

Enter the BIP-39 mnemonic word's numbers (1-2048) in binary format, toggling necessary bits to recreate each of the word's respective number. The last word will have checksum bits dynamically toggled while you fill the bits.

"},{"location":"getting-started/usage/loading-a-mnemonic/#stackbit-1248","title":"Stackbit 1248","text":"

Enter the BIP-39 mnemonic word's numbers (1-2048) using the Stackbit 1248 metal plate backup method, where each of the four digits of the word's number is a sum of the numbers marked (punched) 1, 2, 4, or 8. For example, to enter the word \"oyster\", number 1268, you must punch (1)(2)(2,4)(8).

"},{"location":"getting-started/usage/loading-a-mnemonic/#from-storage","title":"From Storage","text":"

You can retrieve mnemonics previously stored on device's internal flash or external (SD card). All stored mnemonics are encrypted, to load them you'll have to enter the same key you used to encrypt them.

"},{"location":"getting-started/usage/loading-a-mnemonic/#wallet-loading","title":"Wallet Loading","text":""},{"location":"getting-started/usage/loading-a-mnemonic/#confirm-mnemonic-words","title":"Confirm Mnemonic Words","text":"

Once you have entered your mnemonic, you will be presented with the full list of words to confirm.

If you see an asterisk (*) in the header, it means this is a double mnemonic.

"},{"location":"getting-started/usage/loading-a-mnemonic/#edit-mnemonic-optional","title":"Edit Mnemonic - Optional","text":"

If you make a mistake while loading a mnemonic, you can easily edit it. Simply touch or navigate to the word you want to change and replace it. Edited words will be highlighted in a different color. If the final word contains an invalid checksum, it will appear in red. If your checksum word is red, please review your mnemonic carefully, as there may be an error.

"},{"location":"getting-started/usage/loading-a-mnemonic/#confirm-wallet-attributes","title":"Confirm Wallet Attributes","text":"

You will be presented with a screen containing wallet attributes, if they are as expected just press Load Wallet and you'll be ready to use your loaded key.

"},{"location":"getting-started/usage/loading-a-mnemonic/#fingerprint","title":"Fingerprint","text":"
  • 73c5da0a: The BIP-32 master wallet's fingerprint, if you have it noted down, will help you make sure you entered the correct mnemonic and passphrase (optional) and will load the expected wallet.
"},{"location":"getting-started/usage/loading-a-mnemonic/#network","title":"Network","text":"
  • Mainnet: Check if you are loading a Testnet or Mainnet wallet.
"},{"location":"getting-started/usage/loading-a-mnemonic/#single-multisig","title":"Single / Multisig","text":"
  • Single-sig: Check if you are loading a Single-sig or Multisig wallet.
"},{"location":"getting-started/usage/loading-a-mnemonic/#derivation-path","title":"Derivation Path","text":"
  • m/84'/0'/0': The derivation path is a sequence of numbers, or \"nodes\", that define the script type, network, and account index of your wallet.
    • Script Type 84': The first number defines the script type. The default is 84', corresponding to a Native Segwit wallet. Other values include:
      • 44' for Legacy
      • 49' for Nested Segwit
      • 86' for Taproot
      • 48' for Multisig
    • Network 0': The second number defines the network:
      • 0' for Mainnet
      • 1' for Testnet
    • Account Index 0': The third number is the account index, with 0' being the default.
    • Additional: For multisig wallets, a fourth node with the value 2' is added to the derivation path.
"},{"location":"getting-started/usage/loading-a-mnemonic/#passphrase","title":"Passphrase","text":"
  • No Passphrase: Informs if the wallet has a loaded passphrase.
"},{"location":"getting-started/usage/loading-a-mnemonic/#customize","title":"Customize","text":"

You can change any of the attributes before and after loading a wallet. It is also possible to change default settings for Network and Single/Multisig on settings.

"},{"location":"getting-started/usage/loading-a-mnemonic/#passphrase_1","title":"Passphrase","text":"

You can type or scan a BIP-39 passphrase. When typing, swipe left or right to change keypads if your device has a touchscreen. You can also hold the button PAGE or PAGE_PREV when navigating among letters while typing text to fast forward or backward. For scanning, you can also create a QR code from your offline passphrase using the create QR code tool.

"},{"location":"getting-started/usage/loading-a-mnemonic/#customize_1","title":"Customize","text":"

Press Customize to open a menu where you can change the Network, Single/Multisig, Script Type and Account.

Now, onto the main menu...

"},{"location":"getting-started/usage/navigating-the-main-menu/","title":"Navigating the Main Menu","text":"

After entering your mnemonic, and loading a wallet, you will find yourself on Krux's main menu. Below is a breakdown of the entries available:

"},{"location":"getting-started/usage/navigating-the-main-menu/#backup-mnemonic","title":"Backup Mnemonic","text":"

This will open a new submenu with different types of backups. QR Code based, Encrypted and Other Formats

If you set a printer, it will also give the option to print them!

"},{"location":"getting-started/usage/navigating-the-main-menu/#qr-code","title":"QR Code","text":"
  • Plaintext QR

Generate a QR containing the mnemonic words as regular text, where words are separated by spaces. Any QR code can be printed if a thermal printer driver is set.

  • Compact SeedQR

A QR code is created from a binary representation of mnemonic words. Format created by SeedSigner, more info here.

  • SeedQR

Words are converted to their BIP-39 numeric indexes, those numbers are then concatenated as a string and finally converted to a QR code. Format created by SeedSigner, more info here.

  • Encrypted QR Code

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.

"},{"location":"getting-started/usage/navigating-the-main-menu/#encrypted","title":"Encrypted","text":"

This feature allows you to back up your mnemonic by encrypting it and storing it on the device's flash memory, an SD card, or in QR code format. You can customize the encryption method and parameters in the settings.

For convenience, you may choose to store the encrypted mnemonic on flash memory or an SD card, but it is advisable not to rely solely on these methods for backup. Flash storage can degrade over time and may be subject to permanent damage, resulting in the loss of stored information.

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.

  • Store on Flash

This option stores the encrypted mnemonic in the device's flash memory. You can decrypt and load it later through the \"Load Mnemonic\" -> \"From Storage\" option.

  • Store on SD Card

If an SD card is available, this option stores the encrypted mnemonic on it. You can decrypt and load it later through the \"Load Mnemonic\" -> \"From Storage\" option.

  • Encrypted QR Code It's another path for the same functionality present on QR Code backups, described above.
"},{"location":"getting-started/usage/navigating-the-main-menu/#other-formats","title":"Other Formats","text":"
  • Words

Display the BIP-39 mnemonic words as text so you can write them down.

  • Numbers

Display the BIP-39 mnemonic word numbers (1-2048) in decimal, hex, or octal format.

  • Stackbit 1248

This metal backup format represents the BIP-39 mnemonic word's numbers (1-2048). Each of the four digits is converted to a sum of 1, 2, 4 or 8. This option does not print even if a printer driver is set.

  • Tiny Seed

This metal backup format represents the BIP-39 mnemonic word's numbers (1-2048) in binary format on a metal plate, where the 1's are marked (punched) and the 0's are left intact. You can also print your mnemonic in this format if a thermal printer driver is set.

"},{"location":"getting-started/usage/navigating-the-main-menu/#extended-public-key","title":"Extended Public Key","text":"

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.

All QR codes will contain key origin information in 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.

"},{"location":"getting-started/usage/navigating-the-main-menu/#wallet","title":"Wallet","text":"

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

"},{"location":"getting-started/usage/navigating-the-main-menu/#wallet-descriptor","title":"Wallet Descriptor","text":"

A Bitcoin Wallet Output Script 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). - Origin Info: Defines the master fingerprint and derivation path used to derive keys. - Extended Public Keys: usually represented as an xpub, but could be ypub, zpub, etc.

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.

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.

"},{"location":"getting-started/usage/navigating-the-main-menu/#passphrase","title":"Passphrase","text":"

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.

"},{"location":"getting-started/usage/navigating-the-main-menu/#customize","title":"Customize","text":"

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

"},{"location":"getting-started/usage/navigating-the-main-menu/#bip85","title":"BIP85","text":"

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.

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 passphrases will be removed when loading a BIP85 child.

"},{"location":"getting-started/usage/navigating-the-main-menu/#address","title":"Address","text":"

Scan, verify, export or print your wallet addresses.

"},{"location":"getting-started/usage/navigating-the-main-menu/#scan-address","title":"Scan Address","text":"

This option turns on the camera and allows you to scan in a QR code of a receive address. Upon scanning, it will render its own QR code of the address back to the display along with the (text) address below it. You could use this feature to scan the address of someone you want to send coins to and display the QR back to your wallet coordinator rather than copy-pasting an address. If you have a thermal printer attached, you can also print this QR code.

After proceeding through this screen, you will be asked if you want to check that the address belongs to your wallet. If you confirm, it will exhaustively search through as many addresses derived from your wallet as you want in order to find a match.

This option exists as an extra security check to verify that the address your wallet coordinator has generated is authentic and belongs to your wallet.

"},{"location":"getting-started/usage/navigating-the-main-menu/#receive-addresses","title":"Receive Addresses","text":"

List your wallet receiving addresses, you can browse to select an arbitrary address to show your QR code and print if you want.

"},{"location":"getting-started/usage/navigating-the-main-menu/#change-addresses","title":"Change Addresses","text":"

List your wallet change addresses, you can browse to select an arbitrary address to show your QR code and print if you want.

"},{"location":"getting-started/usage/navigating-the-main-menu/#sign","title":"Sign","text":"

Under Sign, you can choose to sign a PSBT or a message. You can load both PSBTs and messages scanning QR codes or loading from files on a SD card.

"},{"location":"getting-started/usage/navigating-the-main-menu/#psbt","title":"PSBT","text":"

To sign a Bitcoin PSBT, you have the following options:

  • Scan an Animated QR Code: Turn on the camera and scan an animated QR code of a PSBT generated by your wallet coordinator software. If you have any issues, see Troubleshooting.
  • Load from SD Card: Load an unsigned PSBT file from your SD card.

Upon loading the PSBT, you will be presented with a preview showing the amount of BTC being sent, the recipient's address, and the transaction fee. Amounts are displayed according to your locale and the International Bureau of Weights and Measures, while still adhering to the concept of the Satcomma standard format.

If you choose to proceed and sign the transaction, the signed PSBT can be exported in two ways:

  • As an animated QR code, which can be scanned back into your coordinator wallet.
  • As a signed PSBT file, which can be saved to your SD card and then loaded back into your coordinator wallet for broadcasting.

If a thermal printer is attached to your device, you can also print the PSBT QR codes for record-keeping or further processing.

"},{"location":"getting-started/usage/navigating-the-main-menu/#message","title":"Message","text":"

Similar to PSBTs, Krux can load, sign, and export signatures for messages. This feature allows you to attest not only to the ownership of the messages themselves but also to the ownership of Bitcoin addresses and the authorship of documents and files.

"},{"location":"getting-started/usage/navigating-the-main-menu/#standard-messages-and-files","title":"Standard Messages and Files","text":"

You can scan or load a file from an SD card, the content can be plaintext or the SHA-256 hash of a message. Upon loading, you will be shown a preview of the message's SHA-256 hash for confirmation before signing.

If you confirm, a signature will be generated, and you will see a base64-encoded version of it. You can then choose to export it as a QR code or save it to an SD card. If a thermal printer is attached, you can also print the QR code.

Following this, you will see and be allowed to export your raw (master) public key in hexadecimal form, which can be used by others to verify your signature. If a thermal printer is attached, you can also print this QR code.

This feature is used to sign Krux releases, airgapped, using a Krux device.

"},{"location":"getting-started/usage/navigating-the-main-menu/#messages-at-address","title":"Messages at Address","text":"

Coordinators like Sparrow and Specter offer the possibility to sign messages at a Bitcoin receive address, allowing you to attest ownership of that address. Krux will detect if the message is of this type and present a similar workflow for signing. The main difference is that the address will be displayed along with the raw message, and since the message is signed with a derived address instead of the master public key, Krux won't offer the option to export the raw public key after the signature.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/","title":"Setting a Coordinator and Signing","text":"

After creating a mnemonic, making a safe backup, and testing to recover your mnemonic, it's time to set up a coordinator.

Krux can work with multiple coordinator wallets. Popular options include:

  • Sparrow Wallet (desktop)

  • Specter Desktop (desktop)

  • Nunchuk (mobile)

  • BlueWallet (mobile)

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-1-install-the-coordinator-wallet","title":"Step 1: Install the Coordinator Wallet","text":"

Download and install the appropriate version of your chosen coordinator wallet for your device and operating system.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-2-create-a-new-wallet-with-krux-as-a-signer","title":"Step 2: Create a New Wallet with Krux as a Signer","text":"

Depending on the coordinator, the steps to add Krux as a signer may vary slightly:

Specter and Nunchuk Single-sig: Add Krux as signer device, then create a wallet that uses it.

Specter and Nunchuk Multisig: Add Krux as signer device, add other devices, then create a wallet that uses them.

Sparrow and BlueWallet: Create a wallet (or vault in Blue Wallet) first, then add signer device(s).

  1. Load a mnemonic and wallet in Krux.

  1. On your coordinator, when presented with possible signer devices to add, choose Krux if available, otherwise choose \"other\" or even another QR code compatible signer. As Krux is compatible with many QR code formats, most of available alternatives should work.

  2. When prompted by your coordinator to import signer's public key, access the \"Extended Public Key\" on Krux.

  1. Export an XPUB (or YPUB, ZPUB, etc., based on the script type) as a QR code.

  1. Scan this QR code with your coordinator.

  2. Ensure the coordinator\u2019s wallet attributes (policy type, script type, fingerprint, and derivation) match those in Krux.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-3-load-and-backup-wallet-descriptor-multisig-only","title":"Step 3: Load and Backup Wallet Descriptor (Multisig Only)","text":"
  1. In your coordinator, export the wallet descriptor containing information about the wallet and all cosigners:
    • Sparrow: \"Descriptor\"
    • Specter: \"Export Wallet\"
    • Nunchuk: \"Export Wallet Configuration\"
    • BlueWallet: \"Export Coordination Setup\"
  2. Export the descriptor as a QR code or file.
  3. On Krux, go to \"Wallet\" -> \"Wallet Descriptor\" to scan the descriptor QR code or load it via SD card.
  1. If you access \"Wallet\" -> \"Wallet Descriptor\" again, you will be able to:

    • Check the wallet cosigners.
    • Save the descriptor on an SD card (useful if you initially loaded it from QR codes).

    It is crucial to have a backup of this descriptor to recover your wallet in case one of the cosigners is lost.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-4-verify-addresses","title":"Step 4: Verify Addresses","text":"

For single-sig or multisig (after loading a descriptor):

  • Go to \"Address\" on Krux.

  • List \"Receive Addresses\" and \"Change Addresses\" or use \"Scan Address\" to verify if addresses from your coordinator are matched by Krux.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-5-funding-your-wallet","title":"Step 5: Funding your Wallet","text":"

Once addresses are verified, send a small test amount to your wallet. Test signing and sending a transaction before adding more funds.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#step-6-sign-psbts-and-messages","title":"Step 6: Sign PSBTs and Messages","text":""},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#psbts","title":"PSBTs","text":"
  1. Create a transaction in your coordinator.

  2. Export the transaction as a QR code.

  3. On Krux, go to \"Sign\" -> \"PSBT\" -> \"Load from camera\".

  4. Scan the animated QR code.

  5. Verify the transaction details.

  6. If correct, press \"Sign to QR code\".

  7. Scan the signed transaction QR code back into the coordinator to broadcast it.

Alternatively, you can use an SD card:

Save the transaction as a file on an SD card. On Krux, go to \"Sign\" -> \"PSBT\" -> \"Load from SD card\" and \"Sign to SD card\". Load the signed transaction on the coordinator and broadcast it.

"},{"location":"getting-started/usage/setting-a-coordinator-and-signing/#messages","title":"Messages","text":"

Some coordinators, like Sparrow, allow you to sign messages linked to your wallet's addresses. Signing and verifying a message signature attests to the ownership of an address and serves as an additional test for your setup.

"},{"location":"getting-started/usage/video-tutorials/","title":"Video Tutorials","text":""},{"location":"getting-started/usage/video-tutorials/#krux-video-tutorials","title":"Krux Video Tutorials","text":"

Most people prefer to learn by watching videos, and we are fortunate to have excellent content creators in the Bitcoin space, here are some examples of Krux related content and tutorials.

"},{"location":"getting-started/usage/video-tutorials/#english","title":"English","text":""},{"location":"getting-started/usage/video-tutorials/#krux-on-m5stickv-sparrow","title":"Krux on M5StickV + Sparrow","text":"

Krux on M5StickV + Sparrow Wallet by Crypto Guide

"},{"location":"getting-started/usage/video-tutorials/#krux-on-maix-amigo-blue","title":"Krux on Maix Amigo + Blue","text":"

Krux on Maix Amigo + Blue Wallet by Crypto Guide

"},{"location":"getting-started/usage/video-tutorials/#diy-only-multisig","title":"DIY-Only MultiSig","text":"

DIY-Only Multivendor Hardware Wallet MultiSig: SeedSigner, Jade, Krux, Satochip + Sparrow & Electrum by Crypto Guide

"},{"location":"getting-started/usage/video-tutorials/#build-from-source-verify","title":"Build From Source & Verify","text":"

Krux DIY Bitcoin Signer: Build From Source & Verify (With Windows + WSL2 + Docker) by Crypto Guide

"},{"location":"getting-started/usage/video-tutorials/#portuguese","title":"Portuguese","text":""},{"location":"getting-started/usage/video-tutorials/#krux-facil-de-instalar","title":"Krux f\u00e1cil de instalar","text":"

Hardwallet Krux f\u00e1cil de instalar + QRs criptografados - por Bitdov

"},{"location":"getting-started/usage/video-tutorials/#multisig-com-krux","title":"Multisig com Krux","text":"

Multisig com Krux e Nunchuk no celular - por Bitdov

"},{"location":"getting-started/usage/video-tutorials/#krux-com-impressora-termica","title":"Krux com impressora t\u00e9rmica","text":"

Usando a Krux com impressora t\u00e9rmica - por Bitdov

"},{"location":"getting-started/usage/video-tutorials/#krux-no-celular","title":"Krux no celular","text":"

Carteira Bitcoin com celular OFFLINE - Krux mobile APK - por Dig

"},{"location":"getting-started/usage/video-tutorials/#krux-no-celular-ii","title":"Krux no celular II","text":"

Como utilizar a carteira Krux no celular - por Jo\u00e3o Trein

"},{"location":"getting-started/usage/video-tutorials/#faca-sua-krux","title":"Fa\u00e7a sua Krux","text":"

Fa\u00e7a sua hardware wallet em casa com a KRUX! - por Caiovski

"},{"location":"snippets/after-install-installer/","title":"After install installer","text":"

Once installed, you can proceed to firmware installation.

"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 16d91c0b..e77e6933 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,205 +2,205 @@ https://selfcustody.github.io/krux/faq/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/parts/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/support/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/troubleshooting/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/uncommon-questions/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/navigation/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/settings/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/features/QR-transcript-tools/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/features/encrypted-mnemonics/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/features/entropy/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/features/printing/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/features/sd-card-update/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/features/tinyseed/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/features/tools/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-pre-built-release/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-source/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-test-release/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-gui/debian-like/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-gui/fedora-like/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-gui/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-gui/macos-arm64/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-gui/macos-intel/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-gui/other-linux-distro/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-gui/usage/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/installing/from-gui/windows/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/usage/generating-a-mnemonic/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/usage/loading-a-mnemonic/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/usage/navigating-the-main-menu/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/usage/setting-a-coordinator-and-signing/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/getting-started/usage/video-tutorials/ - 2024-10-09 + 2024-10-29 daily https://selfcustody.github.io/krux/snippets/after-install-installer/ - 2024-10-09 + 2024-10-29 daily diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 40ffa4e4ba9e8bf3f7796655075e8ba05bc74636..c6de0fbfb312db718c844e92545fc62edd5f3d15 100644 GIT binary patch delta 731 zcmV<10wn$Q1@#37ABzYGfF&T22Pl64ELIW|1PZ&v_S+X(cH+2hlIa+AKosK1Ev6e#qO3lY<_!slyLqcy`YuKX) zq>$*7yI{@`T+B`l)azzQ;i?3gnwrz_qj@pnN!6m4pSq$Wl4!PYC}Zlbo;jkKsz8u; zfc*OpMot(ko$82@wK{owZ?eTV8t&xXwhL9PH4xILD)TXVj%^I1VU~aHwi#I*c;cJu zoH8limAwxX-yKR;3MZNGWI)Nr;0acIkD+#pkp4a1pFktH%W6K3JOe8ewzTfEL*;DC zItOg!l_nOzKw$FM@cV$Hxkc+;nVrx*)o2zeJXhyBIA5`iVKg6qqm94XD=uNBgkf4e zWH$s)@kaGpfwWF!>-B#aZ&a@tx*XMCD@uz@xc19UjxLY!{)5->bP76OuLItwUM)4? zLY^^x!=yrTHb=c@C`YyIQPf$^Qv=wjF4xLPyT%-C9?+us98Oma2AtUK5YKO#Q}_86 zT4bNv3YnwKGhC5P9=>9R9U)`0Rw%<-Fg_2Tf2E6Tb^pCHoX1PjS{F{KAnTYglA)?i z1`qci#fAzS$4|Taeyo~BPAmpM7k+c1Lcvyo=?$@vPcuvgiR$jaz<>YwRDYNO{L)v)^B(Pk9@)V#z$R&Tx-PgdUk!ou4ZgD4=wg}FRjW3 zbd8n8$E5(NwhMk#^U`b=;;oYUVPY|mfO2RxI4mZO#Y#ah4E0bNKtB+2!S~Sonfl-O z6Jx&^cL&x{YVx_SOsaZILeK8Nt8oyFVjWI6duhe{;hJP_HJ|y(EHJUwo zBo`8Wau>`Qf{WRy(e=6+xo}mYNKMUY_|d#*c#<{r@>5rIL=w#w4P{E*)iXylQx$^q z7KwlV!JGw6rInpy&KQ-vy*Jt78x42zcH4z2)@lstQitmmDE5QopI}uQ_F?fO%-(#rV5~hET_b1Q@?y{PXBhSE6hb^W0>`+T)f$Fl)-u<^e65&*5~{sL{f12Ry%NPTl8Q zXpwy?10qM6XSgDpJbc9rJ3_{0ElAB;)IJZNf2E6Tb^pCHoX1Pj7#mJ0IAa-T!ARCR zgNOT%Vn+7-Bn2Agd^oIx^j|EWhq~M!URrh?I^s};$k~2AJgm_s_v_btJSXOMt1xDl NzX5TR%|oy%002YpW$gd}