Skip to content

Commit

Permalink
Merge pull request #498 from odudex/tr_miniscript
Browse files Browse the repository at this point in the history
Taproot Miniscript
  • Loading branch information
odudex authored Feb 21, 2025
2 parents 2d2a0df + 2a6181d commit 93e7ee6
Show file tree
Hide file tree
Showing 493 changed files with 4,432 additions and 1,565 deletions.
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
# Changelog 25.02.0 - February 2025

### Taproot and WSH Miniscript support

- Provides an indented visualization of Miniscript for easier inspection.
- Includes policy and cosigner verification.
- Supports custom derivations.
- Detects unspendable internal keys in Taproot.
- Contains several UI and settings modifications.

### More Intuitive Tamper Check
The Tamper Check Flash Hash now appears immediately after the Tamper Check code is created, clarifying its purpose and expected output.

### More Camera Modes
A zoomed camera mode is available for all cameras, and an anti-glare mode has been added to the GC0328 camera.

### Display Customization Options
Display orientation on Yahboom and WonderMV devices can now be flipped.

### SD Card PSBT Signing Preserves All Fields
When signing via SD cards, all fields in a PSBT—including signatures from other keys—are preserved. This facilitates workflows across multiple devices and locations by allowing a single PSBT file to be sequentially signed by different devices.

### Other Bug Fixes and Optimizations
- Stored mnemonics are now sorted alphabetically.
- Flash Map drawing errors have been corrected.
- Address scanning for Blue Wallet has been fixed following its export format change.
- The use of “h” to indicate hardened derivation path nodes has been standardized.
- A faster algorithm for double mnemonic calculation has been introduced.
- PSBT change detection has been made more restrictive.


# Changelog 24.11.1 - November 2024

### Security Fix
Expand Down
20 changes: 10 additions & 10 deletions docs/getting-started/features/QR-transcript-tools.en.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
When you export a mnemonic, encrypted mnemonic or a generic text QR code, alternative visualization modes will be available. Swipe left :material-gesture-swipe-left: or right :material-gesture-swipe-right: to change modes, or if your device doesn't have a touchscreen, press the `PAGE` buttons. Find transcribe templates [here](https://github.com/odudex/krux_binaries/tree/main/templates).

### Standard Mode
<img src="../../../img/maixpy_m5stickv/standard-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo/standard-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/standard-qr-code-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/standard-qr-code-300.png" align="right" style="width: 16%;">

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

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

### Lines Mode
<img src="../../../img/maixpy_m5stickv/lines-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo/lines-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/lines-qr-code-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/lines-qr-code-300.png" align="right" style="width: 16%;">

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

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

### Zoomed Regions Mode
<img src="../../../img/maixpy_m5stickv/zoomed-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo/zoomed-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/zoomed-qr-code-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/zoomed-qr-code-300.png" align="right" style="width: 16%;">

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

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

### Highlighted Regions Mode
<img src="../../../img/maixpy_m5stickv/regions-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo/regions-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/regions-qr-code-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/regions-qr-code-300.png" align="right" style="width: 16%;">

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

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

### Grided Mode
<img src="../../../img/maixpy_m5stickv/grided-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo/grided-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/grided-qr-code-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/grided-qr-code-300.png" align="right" style="width: 16%;">

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.

Expand Down
8 changes: 4 additions & 4 deletions docs/getting-started/features/printing.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ warning-printer.en.txt

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](../../parts.md/#optional-ttl-serial-thermal-printer) page for supported printers.

<img src="../../../img/maixpy_amigo/print-qr-printing-150.png">
<img src="../../../img/maixpy_m5stickv/print-qr-printing-125.png">
<img src="../../../img/maixpy_amigo/print-qr-printing-300.png" style="width: 16%;">
<img src="../../../img/maixpy_m5stickv/print-qr-printing-250.png" style="width: 13%;">

<video width="430" controls>
<source src="../../../img/printing-qr.mp4" type="video/mp4"></source>
Expand All @@ -20,8 +20,8 @@ Krux has the ability to print mnemonic backup (Words, Numbers, Tiny Seed templat
</video>


<img src="../../../img/maixpy_m5stickv/print-qr-prompt-125.png" align="right">
<img src="../../../img/maixpy_amigo/print-qr-prompt-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/print-qr-prompt-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/print-qr-prompt-300.png" align="right" style="width: 16%;">

Once a thermal printer and driver have been enabled in [Krux settings](../settings.md/#thermal), 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?`.

Expand Down
36 changes: 18 additions & 18 deletions docs/getting-started/features/tools.en.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,51 @@
Here are some useful tools that are available as soon as Krux starts! These are offered as a complement to managing your device and wallets.

<img src="../../../img/maixpy_amigo/tools-options-150.png">
<img src="../../../img/maixpy_m5stickv/tools-options-125.png">
<img src="../../../img/maixpy_amigo/tools-options-300.png" style="width: 16%;">
<img src="../../../img/maixpy_m5stickv/tools-options-250.png" style="width: 13%;">

### Check SD Card
<img src="../../../img/maixpy_m5stickv/check-sd-card-125.png" align="right">
<img src="../../../img/maixpy_amigo/check-sd-card-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/check-sd-card-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/check-sd-card-300.png" align="right" style="width: 16%;">

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 :material-gesture-swipe-up: or down :material-gesture-swipe-down: to navigate between the screens if your device has a touchscreen.

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

### Print Test QR
<img src="../../../img/maixpy_m5stickv/print-test-qr-125.png" align="right">
<img src="../../../img/maixpy_amigo/print-test-qr-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/print-test-qr-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/print-test-qr-300.png" align="right" style="width: 16%;">

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

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

### Create QR Code
<img src="../../../img/maixpy_m5stickv/create-qr-code-125.png" align="right">
<img src="../../../img/maixpy_amigo/create-qr-code-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/create-qr-code-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/create-qr-code-300.png" align="right" style="width: 16%;">

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

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

### Descriptor Addresses (Wallet Sans Key)
<img src="../../../img/maixpy_m5stickv/descriptor-addresses-125.png" align="right">
<img src="../../../img/maixpy_amigo/descriptor-addresses-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/descriptor-addresses-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/descriptor-addresses-300.png" align="right" style="width: 16%;">

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.

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

### Flash Tools
<img src="../../../img/maixpy_m5stickv/flash-tools-125.png" align="right">
<img src="../../../img/maixpy_amigo/flash-tools-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/flash-tools-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/flash-tools-300.png" align="right" style="width: 16%;">

Tools to inspect the content of device's flash memory and clear user's area.

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

#### Flash Map
<img src="../../../img/maixpy_m5stickv/flash-map-125.png" align="right">
<img src="../../../img/maixpy_amigo/flash-map-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/flash-map-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/flash-map-300.png" align="right" style="width: 16%;">

Flash map indicates which memory blocks (4086 Bytes each) are empty. Memory is separated in two regions: Firmware and User's Data. White or colored blocks contain data, while grey blocks are empty.

Expand All @@ -60,16 +60,16 @@ This is an interesting tool to visualize the effects of filling the memory with
More information on [Tamper Detection page](tamper-detection.md).

#### Erase User's Data
<img src="../../../img/maixpy_m5stickv/erase-data-125.png" align="right">
<img src="../../../img/maixpy_amigo/erase-data-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/erase-data-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/erase-data-300.png" align="right" style="width: 16%;">

This option permanently removes all stored encrypted mnemonics, settings and `TC Code` 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](https://www.hivesystems.com/blog/are-your-passwords-in-the-green).

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

### Remove Mnemonic
<img src="../../../img/maixpy_m5stickv/load-mnemonic-storage-options-125.png" align="right">
<img src="../../../img/maixpy_amigo/load-mnemonic-storage-options-150.png" align="right">
<img src="../../../img/maixpy_m5stickv/load-mnemonic-storage-options-250.png" align="right" style="width: 13%;">
<img src="../../../img/maixpy_amigo/load-mnemonic-storage-options-300.png" align="right" style="width: 16%;">

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](./encrypted-mnemonics.md).

Expand Down
Loading

0 comments on commit 93e7ee6

Please sign in to comment.