Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
50016e1
load taproot miniscript descriptors
odudex Dec 17, 2024
8f7bd31
refine taproot miniscript descriptor detection
odudex Dec 17, 2024
d10b979
adapt PSBT signature checks to taproot miniscript
odudex Dec 19, 2024
db8981c
taproot miniscript refactor
odudex Dec 19, 2024
62c44c8
fix docstring of miniscript script type selection menu
odudex Dec 19, 2024
4858868
don't add cosigners to taproot single sig policy
odudex Dec 20, 2024
c2d5360
add taproot_key_sig field to Embit
odudex Dec 22, 2024
f6dd885
Merge branch 'develop' into tr_miniscript
odudex Dec 24, 2024
7e117a3
TR miniscript - show PSBT fingerprints when signing and descriptor is…
odudex Dec 25, 2024
d467330
preserve all PSBT fields when signing with SD
odudex Dec 26, 2024
e4d6530
bugfix on identification of taproot miniscript descriptors
odudex Dec 30, 2024
136a346
tests: adapting to 3 types of policy
odudex Dec 30, 2024
e9574e2
add some wallet and descriptor tests
odudex Dec 31, 2024
eeec7df
path mismatch only checks matching key
odudex Jan 3, 2025
965dbd7
wallet descriptor loading - highlight loaded key among cosigners
odudex Jan 3, 2025
2f4d972
miniscript descriptos vis - fix fingerprint and xpubs correlation
odudex Jan 3, 2025
bbb1d4d
miniscript - allow custom derivations
odudex Jan 5, 2025
25fc021
detail wallet descriptor attributes while loading
odudex Jan 6, 2025
082d51e
return path mismatch hardened char from h to '
odudex Jan 6, 2025
9409bc8
enable tap miniscript signing via QR code
odudex Jan 6, 2025
fbb747d
better check custom derivations
odudex Jan 7, 2025
7c28041
miniscript related lint refactors
odudex Jan 7, 2025
0c46f9e
custom derivations - add translations
odudex Jan 7, 2025
a1d74b9
wallet customization bugfix
odudex Jan 8, 2025
8e429b3
tap miniscript - better identify Liana taptree only scripts
odudex Jan 9, 2025
0a47a13
tap miniscript - tap tree only adjusts
odudex Jan 9, 2025
9fe40fa
tap miniscript - tap tree only adjusts II
odudex Jan 9, 2025
8a57100
Tap miniscript - Check NUMS in case internal key is disabled
odudex Jan 10, 2025
87ee6ba
tap miniscript - fix broken tests
odudex Jan 10, 2025
ce1816b
tap miniscript - update translations
odudex Jan 10, 2025
33e74a7
better reference BIP341 NUMS example
odudex Jan 11, 2025
e3a6027
tap miniscript - add taproot_sigs field to QR Code exported PSBTs
odudex Jan 11, 2025
5251d10
update beta version
odudex Jan 11, 2025
298bd53
bugfix - confusion with "h" and "'"
odudex Jan 11, 2025
8e99690
use Embit's Descriptor.owns() to detect slef-transfer
odudex Jan 12, 2025
948d064
tap miniscript - add deterministic chain_code for provably unspendabl…
odudex Jan 13, 2025
be2f10b
add translation to "provably unspendable"
odudex Jan 14, 2025
3a96534
better fit loading descriptors at the screen
odudex Jan 14, 2025
03cd720
add miniscript indented view
odudex Jan 15, 2025
9c22c7a
miniscript indentation adjust
odudex Jan 15, 2025
ef6f05d
Merge branch 'develop' into tr_miniscript
odudex Jan 17, 2025
22d774e
Tests that fail for BlueWallet-v7.0.7 upper-cased addresses
jdlcdl Jan 20, 2025
4bd91fa
one more example of uppercase bech32
jdlcdl Jan 20, 2025
9e4c928
uppercased address might be bech32
jdlcdl Jan 20, 2025
0e25c9c
Merge pull request #47 from jdlcdl/verify_bw_addy_upper
odudex Jan 20, 2025
80e1aa8
fix tests - multisig with no descriptor change
odudex Jan 20, 2025
f972dbd
add zoom mode to QR scanning
odudex Jan 21, 2025
b550b34
zoomed mode tests
odudex Jan 21, 2025
46f5a5c
tests for miniscript indenter
odudex Jan 23, 2025
7e3e04f
change binary grid scan camera mode to zoomed
odudex Jan 23, 2025
749c905
camera zoomed mode translations
odudex Jan 23, 2025
596c9e0
add miniscript wallet tests
odudex Jan 23, 2025
bf074ba
add TR provably unspendable tests
odudex Jan 24, 2025
781e54c
add wsh miniscript PSBT tests
odudex Jan 24, 2025
9f4aad8
allow flip display orientation on Yahboom and WonderMV
odudex Jan 25, 2025
bd74c10
display flipped orientation - translations
odudex Jan 25, 2025
8bb54c0
flipped orientation - UI bugfixes
odudex Jan 27, 2025
c9c1b5d
PSBT tests - add simple TR miniscript cases
odudex Jan 27, 2025
5b9b5c8
PSBT tests - add TR tap tree cases
odudex Jan 28, 2025
cacd1f7
Embit and tests update - reproducible tap tree signatures
odudex Jan 29, 2025
7159ff9
merge reproducible PSBTs and psbtview updates on custom Embit
odudex Jan 31, 2025
8b6c32a
standardize "h" use in hardened nodes
odudex Jan 31, 2025
f0bcfa1
add tests - miniscript loading UI
odudex Jan 31, 2025
0b31a95
add UI test for custom derivation
odudex Feb 2, 2025
d8d89cb
BinaryGrid refactor
odudex Feb 3, 2025
bf18531
add PSBT tests
odudex Feb 3, 2025
edd3024
add PSBT tests - wsh tr miniscript PSBTs vs wallets discrepancies
odudex Feb 7, 2025
8626c05
refactor pages
odudex Feb 7, 2025
ed8adb9
tap miniscript indentation change
odudex Feb 7, 2025
2fcb645
use Embit's NUMS_PUBKEY instead of recreating it on Krux code
odudex Feb 10, 2025
282c167
double mnemonic - purely numeric calcs
odudex Feb 12, 2025
02bbe5e
double mnemonic - numeric calcs optimization
odudex Feb 12, 2025
0026baf
adjust wallet descriptor drawing on small screens
odudex Feb 14, 2025
39df7df
docs - start adding miniscript content
odudex Feb 14, 2025
988079c
docs - update images' resolution
odudex Feb 14, 2025
dbf6a7b
docs - update images' resolution II
odudex Feb 14, 2025
c454a6a
docs coordinator - add brief info about Liana
odudex Feb 15, 2025
2e9c5f3
default descriptor QR to PMofN in case it was loaded from SD
odudex Feb 17, 2025
dc5f97d
docs update on descriptors, miniscript and double mnemonics
odudex Feb 17, 2025
844e19b
update changelog
odudex Feb 20, 2025
2a6181d
Merge branch 'develop' into tr_miniscript
odudex Feb 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
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