Skip to content

Latest commit

 

History

History

arduino

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Arduino Hardware wallet

Folder hackathon_code currently contains a bunch of unstructured Arduino sketches that we've put together in a very ugly way to get a working demo.

Now, when the hackathon is over and there are people from the team interested to keep working on the project, it's time to sort and refactor everything.

Arduino obviously is not the most secure platform, but it is easy enough to work with and perfect for prototyping. One can buy a board and OLED display for 40 euro and start playing with them right away.

This work will help us to understand what we need from the hardware wallet: what secrets have to be stored there and what secrets we can give to the host without worrying too much.

Ideally this work can be a first move towards standartisation of the communication protocol between a lightning client and a hardware wallet.

Arduino hardware wallet can be splitted into several parts:

Every part is more or less independent and can be developed and tested separately. Code for different functional parts is stored in separate folders and will be assembled later for a few demo use-cases.

Assembled sketch with current functionality is in the hsm/hardware_wallet folder.

Boards

Not every Arduino board will work with our project. The sketch requires some significant amount of space, memory and uses 64-bit unsigned integers for amounts that only 32-bit microcontrollers support.

In general any 32-bit microcontroller will work. But to be more specific here is a list:

There are also faster boards based on ARM Cortex M3, M4 and ESP32. They should work, but I would recommend to start with M0. I tried them and they are a bit harder to work with. As soon as we test our firmware on M0 we can start moving to faster MCU.

If you don't have a soldering station or you just don't want to solder anything, I would recommend to look very carefully at what you are buying. Arduino don't require soldering, but Adafruit does. And to be able to plug in the OLED screen you should also buy the headers.