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.
Better Wallet Pi signs Solana via Keystone Solana UR on a Raspberry Pi with no network path. This page turns the reference README into a scannable build and operating manual.
Manual
The repository README remains the full manual. This is the short path: what to wire, what to disable, how Solana UR requests move through the scanner, and what never crosses the air gap.
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.
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.
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.
Use a compatible wallet (e.g. Solflare with Keystone Solana) to show `ur:sol-sign-request`. The Pi fountain-decodes the QR, shows the parsed intent, and returns `ur:sol-signature` as animated QRs.
# /boot/firmware/config.txt
dtoverlay=disable-wifi
dtoverlay=disable-bt python3 -m venv virt
source virt/bin/activate
pip install -r requirements.txt
pytest tests/ -v source virt/bin/activate
python main.py