Multisig Wallet for the Handshake Blockchain

Overview

Similar to Bitcoin, the Handshake blockchain supports multisignature (multisig) wallets. A multisig wallet requires multiple private keys to authorize a transaction instead of just one. This eliminates the single-key vulnerability and greatly improves security. Even if one device or seed phrase is lost or compromised, your funds remain protected as long as the threshold number of keys is intact.

The first user-friendly wallet to support multisig on Handshake is Palm Reader.

GitHub Repository

The official Palm Reader source code is available here:

👉 https://github.com/pinheadmz/palmreader

Handshake+Ledger and SBC

Required System Packages (Important)

Before installing Palm Reader, make sure your system has the tools needed to compile native dependencies. Run this command:

sudo apt install make gcc g++ libusb-1.0-0-dev libudev-dev build-essential pkg-config python3-dev python3.13-venv

Installing the Palm Reader Wallet

To set up the Palm Reader wallet for your Handshake multisig configuration, follow the installation steps below.

1. Clone the Palm Reader Repository

Download the latest Palm Reader source code:

git clone https://github.com/imperviousinc/palmreader.git
cd palmreader

2. Install Dependencies

Palm Reader requires a specific Node.js environment (NodeJS v16 recommended). Once your Node version is ready, install the required npm packages:

npm i

This command installs all dependencies needed for Palm Reader to run correctly, including libraries for interacting with Handshake (hsd), multisig transactions, and hardware wallets.

Fixing node-hid Errors

Some systems may encounter errors when installing node-hid, a library needed for Ledger hardware wallet communication. To fix this, you can build node-hid from source inside a Python virtual environment.

Create and Use a Virtual Environment
# Create the virtual environment
python3 -m venv ~/venv-palmreader

# Activate it
source ~/venv-palmreader/bin/activate

# Upgrade essential build tools
pip install --upgrade pip setuptools wheel

# Build node-hid from source
npm install node-hid --build-from-source

After this step, continue with the Palm Reader installation normally.

3. Launch Palm Reader

Start the Palm Reader application with:

./bin/palmreader
Giao diện Palm Reader v0.1.1 trên Ubuntu

Giao diện Palm Reader v0.1.1 trên Ubuntu

Important: Rescan the Wallet

After adding or importing a wallet, perform a full rescan and wait until synchronization reaches 100%. This step is essential for accurate balance and transaction history.

Using Multisig

Faster Synchronization via SPV Mode

For a faster sync, you can run Handshake Daemon (hsd) in SPV mode using Docker:

docker run --rm -v ~/.hsd:/root/.hsd handshakeorg/hsd:8.0.0 --network main --spv 

This speeds up syncing dramatically compared to full node mode or palm reader sync.

Save Your Hexadecimal Blob

Whenever you create or sign a multisig transaction, Palm Reader will generate a hex blob. Save it securely — you will need it for completing or broadcasting the transaction.

Running Palm Reader Over SSH

Palm Reader works well over remote SSH sessions, including setups that use a Ledger hardware wallet connected to a mini-PC or SBC (e.g., Orange Pi).

1. Use an SSH Client with X11 Forwarding

For Windows users, MobaXterm is an ideal choice because it has built-in X11 support.

2. Enable X11 Forwarding on the Server

Ensure the following line exists in /etc/ssh/sshd_config:

X11Forwarding yes

Most Debian/Ubuntu systems enable this by default.

3. Install Required Packages

Clipboard tool:

sudo apt install xsel

X11 dependencies:

Debian/Ubuntu:

sudo apt install xauth xfonts-base

Using Palm Reader with a Ledger Hardware Wallet

Set Up Ledger Udev Rules

Run the official udev configuration script so Linux can detect your Ledger device:

wget -q -O - https://raw.githubusercontent.com/LedgerHQ/udev-rules/master/add_udev_rules.sh | sudo bash

Verify USB Connection

Plug in your Ledger and check devices:

lsusb

Fix “cannot open /dev/hidraw0” Errors

If permissions block access, run:

sudo chmod 666 /dev/hidraw*

Backup and Recovery

Handshake wallets are stored in:

~/.hsd

Backup

cd ~/.hsd/
tar -cvf wallet.tar ./wallet

Store this archive in a secure location.

Restore

mkdir ~/.hsd
cd ~/.hsd
tar -xvf wallet.tar

Your wallet will be restored exactly as before.

Updating hsd and wallet Data

When you need to upgrade hsd and your old wallet version to a newer release, delete the existing data inside the wallet directory, copy your old wallet into it, and then run the following Docker command to migrate the wallet. In this command, --wallet-migrate=x uses the value x specified in the release notes of the corresponding hsd version.

docker run --rm -v ~/.hsd:/root/.hsd handshakeorg/hsd:8.0.0 --network main --spv --wallet-migrate=7

Wait until its completion of migration.