bitceptron_iso

An air-gapped GUI suite for the coldest bitcoin custody.

Stars
3

bitceptron ISO

This is currently a work in progress. Our target is to build a suite of easy-to-use bitcoin tools concentrated on bridging the gap between technical rigor and usability, via commonsensical abstractions.

We are using Dioxus as our GUI.

Collaboration

If you want to be part of this project, please do let us know by sending an email to [email protected].

Usage

As the first part, we have started with tychentropy. You can throw an n-sided dice where n >= 2 and make entropy for your BIP39 mnemonic. You can mix your physical entropy with RNGs from ring and rand, two leading RNGs in rust ecosystem. Tychentropy also performs statistical tests (those which need at least 128 bits) on your entropy to see if there is any divergence from a random distribution those test can detect (By no means exhaustive).

You can download executables for Mac, Windows and Ubuntu Linux from the Releases page.

Build from source

Prerequisites

  1. Install rust if you have not already: https://www.rust-lang.org/tools/install
  2. Install npm: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm
  3. Install the tailwind css cli: https://tailwindcss.com/docs/installation

MacOS and Linux

  1. Install dioxus-cli by running the following command:
cargo install [email protected]
  1. Download this repository from github.
  2. Enter into the downloaded repository's root folder.
  3. Copy the contents of Dioxus_mac_linux.toml into Dioxus.toml.
  4. Open a terminal and run the following command in the root of the project to start the tailwind CSS compiler:
npx tailwindcss -i ./input.css -o ./assets/tailwind.css --watch
  1. To build bundled executables, open another terminal in the project root and run the following command:
dx bundle --release --platform desktop
  1. You can find the executables in the following path:
[repo root]/dist/bundle/

Windows

  1. Install dioxus-cli by running the following command:
cargo install [email protected]
  1. Download this repository from github.
  2. Enter into the downloaded repository's root folder.
  3. Copy the contents of Dioxus_windows.toml into Dioxus.toml.
  4. In Cargo.toml edit out the pre-release versioning in [package], [version] section, e.g, edit version = "0.0.0-alpha.1" to version = "0.0.0".
  5. Run the following command in the root of the project to start the tailwind CSS compiler:
npx tailwindcss -i ./input.css -o ./assets/tailwind.css --watch
  1. To build bundled executables run the following command:
dx bundle --release --platform desktop
  1. You can find the executables in the following path:
[repo root]/dist/bundle/

Development

  1. Install npm: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm
  2. Install the tailwind css cli: https://tailwindcss.com/docs/installation
  3. Open a terminal and run the following command in the root of the project to start the tailwind CSS compiler:
npx tailwindcss -i ./input.css -o ./assets/tailwind.css --watch
  1. Open another terminal in the project root and run the following command:
dx serve --hot-reload --platform desktop

TODO:

Overall

  1. Automate CI/CD for Mac/Linux/Windows bundling.

Tychentropy

  1. QR output for mnemonics. Not to scan but engrave.
  2. Side channel protection.
  3. Going constant-time is any good?
  4. Select datum instead of entering via keyboard.
  5. Maybe an option for a complete diehard test on RNGs for the truly paranoids (rational beings).