Building an Open-Source Hardware Wallet on ESP32
Building an Open-Source Multi-Chain Hardware Wallet on ESP32
How I turned a low-cost ESP32 into an experimental hardware wallet capable of securely managing multiple blockchain networks.
When people think about hardware wallets, names like Ledger and Trezor usually come to mind. These devices are trusted by millions of users to protect cryptocurrency private keys, but they are also closed ecosystems in many aspects and are designed for end users rather than developers.
As an embedded systems developer, I wanted to answer a different question:
Can a low-cost ESP32 become the foundation of a secure, open-source hardware wallet?
That question became the starting point of ESP32-HDWallet, an open-source firmware project focused on building a modern multi-chain hardware wallet for the ESP32 platform.
Why Build Another Hardware Wallet?
The purpose of this project is not to compete with commercial products.
Instead, the goal is to create a fully transparent platform that developers can study, improve, and adapt for their own applications.
Hardware wallet development combines several fascinating fields:
- Embedded Systems
- Cryptography
- Blockchain
- Secure Firmware Design
- User Experience
- Hardware Security
Having an open implementation allows anyone to understand how these pieces fit together.
Why ESP32?
![ESP32 Board]
ESP32 is one of the most popular microcontrollers available today.
It provides an excellent balance between performance, cost, and development simplicity.
Some of its advantages include:
- Dual-core processor
- Hardware cryptographic acceleration
- Large Flash memory
- Wi-Fi & Bluetooth connectivity
- Excellent SDK support
- Huge developer community
These capabilities make ESP32 an ideal platform for experimenting with secure embedded applications.
Project Goals
The main objective of ESP32-HDWallet is to provide a lightweight and modular hardware wallet firmware that developers can build upon.
The firmware focuses on:
- Secure private key storage
- On-device transaction signing
- Hierarchical Deterministic (HD) wallets
- Multi-chain support
- Physical transaction confirmation
- Air-gapped operation
- Modular architecture
Rather than being tied to a single blockchain, the project is designed with extensibility in mind.
Supported Networks
The current architecture supports multiple blockchain ecosystems, including:
- Bitcoin
- Ethereum
- EVM-compatible chains
- Tron
- Solana
Adding support for additional blockchains should require implementing only a new blockchain adapter instead of redesigning the firmware.
HD Wallet Architecture
![Architecture Diagram]
The wallet follows a modular architecture that separates each responsibility into its own component.
Application Layer↓Wallet Core↓BIP39
BIP32
Cryptography↓Blockchain Adapters↓Bitcoin
Ethereum
Tron
Solana
This approach makes the firmware easier to maintain, test, and extend.
Keeping Private Keys on the Device
One of the most important design decisions was ensuring that private keys never need to leave the hardware.
Get Dibachain’s stories in your inbox
Join Medium for free to get updates from this writer.
Instead of exporting keys to a computer or mobile application, transactions are signed directly inside the ESP32.
The host application only receives the digital signature.
This greatly reduces the attack surface when interacting with potentially compromised computers.
Physical Confirmation
![Signing Screen]
Before signing any transaction, the device requires explicit user confirmation.
This simple interaction prevents malware from silently authorizing transfers.
Even if the connected computer becomes infected, it cannot approve a transaction without user interaction.
Air-Gapped Design
Another long-term objective of the project is supporting fully air-gapped workflows.
Instead of exposing private keys through a network connection, transactions can be transferred using offline communication methods.
This design philosophy significantly improves security for high-value wallets.
Open Source Matters
Security should never depend on secrecy.
By making the firmware open source, anyone can:
- Inspect the implementation
- Review the cryptographic logic
- Report vulnerabilities
- Improve the architecture
- Build custom hardware
- Learn how hardware wallets actually work
Transparency ultimately leads to stronger software.
Current Status
ESP32-HDWallet is still under active development.
Several important features are planned for future releases, including:
- QR transaction signing
- Secure Element integration
- Firmware update system
- Desktop application
- Mobile companion app
- Improved user interface
- Additional blockchain support
- Security audits
The project is evolving continuously as new ideas and contributions arrive.
Contributing
Open-source projects become better through collaboration.
Whether you’re interested in embedded development, cryptography, blockchain infrastructure, or firmware engineering, contributions are always welcome.
GitHub Repository:
https://github.com/AliAkrami1375/esp32-hdwallet
If you find the project interesting, consider giving it a ⭐ on GitHub.
Final Thoughts
Building a hardware wallet is far more than generating private keys or signing transactions.
It requires careful consideration of firmware architecture, user interaction, cryptographic standards, and security principles.
ESP32-HDWallet is an exploration of these ideas in an open and transparent way.
Hopefully, this project helps developers better understand how modern hardware wallets work and encourages more open-source innovation in embedded security.
Thanks for reading.
If you’re interested in embedded systems, blockchain, or hardware security, I’d love to hear your thoughts and contributions.








