Better Wallet Pi · v0.1.0

Documentation / Stellar air-gap build

Build the signer. Keep Stellar offline.

Better Wallet Pi signs Stellar SEP-7 transaction requests on a Raspberry Pi with no network path. This page turns the reference README into a scannable build and operating manual.

Manual

Build a Stellar-first offline signer.

The repository README remains the full manual. This is the short path: what to wire, what to disable, how Stellar requests move through SEP-7, and what never crosses the air gap.

01

Pi + display + camera + buttons

Assemble the reference build

Use a Raspberry Pi 4 for development, or a CM4 no-wireless board for the stricter production shape. Add the 3.5 inch SPI display, Pi Camera Module, and two momentary buttons wired to GPIO 17 and GPIO 27.

02

dtoverlay=disable-wifi / disable-bt

Remove the radios

Disable WiFi and Bluetooth in the Pi boot config before trusting the device boundary. The wallet should be able to see QR codes and show QR codes, but it should not be able to speak TCP/IP.

03

python main.py

Install and run

Create a Python virtual environment, install the project dependencies, then run main.py on the Pi. On first boot the device generates one 12-word mnemonic, asks for a PIN, and shows the account QR.

04

web+stellar:tx

Sign Stellar by SEP-7

Produce a web+stellar transaction QR from Stellar Lab, Horizon tooling, or another SEP-7 emitter. The Pi scans the XDR, shows the signing intent, and returns a signed envelope XDR by QR.

Command ledger

Full README ↗

Disable wireless

# /boot/firmware/config.txt
dtoverlay=disable-wifi
dtoverlay=disable-bt

Local development

python3 -m venv virt
source virt/bin/activate
pip install -r requirements.txt
pytest tests/ -v

Pi runtime

source virt/bin/activate
python main.py