Do It Yourself — You first open source hardware wallet

Satochip
5 min readSep 28, 2023

In this article, we’ll take you step by step through the process of creating your first hardware wallet. We’ll be using exclusively open-source software combined with an affordable hardware device, the smartcard.

This device will allow you to securely store Bitcoin and other crypto-currencies thanks to its full BIP32/39 support.

How to create your first hardware wallet!?

Contents

  1. Context
  2. Requirements
  3. Flash the smartcard
  4. Enjoy!

Context

A hardware wallet is a physical device designed to securely store the private keys and sensitive information required to access and manage cryptocurrencies, such as Bitcoin. These wallets provide an extra layer of security compared to software wallets (e.g., mobile or web wallets) because they operate offline and are not susceptible to online hacking attempts.

Here are the key features and components of a hardware wallet:

  1. Private key storage: hardware wallets store the user’s private keys, which are necessary to authorize transactions and access their cryptocurrency holdings. Private keys never leave the device and are kept offline.
  2. Security: hardware wallets are designed with robust security measures to protect against unauthorized access and other cyber threats.
  3. Offline operation: hardware wallets operate in an offline or cold storage mode, meaning they are not connected to the internet during most of their use. This isolation significantly reduces the risk of hacking.
  4. Transaction verification: when a user wants to initiate a cryptocurrency transaction, they typically need to connect the hardware wallet to a computer or mobile device. The wallet signs the transaction using the private keys, ensuring security while interacting with online services.
  5. Backup and recovery: hardware wallets often include backup and recovery options to restore access to the stored cryptocurrencies in case the device is lost, damaged, or stolen. This usually involves creating a recovery phrase (also known as a seedphrase) during the initial setup.
  6. User Interface: Hardware wallets usually have a simple user interface, often displayed on a small screen on the device. Users can verify transaction details and provide necessary authorizations directly on the device.

Requirements

To create your first hardware wallet, you will need:

  • the hardware itself; here we will choose a chip card. The chip acts as a secure element and can safely store user’s private key. Combined with a quality code, it’s great for use where a high security solution at a low cost is needed. Hence it’s ideal for multi application markets such as banking and finance, healthcare, mobile communications, public transportation, conditional access and of course: cryptocurrencies!
  • the software; that will be used to implement the wallet functionnalities with a full BIP32 / BIP39 support. It’s really important to use reliable software when dealing with the security of your crypto-currency assets! Why? Because it’s the software combined with the hardware that will take care of it. Open source software allows anyone to inspect the source code, promoting transparency and enabling the community to identify vulnerabilities or backdoors. This transparency builds trust in the security of the software. Satochip’s softwares are open source!

Hardware

A smartcard like the J3R180 embeds all the cryptographic libraries needed to be used as a hardware wallet. You can buy a card on the Internet (beware of the high price per unit and/or shipping costs).

You can also purchase a compatible card from Satochip’s online store.

Buy it, click here.
The J3R180 smartcard.

Software

Download the firmware (aka applet) to be loaded onto the smartcard. This quality code is supplied by Satochip. This applet is fully compatible with BIP32/BIP39 standards and offers other interesting features, such as multi-signature.

You can download the latest version on Satochip’s Github. If you like the project, feel free to rate it with a ⭐️

https://github.com/Toporin/SatochipApplet

Flash the smartcard

To be able to flash the smartcard (to load the applet onto the chip), you will need the GlobalPlateformPro tool. It will allow you to load and manage applets on compatible JavaCards from command line.

You can download the latest version of GlobalPlateformPro on Github.

Put all the downloaded files in the same folder and open a command line pointing to it.

Get ready to flash your smartcard.

Now it’s time to interract with your smartcard. Plug it into your chip card reader. You don’t have a chip card reader? Grab one on the Satochip’s online store.

Plug your smartcard in the chip card reader.

And load the Satochip applet: gp.exe -install SatoChip-0.12-05.cap

Here are some useful commands:

  • To list the applets loaded on a smartcard: gp.exe -l
  • To load the Satochip applet: gp.exe -install SatoChip-0.12-05.cap
  • To delete the Satochip applet: gp.exe -uninstall SatoChip-0.12-05.cap
CAP loaded — Your hardware wallet is ready to be used.

If you see “CAP loaded”, congratulations, your smartcard has been successfully flashed and you now have a fully functional crytpo hardware wallet.

Enjoy!

Follow this tutorial to setup your hardware wallet and use it with Electrum. It’s one of the most popular wallets securing Bitcoin payments since 2011.

Setup your Bitcoin hardware wallet in 10 easy steps.

And if you want to use it with your preferred web extension to store your Ethereum or other ERC20 tokens, you can also have a look on the Satochip’s Metamask integration.

Setup your Ethereum and ERC20 hardware wallet in 6 easy steps.

More information about Satochip

💮 Join us on Telegram
🐦 Join us on Twitter
👾 Check our website
🔨 Take a look at our GitHub
✒️ Join the Satochip Acadamy

Satochip.io

--

--

Satochip

Hardware devices powered by open source software to let you safely store and manage #Bitcoin and other digital assets, anytime, anywhere - Secure the Future.