The goal of this project is to provide an affordable, easy-to-build hardware wallet that uses QR code for secure transaction. Our aim is to enable everyone to manage digital assets safely.
The current development is based on the ESP32-S3 MCU, which has enough processing power to handle real-time QR code scanning, making it ideal for a QR-based wallet client.
-
MCU
MCU Support Test ESP32-S3 ✅ ✅ ESP32-S2 ✅ - Specification: Must have PSRAM and at least 8MB flash.
-
Camera
Camera Support Test OV2640 ✅ ✅ OV3660 ✅ GC0308 ✅ GC032A ✅ -
Screen
Screen Support Test >= 240(W)*320(H)
✅ 240(W)*320(H)
✅ ✅ -
LCD
-
LCD Support Test ST7735 ST7789 ✅ ✅ ST7796 ILI9341 SSD1306 ✅ NT35510 ✅ GC9A01
-
-
Touch Panel
-
TOUCH Support Test CST816S ✅ FT5X06 ✅ ✅ FT6X36 ✅ ✅ GT1151 ✅ GT911 ✅ TT21100 ✅
-
-
-
Custom Bootloader
-
Multi qr-code input
-
Ethereum Support (EVM chains)
- Feature
- Legacy Transactions
- Access List Transactions (EIP-2930)
- Fee Market Transactions (EIP-1559)
- Blob Transactions (EIP-4844)
- Sign Personal Message
- Sign Typed Data
- Sign Typed Data V3
- Sign Typed Data V4
- Sign Permit
- Wallet
- MetaMask
- imToken
- Rabby
- Feature
-
Bitcoin Support
- Bitcoin (SegWit)
This program consists of two parts:
- Hardware Configuration: QR-Hardware-Wallet-Peripherals
- Main Program: QR-Hardware-Wallet (this repository)
Steps to Run
1. Hardware Peripheral Configuration (Run Once)
- Fork QR-Hardware-Wallet-Peripherals.
- Modify peripherals.h based on your dev board configuration.
- Compile and flash the QR-Hardware-Wallet-Peripherals firmware to your dev board.
- Verify that the touchscreen, LCD, and camera modules. Follow the on-screen instructions to save the hardware peripheral configuration to the OEM partition.
2. Run the Main Program
- Compile QR-Hardware-Wallet locally or download the pre-built firmware from Releases (not available yet).
- Flash the firmware to your dev board.
The project is developed using the VSCode IDE based on the ESP-IDF framework. Compiling the software is incredibly simple:
- Install the ESP-IDF (Espressif IoT Development Framework).
- Open the project in VSCode IDE.
- Click the 'ESP-IDF: Build' button to compile the project.
A huge thanks to the following open-source projects, which have been instrumental in the development of this project:
LVGL uBitcoin tinycbor airgap-vault KeystoneHQ esp32-camera esp-code-scanner bc-ur
Feel free to contribute, open issues, and join the journey to make secure hardware wallets affordable for everyone!