Android · Air-Gapped · Open Source

Turn any Android phone into an air-gapped hardware wallet

Zigner keeps spending keys permanently offline. Transactions are signed on an isolated device and relayed to the companion Zafu wallet through QR codes. Nothing else crosses the air gap.

latest release · all releases

Workflow

How signing works

Three steps, two devices, zero network exposure for your keys.

01
Build in Zafu

Construct a transaction in the Zafu browser wallet. It renders an unsigned transaction as a QR code.

02
Sign on Zigner

Point the air-gapped Android at the QR. Review the transaction. Confirm. Zigner signs with the offline key and displays a response QR.

03
Broadcast from Zafu

Zafu scans the signature QR, completes the transaction, and broadcasts to the network. The spending key never left Zigner.

Features

air-gapped

Keys generated and stored on-device. No network, no Bluetooth, no USB data during signing.

qr transport

Camera in, screen out. Animated QR for larger payloads like note sync.

frost multisig

FROST t-of-n threshold co-signing. Multiple devices jointly authorize without any single device holding the full key.

fvk export

Export a full viewing key via QR to set up watch-only mode in Zafu. Track balances without the spending key leaving the device.

note sync

Receive spendable note data from Zafu via animated QR. Keeps the signer aware of balances without network.

multi-chain

Zcash orchard, Penumbra, and Polkadot. One device for multiple privacy chains.

Networks

Zcash Penumbra Polkadot

Specifications

platformAndroid
languageKotlin
licenseMIT
key storageOn-device only, encrypted at rest
networkNone. No network permissions for signing.
transportQR codes (camera in, screen out)
multisigFROST threshold (t-of-n)
companionZafu browser wallet
sourcegithub.com/rotkonetworks/zigner