diff --git a/en/getting-started/features/QR-transcript-tools/index.html b/en/getting-started/features/QR-transcript-tools/index.html index ad98ddcf3..697f45f4a 100644 --- a/en/getting-started/features/QR-transcript-tools/index.html +++ b/en/getting-started/features/QR-transcript-tools/index.html @@ -1125,7 +1125,7 @@

Transcribing QR Codes

-

When you export a mnemonic, encrypted mnemonic or a generic text QR code, alternative visualization modes will be available. To change modes swipe sideways, or press Page buttons if the device doesn't have touchscreen. Find transcribe templates here.

+

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.

Standard Mode

diff --git a/en/getting-started/features/tools/index.html b/en/getting-started/features/tools/index.html index f7318efdd..a87325fcb 100644 --- a/en/getting-started/features/tools/index.html +++ b/en/getting-started/features/tools/index.html @@ -1143,7 +1143,7 @@

-

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

+

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

Remove Mnemonic

diff --git a/en/getting-started/usage/loading-a-mnemonic/index.html b/en/getting-started/usage/loading-a-mnemonic/index.html index 82c9ee46e..c9cc97a15 100644 --- a/en/getting-started/usage/loading-a-mnemonic/index.html +++ b/en/getting-started/usage/loading-a-mnemonic/index.html @@ -1347,7 +1347,7 @@

Confirm Mnemonic WordsPassphrase

-

After confirming the mnemonic words, you can optionally choose to type or scan a BIP-39 passphrase. You can create a QR code from your passphrase offline in Tools section.

+

After confirming the mnemonic words, you can optionally choose to type or scan a BIP-39 passphrase. When typing, swipe left or right to change modes if your device has a touchscreen. For scanning, you can also create a QR code from your offline passphrase in Tools.

Fingerprint

diff --git a/getting-started/features/QR-transcript-tools/index.html b/getting-started/features/QR-transcript-tools/index.html index 71d4c7d10..eba7dfd8a 100644 --- a/getting-started/features/QR-transcript-tools/index.html +++ b/getting-started/features/QR-transcript-tools/index.html @@ -1125,7 +1125,7 @@

Transcribing QR Codes

-

When you export a mnemonic, encrypted mnemonic or a generic text QR code, alternative visualization modes will be available. To change modes swipe sideways, or press Page buttons if the device doesn't have touchscreen. Find transcribe templates here.

+

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.

Standard Mode

diff --git a/getting-started/features/tools/index.html b/getting-started/features/tools/index.html index e33c7b4c4..5024ecbd0 100644 --- a/getting-started/features/tools/index.html +++ b/getting-started/features/tools/index.html @@ -1143,7 +1143,7 @@

-

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

+

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

Remove Mnemonic

diff --git a/getting-started/usage/loading-a-mnemonic/index.html b/getting-started/usage/loading-a-mnemonic/index.html index 2f667f0cc..bab3b52a5 100644 --- a/getting-started/usage/loading-a-mnemonic/index.html +++ b/getting-started/usage/loading-a-mnemonic/index.html @@ -1347,7 +1347,7 @@

Confirm Mnemonic WordsPassphrase

-

After confirming the mnemonic words, you can optionally choose to type or scan a BIP-39 passphrase. You can create a QR code from your passphrase offline in Tools section.

+

After confirming the mnemonic words, you can optionally choose to type or scan a BIP-39 passphrase. When typing, swipe left or right to change modes if your device has a touchscreen. For scanning, you can also create a QR code from your offline passphrase in Tools.

Fingerprint

diff --git a/search/search_index.json b/search/search_index.json index 69d1c4618..6a8d5b859 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/#why-are-the-buttons-on-my-maix-amigo-in-the-wrong-order-why-is-my-amigo-screen-displaying-the-wrong-colors","title":"Why are the buttons on my Maix Amigo in the wrong order? Why is my Amigo screen displaying the wrong colors?","text":"

Some Amigo screens have inverted X coordinates while others don\u2019t. If you notice that the buttons on keypad input screens appear to be in the wrong order, please go to Settings > Hardware > Display and change the value of Flipped X Coordinates which should correct the issue.

Others have found that there are issues with the colors displayed in the interface and camera preview. To fix this we have two options in Settings > Hardware > Display, BGR Colors and Inverted Colors, test with them until the colors appear to be correct on your device.

"},{"location":"faq/#why-doesnt-my-maix-amigo-touchscreen-work-with-v24030-if-it-worked-fine-with-v23091","title":"Why doesn't my Maix Amigo touchscreen work with v24.03.0 if it worked fine with v23.09.1?","text":"

We added IRQ 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":"faq/#why-isnt-my-device-charging-or-being-recognized-when-connected-to-the-computers-usb","title":"Why isn't my device charging or being recognized when connected to the computer's USB?","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 their USB ports. Below are the expected behaviors:

"},{"location":"faq/#usb-a","title":"USB-A:","text":"

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.

"},{"location":"faq/#usb-c","title":"USB-C:","text":""},{"location":"faq/#why-isnt-my-m5stickv-device-being-recognized-and-charged-when-connected-to-the-computers-usb-c","title":"Why isn't my M5stickV device being recognized and charged when connected to the computer's USB-C?","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":"faq/#why-does-my-krux-device-randomly-freeze-or-restart-when-connected-to-the-computer","title":"Why does my Krux device randomly freeze or restart when connected to the computer?","text":"

Windows is known to have issues with the 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":"faq/#why-wont-my-linux-os-list-a-serial-port-after-connecting-my-device","title":"Why won't my Linux OS list a serial port after connecting my device?","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":"faq/#my-device-didnt-reboot-after-flashing-the-firmware-and-when-i-turned-it-off-and-on-again-it-just-stayed-blank-without-showing-anything-on-the-screen-what-should-i-do","title":"My device didn't reboot after flashing the firmware and when I turned it off and on again, it just stayed blank without showing anything on the screen. What should I do?","text":"

Check if the downloaded file matches the device, this can also occur due to data corruption. Try downloading binaries again. You can 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":"faq/#what-are-all-the-features-available-what-are-the-additional-features-of-the-test-or-beta-version-is-there-an-android-app","title":"What are all the features available? What are the additional features of the Test or Beta version? Is there an Android app?","text":"

For official releases you will find all the features detailed here on the Getting Started page with a brief summary on the Navigation Overview page. The latest and most experimental features, which we sometimes share on our social media, can be found only in the test (beta) repository. Only official releases are signed, Test or Beta is just for trying new things and providing feedback. Krux Android app is available as an apk on the test (beta) repository (requires Android 6.0 or above).

"},{"location":"faq/#why-does-krux-show-an-xpub-for-a-segwit-address","title":"Why does Krux show an xpub for a segwit address?","text":"

The xpub that Krux displays follows the bitcoin core descriptors spec and includes key origin and derivation info that, in theory, makes zpubs (and ypubs) unnecessary if the wallet software being shown this extra information can parse it.

From the spec:

Every public key can be prefixed by an 8-character hexadecimal fingerprint plus optional derivation steps (hardened and unhardened) surrounded by brackets, identifying the master and derivation path the key or xpub that follows was derived with.

However, in practice not all wallet software supports this extended format, so Krux still provides a zpub as a fallback.

For more information, check out https://outputdescriptors.org/.

"},{"location":"faq/#why-isnt-krux-scanning-my-qr-code","title":"Why isn't Krux scanning my 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. M5stickV and Amigo also has an anti-glare mode to better capture images from high brightness screens or with incident light, to enable/disable the anti-glare just press the PAGE button while scanning.

"},{"location":"faq/#why-am-i-getting-an-error-when-i-try-to-scan-a-qr-code","title":"Why am I getting an error when I try to scan a 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:

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

For Wallet output descriptor:

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

For PSBT (Partially Signed Bitcoin Transactions):

  1. Base43, Base58, and Base64-encoded bytes
  2. Raw Bytes
  3. 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":"faq/#why-cant-my-computer-read-the-qr-code-that-krux-displays","title":"Why can't my computer read the QR code that Krux displays?","text":"

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. 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. 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":"faq/#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.

Here is some supported microSD cards, and here is the MaixPy FAQ explaining Why my micro SD card cannot be read.

"},{"location":"faq/#why-insert-an-sd-card-into-my-device-what-is-it-for-does-it-save-something","title":"Why insert an SD card into my device? What is it for? Does it save something?","text":"

SD card use is optional, most people use Krux only with QR codes. But you can use SD card to to upgrade the firmware, save settings, cnc/file, QR codes, XPUBs, encrypted mnemonics, and to save and load PSBTs, messages and wallet output descriptors.

"},{"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 Maix Amigo comes 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 firmware is continuously evolving to become a Swiss Army knife for self-custody, offering an array of features to support transactions and backups in a user-friendly and airgapped environment.

To learn more about Krux, check out Getting Started.

"},{"location":"parts/","title":"Devices and Part 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 Price avg. US$50 US$55 US$35 US$35 US$60 Screen size / resolution 1.14\" / 135*240 3.5\" / 320*480 2.4\" / 240*320 2.4\" / 240*320 2\" / 240*320 Touchscreen Capacitive Capacitive Camera OV7740 OV7740 rearGC0328 front GC0328 OV2640 orOV5642 OV2640 Battery 200mAh 520mAh Requirements None None Rotary encoder 3D printed case SolderingAssembly Buttons 3D printed case SolderingAssembly None Warnings Camera has lens distortion Micro USB

: 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 FAQ

: 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:

"},{"location":"parts/#maix-amigo","title":"Maix Amigo","text":"

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

"},{"location":"parts/#yahboom-k210-module","title":"Yahboom k210 module","text":"

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

"},{"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:

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

"},{"location":"parts/#other-parts","title":"Other Parts","text":""},{"location":"parts/#usb-c-charge-cable","title":"USB-C Charge Cable","text":"

This will be included with the M5StickV and Maix Amigo that you purchase from one of the distributors above. It will be necessary to power and charge the device 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 FAQ for more info. The size of the SD card isn't important; anything over a few megabytes will be plenty.

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

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 thermal printers may be compatible, but currently, the Goojprt QR203 (easily found on AliExpress) has the best support. 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, as explained in this Adafruit printer tutorial. You will need to connect the device's Tx to the printer's Rx and ground. The printer requires a dedicated power supply, typically with an output of 5 to 9V 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 the device, you will need a conversion cablewith a 4-pin female Grove connector on one end (to connect to the device) and 4-pin male jumpers on the other end (to connect to the printer). 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.

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

Krux supports different languages. If you missed a language or saw a awkward translation, open an issue or make a PR! You can also make a difference by translating this documentation!

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

Reach out our Telegram group or X profile 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.

Thank you!

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

Krux is open-source Bitcoin signing firmware for devices with the K210 chipset.

Signing operations in Krux are done offline via QR code or via SD card. You can create/load your BIP-39 mnemonic, or import a wallet output 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 does not come with its own desktop wallet software. Instead, you can use Krux with third-party wallet coordinators to create/manage wallets, and send transactions from your online computer or mobile device while keeping your keys offline. Krux was built to be vendor agnostic and works with many popular wallet coordinators, including:

"},{"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. Below is a breakdown of the options you can change:

"},{"location":"getting-started/settings/#bitcoin-network","title":"Bitcoin - 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), its a simpler method where encryption data blocks are encrypted individually. 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 as 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, ensuring chaining.

Encryption 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/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 and Inverted Colors. For more info see FAQ

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

You can set up a 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. Consult the part list page 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/#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. To change modes swipe sideways, or press Page buttons if the device doesn't have touchscreen. 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. Be careful to don't damage your screen with pen and markers, use an insulating plastic tape or film to protect the device if you use this method.

"},{"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 "},{"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/printing/","title":"Printing","text":"

Krux has the ability to print all QR codes it generates, including mnemonic, xpub, wallet backup, and signed PSBT, via a locally-connected thermal printer over its serial port. Consult the part list page for supported printers.

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

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

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

"},{"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.

"},{"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 a text input to create, print or transcript a QR code that can be later used as an encryption key or as a passphrase.

"},{"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-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 Linux and Windows.

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

Download the installer by choosing the right asset for your operating system from our Github releases page:

Operational System File Windows krux-installer_0.0.13.exe* Debian-based: Ubuntu, PopOS, etc... krux-installer_0.0.13_amd64.deb* RedHat-based: Fedora, etc... krux-installer-0.0.13.x86_64.rpm* Any linux distribution krux-installer-0.0.13.AppImage* Package for Archlinux on AUR. krux-installer-bin"},{"location":"getting-started/installing/from-gui/#verify-files","title":"Verify files","text":"

If you trust the project developers, you can skip to install:

\u26a0\ufe0f TIP: This step helps detect if any unauthorized modifications were made between github and your local computer.

"},{"location":"getting-started/installing/from-gui/#integrity","title":"Integrity","text":"System Commands Windows (powershell)
# Compare this output:\n(Get-FileHash 'krux-installer_0.0.13.exe').Hash\n\n# With this:\nGet-Content 'krux-installer_0.0.13.exe.sha256.txt'\n
Debian-based
sha256sum --check ./krux-installer_0.0.13_amd64.deb.sha256.txt\n
RedHat-based
sha256txt --check ./krux-installer-0.0.13.x86_64.rpm.sha256.txt\n
Any Linux distribution
sha256sum --check ./krux-installer-0.0.13.AppImage.sha256.txt\n
"},{"location":"getting-started/installing/from-gui/#authenticity","title":"Authenticity","text":"

You will need have GPG installed. Most Linux already have this, but on Windows we recommend installing GPG4Win.

Once installed, run this command to retrieve the developer's key:

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

Then you can verify:

System Command Windows (powershell) gpg --verify krux-installer_0.0.13.exe.sig Debian-based gpg --verify ./krux-installer_0.0.13_amd64.deb.sig RedHat-based gpg --verify ./krux-installer-0.0.13.x86_64.rpm.sig Any Linux distribution gpg --verify ./krux-installer-0.0.13.AppImage.sig

\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/#install","title":"Install","text":"

Each system require different steps to install:

System Steps Windows