Open hardwareCashu ecashLightning

Freedom to transact.

Nucula is a small, open-source hardware wallet for Cashu ecash. It is designed for NFC tap-to-pay and offline ecash. The v2 board pairs an ESP32-C3 with an OLED and a detachable keypad.

ESP32-C3/PN7160 NFC/128×64 OLED/Detachable keypad
01The idea

Digital cash that behaves like cash.

Cashu is an ecash protocol built on top of Bitcoin's Lightning Network. A mint issues tokens against Lightning payments, using blind signatures — so it signs them without ever seeing them. Whoever holds the tokens can spend them. There is no account and no balance sitting on a server; the tokens themselves are the money.

Nucula keeps those tokens on a small circuit board you can carry around. Paying someone works like handing over coins: the tokens move from one device to the other, and that's the whole transaction.

a

Pay a Lightning invoice

Any Lightning wallet can top up a Nucula. The mint takes the payment…

b

The mint issues tokens

…and hands back blind-signed ecash tokens. The mint can't tell who ends up holding them.

c

Tokens live on the device

Not in an account, not on a server. If you hold the device, you hold the money.

d

Tap to pass them on

Spending is handing tokens to someone else — over NFC, or back out through Lightning.

02In practice
NFC01

Receive with a tap

Nucula asks for a payment and emits the request over NFC — the PN7160 makes the board show up like a contactless card. The payer taps with any Cashu wallet on a phone, and the tokens land on the device.

OFFLINE02

Doesn't need to be online

Tokens received while offline are stashed on the device and redeemed automatically the next time WiFi comes back. No connection, no problem — the payment already happened.

LIGHTNING03

Lightning in and out

Top the wallet up by paying a Lightning invoice — the mint issues fresh tokens for it. Spend back out by melting tokens to settle any invoice. Nucula speaks BOLT11 both directions.

03Hardware

One board. Four layers.

The v2 board brings the ESP32-C3, NFC controller and antenna, display interface and battery charger onto one PCB. The OLED, NFC and detachable keyboard share a 100 kHz I²C bus.

Routed prototype, awaiting physical bring-up. RF tuning, power measurements and display fit checks are still ahead.

MCU
ESP32-C3-WROOM-02
4 MB flash · WiFi + BLE · RISC-V
NFC
NXP PN7160
40 mm PCB antenna · I²C 0x28
DISPLAY
2.4-inch SSD1309 OLED
128 × 64 px · 24-contact ribbon · I²C 0x3C
INPUT
Detachable keypad section
PCF8574T · I²C 0x20
POWER
USB-C + optional Li-ion
Native USB data · 100 mA battery charging
PCB
60 × 110 mm · four layers
35 mm breakaway keyboard section
nucula v2 · four layerslayers

Toggle the KiCad layers. Copper fills are hidden to show the routing.

04Protocol

Speaks standard Cashu.

Under the hood, Nucula implements the Cashu NUTs — the shared specifications that keep mints and wallets compatible. Any wallet that talks Cashu can pay a Nucula, and a Nucula can pay it right back.

Wallet secrets are derived from a BIP-39 seed, so the ecash is recoverable from a plain twelve-word backup.

  • NUT-00
    Notation & blind signatures
  • NUT-02
    Keysets & fees
  • NUT-03
    Swapping tokens
  • NUT-04
    Minting
  • NUT-05
    Melting
  • NUT-10
    Spending conditions
  • NUT-11
    Pay-to-pubkey
  • NUT-12
    DLEQ proofs
  • NUT-13
    Deterministic secrets
  • NUT-18
    Payment requests
  • NUT-23
    BOLT11 payments
  • ···
    more to come
05Build one

There's nothing to buy.

Start with the open KiCad 10 project: schematics, board layout, BOM and manufacturing files are all in the hardware repository. The v2 board is a routed prototype for manual assembly; hardware bring-up and firmware integration are still in progress.

  • DesignKiCad 10, with standard libraries and the included project-specific parts.
  • FabricationFour layers, 1.6 mm, ENIG. Gerbers, drills and assembly drawings are included.
  • AssemblyThe OLED panel, external keypad and optional battery are sourced separately.
open the hardware
$ git clone https://github.com/zeugmaster/nucula-board.git
$ cd nucula-board
# check the schematic with KiCad CLI installed
$ python3 tools/check_schematic.py
$ kicad nucula-v2.kicad_pro
current PCB: v2 · routing review · 22 September 2026