A WIP development kit in Rust for microcontroller bitcoin wallet signers (mainly aimed to ESP32 or STM32) based on selfcustody/krux and odudex/kern for support microcontroller hardware signers with rust.
The motivation came from a past discussion that maybe could not be accesible
based on past proposition to include nostr features on firmware (maybe could not be available for public and summarized here) as well
personal shares with bitcoin/rust developer friends:
Should a hardware device support signing Nostr events? Definitely.
Should Krux? I think it could make sense (if you view Krux as firmware for hardware signing in general), but not in its current form due to all the Bitcoin-specific assumptions being made about wallets, receive addresses, PSBTs, etc.
The way I see it, there are 3 options:
- Add support for Nostr in the existing UI, but wrap a bunch of places in
if is_nostr()style checks to hide or show certain UI elements (e.g.,Scan Address,Wallet,Sign PSBT, etc. don't make sense to show if using a Nostr key, andShow Nostr public key,Sign Nostr eventdon't make sense if using a Bitcoin key)- Fork Krux, rip out the Bitcoin stuff entirely, and focus the fork on being exclusively a Nostr signer
- Don't fork Krux, but redesign it such that it can support different use cases or cryptocurrencies / elliptic curves.
What do others think?
Jeff Sun, Krux's creator
In any way KDK wants to compete with Kern or
Krux, neither to redesign some basic
aspects of krux, almost following a mix of Option 1 and Option 3:
- keep based-bitcoin firwamre
masterbranch could acceptbitcoin-relatedPRs as features, except altcoins (i.e.,nostr,liquid,pgp,crypto-primitivescould be accepted depending o context and review) -- they could sharetraits,enums,structsandmethodswith different parameters (e.g:nostrandschnoor)
⚠️ Experimental. This software has not been audited. Do not use it with real funds. SeeSECURITY.md.
git clone https://github.com/qlrd/kdk.gitcargo testTo see sample examples:
cargo run --example <example_name> # on crates/kdk-*/examplesIt's even have crates for microcontrollers, for now just some primitives to
build with (rust-bitcoin/bdk if applicable) in future while waiting for
microcontrollers come.
- wallet crate
- sign crate
- ...
- STM-32 crate
- ESP32-* crate
- integration tests (see bornal)
MIT — see LICENSE.