Skip to content

BlockEase/QR-Hardware-Wallet

Repository files navigation

QR Hardware Wallet

Build your own hardware wallet using affordable, globally available hardware!

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.

Hardware Supported

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

Project Progress

  • 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
  • Bitcoin Support

    • Bitcoin (SegWit)

Feature Showcase

connect to metamask sign transaction metamask enter mnemonic
*Hardware:ESP_S3_EYE-compatible dev board ($6), OV3660-compatible camera ($2), second-hand capacitive touchscreen (240x320, ST7789+FT6X36, $7)*

Run Guide

This program consists of two parts:

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.

How to Build

The project is developed using the VSCode IDE based on the ESP-IDF framework. Compiling the software is incredibly simple:

  1. Install the ESP-IDF (Espressif IoT Development Framework).
  2. Open the project in VSCode IDE.
  3. Click the 'ESP-IDF: Build' button to compile the project.

Thanks

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!

About

Build your own hardware wallet using affordable, globally available hardware!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages