Android · Air-Gapped · Open Source
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
Three steps, two devices, zero network exposure for your keys.
Construct a transaction in the Zafu browser wallet. It renders an unsigned transaction as a QR code.
Point the air-gapped Android at the QR. Review the transaction. Confirm. Zigner signs with the offline key and displays a response QR.
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
Specifications
| platform | Android |
| language | Kotlin |
| license | MIT |
| key storage | On-device only, encrypted at rest |
| network | None. No network permissions for signing. |
| transport | QR codes (camera in, screen out) |
| multisig | FROST threshold (t-of-n) |
| companion | Zafu browser wallet |
| source | github.com/rotkonetworks/zigner |