Better Wallet logoOPEN SOURCE · OFFLINE · CLEAR SIGNING

Sign what you see.Not what you hope.

My friend got hacked and lost his crypto. I built Better Wallet to solve that personal self custody: fully offline custody, Clear signing, and a DIY build anyone technical can audit.

Better Wallet hardware prototype showing clear-signing confirmation screen

live reel

Walkthrough videos

Full YouTube walkthrough.

Full YouTube walkthrough

Why Better Wallet

The current wallet landscape keeps failing users

News and social posts describing wallet attacks

Real incidents

Fake apps, spoofed hardware, and phishing still exploit trust at the signing step.

“Blind signing turns every transaction into a leap of faith.”

Better Wallet makes intent legible before approval: function, dApp, contract, and risk level are shown on-device.

Reference comparison table between wallet devices

Commercial options optimize convenience. This project optimizes auditable custody.

Trust Boundary

Clear signing instead of raw blind payloads

Blind signing

What users usually approve

0xb010...aa3f
0x7f2d...991c
0xe4f8...117d
INPUT DATA (opaque)

Clear signing

What Better Wallet shows

Intent: Swap

Function: execute(bytes,bytes[],uint256)

dApp: Uniswap Labs

Contract: 0x39D4...67599

SECURITY LEVEL: HIGH

How it compares

FeatureLedgerSafePALTangemBetter Wallet
AirgappedQR NFC NFC
Clear signing
Hardware open sourcepartial ●DIY
Cost$200-$400$70-$100$59-$180$30-$40
Malicious app attack?Incidents reportedPossible with blind signingPossible with blind signingNo

Story

How I landed on a DIY hardware wallet

This started as a personal response to a real loss. I first built Better Wallet during ETH Online 2025, where we won second place using an old phone as both an offline hot and offline cold wallet. We then reused and improved the project at Stellar Builder Garage and won first place with hardware plus QR-code signing. We then won second place at the Solana Colosseum Network State Bounty before ETHGlobal New York 2026, where we revamped and rearchitected the entire hardware stack to build NFC and make UI and UX flows better. We created a new app from scratch that supports cross-chain, EVM, and Solana.

  1. 01

    ETH Online 2025 — 2nd place

    Built the first Better Wallet using an old phone as offline hot and cold wallet.

  2. 02

    Stellar Builder Garage — 1st place

    Extended the same project with hardware-assisted QR-code signing.

  3. 03

    Solana Colosseum Network State Bounty — 2nd place

    Won second place with Better Wallet while iterating on Solana-focused flows.

  4. 04

    ETHGlobal New York 2026 rearchitecture

    Revamped the hardware for NFC-first UX and built a new app from scratch for cross-chain, EVM, and Solana.

DIY Build

Build Better Wallet in five steps

Verify the hardware connections, then follow the exact commands.

Connection instructions

This build has three hardware connections:

  • The screen is connected using pogo pins.
  • The NFC module is connected in the diagram shown below.
  • Use a dedicated 3.3V power rail with shared GND for stable operation.
Raspberry Pi stacked on display module using pogo pinsRaspberry Pi to NFC module connection diagram

Step 01

Enable SPI + I2C on Pi 5

Enable spi and i2c, then reboot.

sudo nano /boot/firmware/config.txt

Step 02

Wire PN532 to I2C bus 3

Keep bus 1 free for GT911 touch.

SDA -> GPIO6 (pin31), SCL -> GPIO7 (pin26)

Step 03

Mount the Waveshare 3.5 LCD HAT

Display runs as card1 under /dev/dri.

dtoverlay=mipi-dbi-spi,speed=48000000

Step 04

Patch pn532pi for Pi 5

Handle errno 121 (EREMOTEIO) on RP1.

python3 pi/pn532i2c_patch.py

Step 05

Run the Better Wallet UI

Cycles idle -> tap1 -> signing -> tap2 -> done.

SDL_VIDEODRIVER=kmsdrm SDL_VIDEO_KMSDRM_DEVICE_INDEX=1 python3 pi/gui/demo.py

Circuit Diagrams

Hardware and data flow, visually mapped

Hardware block diagram

Raspberry Pi 5RP1 + DebianST7796S LCDSPI0, 320x480GT911 TouchI2C bus 1 @ 0x14PN532 NFC @ 0x24Android PhoneSPII2C bus 1I2C bus 3NFC 13.56MHz

GPIO pinout map

Wiring reference from the Pi hardware doc used in the demo build.

SignalGPIOPinBus
PN532 SDAGPIO6Pin 31I2C bus 3
PN532 SCLGPIO7Pin 26I2C bus 3
LCD MOSIGPIO10Pin 19SPI0
LCD MISOGPIO9Pin 21SPI0
LCD SCLKGPIO11Pin 23SPI0
LCD CE0GPIO8Pin 24SPI0
Touch SDAGPIO2Pin 3I2C bus 1
Touch SCLGPIO3Pin 5I2C bus 1

Two-tap NFC signing flow

  1. 01

    Tap 1: Phone sends payload chunks

  2. 02

    Pi parses tx + shows clear signing

  3. 03

    User approves on device

  4. 04

    Tap 2: Pi sends signed transaction

Parts & links

Bill of materials

PartModelCostLink
Single-board computerRaspberry Pi Zero$20Buy Single-board computer
NFC readerPN532 breakout board$3Buy NFC reader
Display + touchWaveshare 3.5" RPi LCD (F)$7Buy Display + touch
Other miscWires, connectors, mount hardware$5Buy Other misc
TotalComplete build$35Varies by source