We wanted something like the Trezor bitcoin wallet, but we wanted something that you could download and open in the arduino IDE and flash to an arduino chip to hold your bitcoin.
What it does
A sufficiently-powerful microcontroller is coupled with a python program on a laptop. The laptop displays a GUI that communicates with the MCU (microcontroller). The GUI support either sending a transaction, or importing a wallet private key and loading it onto the MCU. When a transaction is sent, the pulsating LED on the MCU will turn red and it will wait 3 seconds for the user to press the button to confirm. If it's not pressed in this time, a trash signature will be generated instead of a proper signature. The LED will then return to normal operation.
How we built it
Python was the primary language for the project, with C++ being used for the MCU. A basic circuit board was soldered and affixed to the top of an ESP-12 (NodeMCU D1) chip as a hat, and a smart led and button keep the MCU from hashing for unauthorized programs.
Challenges we ran into
Running large crypto algorithms on a microcontroller was one of the biggest challenges of this build, across from the nature of hand-crafting bitcoin transactions.
Accomplishments that we're proud of
We managed to have enough time to make a perf board that gives the user some feedback on the events that are happening on board the MCU.
What we learned
We got better at blockchain code, as well as performing crypto algorithms.
What's next for Bitboard
Transactions on the bitcoin mainnet are the logical next step, as it currently only works on the bitcoin testnet.