Bitcoin Forum
May 24, 2024, 05:25:57 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Hardware wallets / Re: Krux DIY Hardware Wallet on: August 11, 2022, 01:04:03 PM
New firmware version 22.08.0 is released for Krux wallet (thanks to odudex) and it is now supporting three new devices the Maix Amigo, Maix Bit, and Maix Dock, along with  original M5StickV.
Two of this new devices Maix Amigo and Dock are much bigger, but they are easier to use with touchscreen and more enhancements.
One more important update is added support for SeedSigner’s new CompactSeed QR codes, and for BIP39 passphrases.
Maix Amigo price is currently around $50 but it's not easy to find it in stock; Maix Dock and Mix Bit are cheaper but they are more DIY devices.

Website is also updated with updated instructions:
https://selfcustody.github.io/krux/
https://github.com/selfcustody/krux/releases



Still a LOT of work to do before we get to that point.
Hey jreesun, do you know any webshops that have Maix Amigo device in stock?


Mouser does. Not sure about other shops. If you find others, I'll add them to the list here: https://selfcustody.github.io/krux/parts/#maix-amigo
2  Bitcoin / Hardware wallets / Re: Krux DIY Hardware Wallet on: August 11, 2022, 06:32:47 AM
Popping in to let everyone know that a new release of Krux is finally available:
https://github.com/selfcustody/krux/releases/tag/v22.08.0

It now includes support for the Maix Amigo, Maix Bit, and Maix Dock, and of course the existing M5StickV.

Hope you like it! And if not, file an issue Wink
Wow, it's great to see you continuing working on this project.
Especially with the broader hardware support now, I'm going to order something and play around with it.

Awesome, welcome aboard!

My ultimate goal with Krux is to have it become something like the Linux of hardware wallet firmware, an open-source device-agnostic signing "OS" you can install on any platform capable of running Micropython. For now, we're expanding the K210-based devices that it supports, but I hope to eventually shim out the MaixPy/K210-specific modules so we can port to other platforms and not be too locked-in to any one vendor. I've been eyeing ESP32 as a potential next target.

Still a LOT of work to do before we get to that point.
3  Bitcoin / Hardware wallets / Re: Krux DIY Hardware Wallet on: August 10, 2022, 08:56:58 PM
Popping in to let everyone know that a new release of Krux is finally available:
https://github.com/selfcustody/krux/releases/latest

It now includes support for the Maix Amigo, Maix Bit, and Maix Dock, and of course the existing M5StickV.

Hope you like it! And if not, file an issue Wink
4  Bitcoin / Hardware wallets / Re: Krux DIY Hardware Wallet on: April 03, 2022, 01:07:12 AM
Quote from: dkbit98
I saw you are cooking and preparing something for a while but I forgot to post updates in this topic.

Yes, I was waiting for the code to become more stable before I posted an update here. Unfortunately that took longer than I originally anticipated. Anyway, I appreciate everything you've done in here already. Smiley

One of the changes I made in response to a comment here was adding support for airgapped firmware updates via microSD. Although Krux doesn't store keys, I still didn't like that any firmware upgrade would require plugging the device in to flash the latest code. So, now, after you've initially flashed the firmware, any subsequent upgrades can be done by placing the new firmware and a corresponding signature file on a microSD card and plugging that into the device. On boot, Krux will verify the signature and prompt you to install the upgrade.

I've also been working on some more fun features to come, including support for "printing" your QR codes by streaming gcode to a CNC machine so you can mill them out of wood or metal.

Quote from: dkbit98
This looks much better and cleaner in github and I will finally have to power up my M5Stick device that is collecting dust and waiting for better times.
Instructions on website will help a lot in this process, and I will try to report in forum how everything tuned out in my case.

Sounds good, hope you like it!

Quote from: dkbit98
Interesting thing that I found out is that Krux will be able to work with Sipeed Maix Amigo devices soon, and they are based on RISC-V chips!

Yes, odudex on Github has been doing great work to port Krux over to the Maix Amigo and Maix Bit devices. See here for recent progress:
https://github.com/selfcustody/krux/discussions/108

Quote from: dkbit98
I think this would be first a RISC-V based bitcoin signing device... but can you say more about this?

The short version: Krux will run on any device that has a Kendryte K210 SoC. The K210 does indeed have 2 RISC-V cores. Here's some more info on it:
https://github.com/kendryte/kendryte-doc-datasheet/blob/master/en/001.md

The longer version:
Krux is primarily written in Python and is a [Micro]python project. However, it uses a wrapper around Micropython, called MaixPy (that I had to fork to add some more features for Krux to utilize), which was created by Sipeed to add support for the K210 and add additional, non-standard features to Micropython including OpenMV support, with drivers for interfacing with various camera sensors found in their devices.

So, for now, Krux can only run on K210 devices*. However, I hope for it to support other Micropython platforms in the future.

*or simulated ones. I did add a simulator recently so that Krux can be run on Linux and Mac, but I obviously don't recommend using it for real:
https://github.com/selfcustody/krux/tree/main/simulator
5  Bitcoin / Hardware wallets / Re: Krux DIY Hardware Wallet on: April 01, 2022, 06:34:43 PM
Hey everyone! Dropping in to announce that the first stable release of Krux is now out:
https://github.com/selfcustody/krux/releases/tag/v22.03.0

I created an organization on Github to house the project and its dependencies under. Hopefully the URL will now be easier to remember than my username...

I have also updated the website to include much more documentation on all of Krux's functionality, including guides for installing from a release or from source and using it in single-key or multisig wallets created with either Specter Desktop, Sparrow, or BlueWallet:

https://selfcustody.github.io/krux/

Enjoy!

PS: This isn't an April Fools joke Wink
6  Bitcoin / Hardware wallets / Re: Krux DIY Hardware Wallet on: October 19, 2021, 04:41:38 AM
Is it possible to optionally use it as a single sig device, in similar way like it's possible with Seed Signer device in settings?
Multi sig has many advantage but sometimes you want to avoid complications for whatever reason.

I have just added support for single-key wallets. After entering your mnemonic, you will be presented with a new screen asking if you want "Single-key" or "Multisig" before landing on the home menu. Note that you still need to use the coordinator software to create the single-key wallet and generate PSBTs for you; Krux continues to act only as a signer.

You'll want to pull down the latest code and do a full run through the steps: building the firmware, flashing the firmware, building the software (new step), and flashing the software.

If you run into any problems, feel free to file an issue on the repo or drop a message here. I'll try to check in on this thread more frequently.
7  Bitcoin / Hardware wallets / Re: Krux DIY Hardware Wallet on: October 12, 2021, 06:19:08 AM
Just to reiterate what was stated above, Krux was designed to be a hardware signer for multisig wallets, and relies on coordinator software (such as Specter Desktop or BlueWallet) to generate PSBTs that it can sign to send funds out. It isn't really a 'hardware wallet', it's much simpler.

so every time you turn it off from power you will wipe his memory, and you will have to import your key every time you turn it on.

This is inconvenient, but this was by design to decouple the hardware from the keys in a multisig so that:
1) you can have less hardware devices than there are keys in your multisig (saves money), and
2) you don't have to worry about safely storing your hardware devices in addition to physical backups of your keys, or have to worry about bit rot.

Basically, Krux is designed to be used with physical copies of your keys that you obtain from various geographic sites you have them stored at, hence all the different supported ways of inputting your mnemonic (as text, numbers, bitstrings, QR codes, etc.); I wanted a device I could use to input a key directly from a steel punch card without having to do a conversion, for example.

The QR code input method offers a compromise by making the 'login' process a lot faster (near-instant reads once you have the camera lens honed in), but it requires that you create one which isn't the safest thing to accomplish. To solve that, Krux itself can print one out for you when you attach a mini thermal printer to it (probably sounds more intimidating than it is! see here: https://github.com/jreesun/krux#printing-qrs). The downside to this is that you now have an extra copy of your mnemonic to safely store, but the upside is that you can always just burn it and make another. Alternatively, you could technically have the printed QR code be the only copy of your mnemonic, though I wouldn't suggest it since it could fade over time or if exposed to heat. If only there were a $50 laser printer one could use to etch a QR code into steel! Cheesy
8  Bitcoin / Hardware wallets / Re: Krux DIY Hardware Wallet on: July 28, 2021, 12:09:51 AM
There are obviously small differences in devices and batteries, but I guess in theory your code for Krux wallet could work perfectly fine even on Jade hardware wallet, and it is currently a bit cheaper than M5StickV.

Yes, I see what you mean! That would be a cool thing to test. If it works, that could be a good source of ~$40 devices if there ends up being limited availability of the M5StickV. It would also be a good way to continue supporting Blockstream's efforts Smiley

That said, there are quite a few distributors of the M5StickV that I thought I would list here. You don't have to buy it directly from the M5Stack shop. The average price across all of them is also around $40:

https://www.adafruit.com/product/4321
https://www.mouser.com/ProductDetail/Adafruit/4321
https://www.digikey.com/en/products/detail/m5stack-technology-co-ltd/K027/10492135
https://leeselectronic.com/en/product/169940-m5stick-ai-camera-kendryte-k210-risc-v-core-no-wifi.html
https://www.cytron.io/c-development-tools/c-fpga/p-m5stickv-k210-ai-camera-without-wifi
https://shop.pimoroni.com/products/m5stick-v-k210-ai-camera-without-wifi
https://www.okdo.com/p/m5stickv-k210-ai-camera-without-wifi/
9  Bitcoin / Hardware wallets / Re: Krux DIY Hardware Wallet on: July 27, 2021, 11:28:27 AM
Hey all, I'm the author of Krux. I noticed some traffic coming from here on GitHub and was pleasantly surprised to find this post.  Smiley Thank you, dkbit98, for the write-up!
Hi jreesun,
I am glad you found the source of traffic, joined Bitcointalk forum, and I hope you will stick around as we need more genuine users like you.

One question for you, have you checked Blockstream Jade hardware wallet and can you confirm it is using exactly the same M5StickV device as Krux wallet?
https://blockstream.com/jade/

Wow! I honestly had no idea that existed until now. There's certainly an uncanny resemblance, but upon closer inspection there do appear to be some (minor) differences:
1. Their case is (obviously) custom and isn't the same one that the M5StickV uses. Their case also appears to be longer, and the front button is in a different location.
2. The specs of the two devices are similar but seem to be very slightly different: the Jade has Bluetooth, the M5StickV does not. Also, their battery is 240mAh, whereas the M5StickV is 200mAh. Maybe this is why their case is longer?

Looking at their code, they don't seem to be using MaixPy at all (M5Stack's version of Micropython), but rather are building on top of the Espressif IoT Development Framework.

Their hardware folder contains this:
https://github.com/Blockstream/Jade/blob/master/hardware/Jade_v1_schematics.pdf

It says "M5 Bitcoin Pocket," so I'm guessing it's a custom M5 product that is obviously extremely similar to the M5StickV with minor differences?
10  Bitcoin / Hardware wallets / Re: Krux DIY Hardware Wallet on: July 27, 2021, 10:41:21 AM
Hey all, I'm the author of Krux. I noticed some traffic coming from here on GitHub and was pleasantly surprised to find this post.  Smiley Thank you, dkbit98, for the write-up!

I wanted to answer some questions that were brought up in this thread and shed more light on the project in general.

First of all, I'd like to be clear that this project isn't associated with the company (M5Stack) that makes the M5StickV. They make a bunch of embedded devices, of which the M5StickV is one. From what I gather, M5Stack is sort of like the Chinese for-profit version of the Raspberry Pi Foundation.

Krux is "just" custom firmware and software I wrote for the device to turn it into a hardware wallet. I was in the market for a DIY multisig device and came across cool projects like SeedSigner (for the Pi Zero) and Specter-DIY, but ultimately decided that I wanted to try making my own after I came across the M5StickV on Adafruit. It seemed ripe for being turned into a hardware wallet with all it had packed into it, especially for the price point ($30-$50 depending on which distributor you buy it from).

So, I got to work, used the embit (embedded bitcoin) micropython library for bitcoin-related logic, wrote an interface on top of it, and got my hands dirty making QR codes (and everything else) work.

This started as a side project that morphed into something I thought was pretty cool and had the potential to be more widely useful, so here we are. I made the repo public a few days ago and haven't had any audits done (not opposed, but I don't think I could afford it), let alone another software engineer's eyes. That's the reason for the scary-sounding disclaimer for now; I don't want my hobby project to be the reason someone loses their money. But it does work!

Quote
I never had a device with an OV7740 sensor but I think it'd take a while before someone can successfully scan a Qr code with its camera.
This is actually rather fast so long as the QR code is flat and not changing too rapidly. For some reference, it can handle reading the animated QR codes that Specter Desktop generates, which I believe change every 500ms. I did have to do some work here to speed things up and improve accuracy such as capturing in grayscale at a lower resolution and converting to a binary black/white image for processing. Fun problem to solve. The display shows the processed image, so you can see the world in black and white [insert maximalist joke here].

The more difficult part was making QR codes fit the tiny display and still be readable by other devices (webcams). It generates its own animated QR codes to solve for this. Alternatively, you can also hook up an Adafruit thermal printer to it and print out the QR codes to pack more data into them (thus generating fewer).

Printing is a useful feature in general: it lets you make physical backups of your seed phrase, print out signed PSBTs (that you could mail if you wanted), etc. There's a section on the README about it if anyone's interested. It adds to the cost, but just another $50.

Quote
Then again, there doesn't seem to be a way to zoom in on the pictures so I can't tell with any great detail how the finish of the shell actually looks but it does look like cheap plastic.
Not sure what your criteria are to consider something "cheap plastic," but it feels solid to me. You'd have to be trying to break it in order to break it. It seems to be two pieces (front and back) of injection molded plastic snapped and screwed together.

Quote
I am to lazy during summertime to load and install firmware with everything else on it and do some testing and reviews.
For anyone reading this, just want to mention that I added a Dockerfile to handle the process of building the firmware so that anyone with Docker and Python 3 installed should be able to do this now. Ideally, I would have liked for Docker to be the only requirement, but passing through USB serial devices from the host into Docker seems to be hard to do. So for now, Docker builds the firmware, and the Python scripts you invoke directly load the firmware (a binary file that resides in the Docker image) and the software (all contents under 'src').

Hope that helped. I'll check this thread periodically and try to answer what I can!
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!