If you want to integrate the BitBox02 into your project or contribute to the codebase, please find the necessary resources below.
The BitBox02 hardware wallet is a USB device which securely stores cryptographic keys (such as bitcoin private keys) and signs transactions/messages with that key. Signing with the key requires physical interaction with the device (i.e. no automatic or remote signing possible). The BitBoxApp is the native app that communicates with the BitBox02. However the BitBox02 can integrate with various third party applications. It can communicate with applications running in a browser (or browser extensions) using WebHID or using the BitBoxBridge. The BitBox02 can also communicate with third-party bitcoin wallets using the Bitcoin Hardware Wallet Interface (HWI).
OLED display: displays important information to the user. Such as bitcoin transaction details or a private key.
microSD card connector: used to backup private keys onto a microSD card.
Touch sensors: Used to interact with the device. Interaction with the device is required for important tasks, such as signing a bitcoin transaction.
Secure chip (ATECC608B): hardens the user-chosen password by combining it with a key stored on the secure chip. Also limits the number of key derivations using a monotonic counter enforced by the secure chip.
Microcontoller (ATSAMD51J20A): runs the open source firmware of the BitBox02 and communicates with the other on-board components.
Our open source code is hosted on Github. There you can find our three main repositories:
The code that runs on the BitBox02 hardware wallet. Written in C and Rust.
Native desktop/mobile app for the BitBox02. Written with a Go backend and TypeScript/JavaScript frontend.
Application that allows the BitBox02 to communicate with web wallets. Written in Rust.
If you want to integrate the BitBox02 into your native desktop/mobile client, please see our Rust, Python and Go libraries:
For Rust projects, please check out our Rust library:
The BitBox02 also supports HWI, which is a python library and command line tool for interacting with hardware wallets.
If you want to integrate the BitBox02 into a web wallet, please see our TypeScript NPM library:
API playground:
Here are some examples of previous integrations with web wallets.
Ethereum web wallet
Browser extension wallet (MetaMask fork) which allows you to connect to Ethereum based Dapps
Lightweight Cardano wallet
Individual contributions to the code base are also welcome. If you want to contribute to the BitBox codebase, please read our contribution guidelines
Whether you are integrating the BitBox02 into your wallet or making a contribution, it may be useful to have a developers version of BitBox02 for testing.
The developers version of the BitBox02 can load unsigned firmware, which is particularly useful if you plan on making modifications to the firmware so you can test your changes.
If you would like one, please reach out to us