This hardware cosigner allows to securize your funds by being a required device for a multisig wallet. Once set up and connected to internet via Wifi, you pair it with the standard Byteball GUI wallet, add it as cosigner for a multidevice wallet then authorize the signature of a transaction from a webpage on your local network. It works on ESP8266 and ESP32 boards although ESP32 is recommended since it has no practical limit for unit size you can cosign.
Video tutorial by DrSensor: https://steemit.com/utopian-io/@drsensor/byteduino-create-your-own-hardware-cosigner-for-byteball-1543200264366
To get support or discuss about this project, request an invitation to Byteball Slack and join #byteduino channel.
Blackbytes are not supported
Go to Sketch->Include Library->Manage Libraries
Install the following libraries:
- Byteduino by Papabyte (last version)
- ArduinoJson by Benoit Blanchon version 5.13.2 (not compatible with version 6!)
- micro-ecc by Kenneth MacKay version 1.0.0
- Download this git repository and decompress it on your computer
- Open cosigner.ino file
- Use the web based keys generator
- Copy and replace into cosigner.ino setup() the 3 functions provided
- Write down seed as backup
- In your setup(), set your wifi SSID and password at this line:
WiFiMulti.addAP("My_SSID", "My_password");
- Watch the serial monitor output, if working properly you should see this output:
192.168.43.6
Device address:
06XOQ6ZVWTV2ZWAEAIPFPJRGGQBMTHC6J
Device name:
Byteduino
Pairing code:
[email protected]/bb#0000
Extended Pub Key:
xpub6Chxqf8hRQoLRJFS8mhFCDv5yzUNC7rhhh36qqqt1WtAZcmCNhS5pPndqhx8RmgwFhGPa9FYq3iTXNBkYdkrAKJxa7qnahnAvCzKW5dnfJn
Wss connected to: /bb
Authenticated by hub
- Copy the IP address (attributed by your router) and paste it on your browser to access to the cosigner control webpage
- From your Byteball wallet, add the hardware cosigner to your correspondents list by using the pairing code provided above as invitation code.
- From your Byteball wallet, create a multidevice wallet with the hardware device as one of the cosigner. Only single address wallet is supported.
- Select your multidevice wallet and click on send a transaction, the wallet will ask you to approve the transaction on other devices. Go to the cosigner control webpage and click on confirm.
- Make sure to always have a backup of your seed and wallets definition (just copy all information shown on device control webpage). That's all you need to restore your wallet on another Byteduino device or a standard Byteball client.