Install Hiro desktop wallet on Qubes (Debian AppVM)
What will we do?
We will install dependencies for Hiro-wallet, Hiro-wallet, Udev-Rules for Ledger and write a script.
Basics
Copy & Paste
How to copy from this document and paste into your Terminal?
At Origin:
Ctrl+C
Ctrl+Shift+C
At Destination:
Ctrl+Shift+V
Click: Edit / Paste
Formatting
I will explain
where to click with your mouse
what see in the terminal
what to copy & paste into the created files on terminal.
Requirements
I assume you have already installed Qubes on your Laptop. If not, check out this guide: here
1. Create Qubes
Click: Q / Create Qubes VM
Name and label = hiroSTX
Type = Qube based on a template (AppVM)
Template = debian
Networking = sys-firewall
2. Get relevant files
2.1 Create folder
Click: Q / Domain: hiroSTX / hiroSTX: Xfce Terminal
user@hiroSTX:~/hiro$~$ mkdir hiro && cd hiro
2.2 Find latest version
user@hiroSTX:~/hiro$ xdg-open https://github.com/hirosystems/stacks-wallet/releases/
Pop up window [hiroSTX] confirm open
Click: yes
Find the “latest” version (not “Pre-release”):
Example: v4.6.1. The Version v4.6.1 is used for this walk through. Your version may be a newer version.
➤ In subsequent commands replace 4.6.1 with your version number.
Return to terminal.
Ctrl + C
2.3 Download dependencies
user@hiroSTX:~/hiro$ wget http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_amd64.deb
user@HiroSTX:~/hiro$ wget http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_amd64.deb
2.4 Download latest Hiro wallet
user@hiroSTX:~/hiro$ wget https://github.com/hirosystems/stacks-wallet/releases/download/v4.6.1/stacks-wallet.mainnet.v4.6.1.deb
2.5 Add udev rules
user@hiroSTX:~/hiro$ nano 20-hw1.rules
paste:
# HW.1 / Nano
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="1b7c|2b7c|3b7c|4b7c", TAG+="uaccess", TAG+="udev-acl"
# Blue
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0000|0000|0001|0002|0003|0004|0005|0006|0007|0008|0009|000a|000b|000c|000d|000e|000f|0010|0011|0012|0013|0014|0015|0016|0017|0018|0019|001a|001b|001c|001d|001e|001f", TAG+="uaccess", TAG+="udev-acl"
# Nano S
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0001|1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|100a|100b|100c|100d|100e|100f|1010|1011|1012|1013|1014|1015|1016|1017|1018|1019|101a|101b|101c|101d|101e|101f", TAG+="uaccess", TAG+="udev-acl"
# Aramis
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0002|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|200a|200b|200c|200d|200e|200f|2010|2011|2012|2013|2014|2015|2016|2017|2018|2019|201a|201b|201c|201d|201e|201f", TAG+="uaccess", TAG+="udev-acl"
# HW2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0003|3000|3001|3002|3003|3004|3005|3006|3007|3008|3009|300a|300b|300c|300d|300e|300f|3010|3011|3012|3013|3014|3015|3016|3017|3018|3019|301a|301b|301c|301d|301e|301f", TAG+="uaccess", TAG+="udev-acl"
# Nano X
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0004|4000|4001|4002|4003|4004|4005|4006|4007|4008|4009|400a|400b|400c|400d|400e|400f|4010|4011|4012|4013|4014|4015|4016|4017|4018|4019|401a|401b|401c|401d|401e|401f", TAG+="uaccess", TAG+="udev-acl"
source: here
save with:
Ctrl+x
y
Enter
3. Create script for starting
3.1 Create script
user@hiroSTX:~$ cd && nano wallet
paste:
cd hiro
sudo apt install ./libindicator3-7_0.5.0-4_amd64.deb
sudo apt install ./libappindicator3-1_0.4.92-7_amd64.deb
File=$(find -name "stacks-wallet*")
sudo dpkg -i $File
sudo cp 20-hw1.rules /etc/udev/rules.d/
cd '/opt/Hiro Wallet'
./stacks-wallet
save with:
Ctrl+x
y
Enter
3.2 Make script executable:
user@hiroSTX:~$ chmod u+x wallet
4. Start wallet
4.1 Start Hiro wallet
user@hiroSTX:~$ ./wallet
4.2 Start Ledger
Plug in Ledger USB
Enter Pin into Leger
Open STX app
4.3 Connect Ledger to hiroSTX
Add USB Ledger to VM hiroSTX
Click: Qubes Devises (top right corner) / sys-usb:2-1 – Ledger_Nano_X_0001 / hiroSTX (+)
5. Update wallet
Not necessary now, only after your wallet version becomes outdated.
5.1 Download the update
After a Hiro wallet requires an update, a Link in the App appears.
Click on the link ➤ browser opens
Download the update (.deb) into the hiro folder.
5.2 Find the outdated version
user@hiroSTX:~$ cd hiro
user@hiroSTX:~/hiro$ ls
terminal returns
20-hw1.rules
libindicator3-7_0.5.0-4_amd64.deb
libappindicator3-1_0.4.92-7_amd64.deb
stacks-wallet.mainnet.v4.6.0.deb
stacks-wallet.mainnet.v4.6.1.deb
In this example the outdated version is v4.6.0 and v4.6.1 is the new version.
5.3 Remove the outdated version
user@hiroSTX:~/hiro$ rm stacks-wallet.mainnet.v4.6.0.deb
Now you can start your wallet again (Step 4).
Background information:
Why Debian not Fedora?
With Fedora 32 many dependencies are missing. With Debian we need to install only a few dependencies.
Why use sys-firewall not sys-whonix for networking?
With sys-whoneix Hiro wallet is sometimes “Unable to fetch recent transactions” and “Unable to connect to the Hiro Systems PBC hosted node.”
Was this guide helpful for your? I appreciate your feedback.
Disclaimer: I’m neither associated with Qubes, nor Ledger nor have an IT background. This walk through should make your live a bit easier and safe your time. But the ultimate responsibility securing your computer and your crypto is with you.