Zingo PC is a shielded Zcash light-client wallet for desktop (Windows, macOS, Linux), built with Electron and powered by the Zingolib Rust SDK.
App Store: https://apps.apple.com/app/zingo-pc/id6763584326
Pre-built binaries for each release are available on the Releases page.
| Platform | Format |
|---|---|
| Windows | .msi installer, .zip portable |
| macOS | .dmg |
| macOS (App Store) | App Store link |
| Linux | .deb, .AppImage |
| Linux (Flatpak) | .flatpak |
Zingo PC is written in Electron/JavaScript and can be built from source. It will also automatically compile the Rust SDK.
Using a version manager avoids polluting your system with multiple Node.js installs.
# Example on Arch Linux
paru -S nvm
nvm install 22.18.0
nvm use 22.18.0git clone https://github.com/zingolabs/zingo-pc.git
cd zingo-pc
yarn install
yarn build
yarn startyarn dist:linux # Linux (AppImage + deb)
yarn dist:win-x64 # Windows x64
yarn dist:win-arm64 # Windows ARM64
yarn dist:mac-x64 # macOS x64 (DMG)
yarn dist:mac-arm64 # macOS ARM64 (DMG)
yarn dist:mac-mas # macOS universal (Mac App Store)Binaries are output to the dist/ directory.
The version and build number live in several files (package.json,
src/version.ts, bin/printversion.{sh,ps1}, plus the AppStream metainfo for
Flatpak). To bump them all in one shot:
yarn release:prep <X.Y.Z> <BUILD>
# e.g.
yarn release:prep 2.0.15 142Wallet
- Light client — no full chain download, syncs from a
lightwalletdserver - Multi-wallet support — manage several wallets in the same install
- Multi-network — Mainnet, Testnet and Regtest, switchable per wallet
- Create from a fresh BIP-39 seed, restore from seed, or import from a Unified Full Viewing Key (read-only mode)
- Wallet seed phrase / UFVK backup viewer
- Per-wallet performance profiles
Transactions
- Full Zcash address support — Unified, Sapling, Transparent and TEX
- Shielded transactions by default (Orchard / Sapling)
- Encrypted memos
- "Shield Transparent → Orchard" one-click action
zcash:URI scheme handler (ZIP-321 payment requests)
Address book
- Save contacts per network (Mainnet / Testnet / Regtest) — the list filters by the active wallet's network
- "Show contacts from all networks" toggle to see everything at once
- Stores ZNS aliases verbatim so the address always re-resolves at send time
Zcash Names (ZNS) (experimental)
- Type
alice.zcashin the recipient field — auto-resolves to the unified address via the public ZNS indexer - Network-aware (
Mainnet/Testnet), with a one-click link to the public ZNS explorer page - Save the alias as a contact (the resolution stays current as the owner updates it on-chain)
Block explorers
- User-selectable per-network explorer for transactions and addresses (Zcashexplorer, Cipherscan, Zypherscan, or a custom URL)
Security
- Hardened Electron renderer (sandboxed, CSP, no node integration)
- Optional device authentication for opening the wallet and signing sends:
- macOS: Touch ID
- Windows: Windows Hello
- Linux (
.deb): polkit
- Encrypted credential storage (Keychain / Credential Manager / libsecret) for the auth setting itself
Data portability
- DMG ↔ MAS first-launch migration assistant (macOS) — imports wallets, address book and settings from a previous DMG install
- Manual "Import data from another installation" from the Settings menu (MAS / Flatpak), with per-file Replace / Merge / Skip choices
- "Change wallets folder location" from the Settings menu (MAS)
Q: Clicking a zcash: payment link doesn't open Zingo PC (Linux AppImage)
A: The AppImage must be launched at least once from its current location before the OS registers it as the handler for zcash: links. After the first launch, cold-start links work automatically. If you move the AppImage to a new path, launch it once from the new location to re-register it.
Q: "Require device authentication" is greyed out on Linux
A: Device authentication on Linux relies on polkit and a policy file that must be installed at the system level. This is only supported by the .deb package, which installs the policy automatically via its post-install script.
If you are running the AppImage, device authentication is not available and the option will remain disabled. Use the .deb package instead if you need this feature.
If you installed the .deb package and the option is still greyed out, verify the policy file is in place:
ls /usr/share/polkit-1/actions/co.zingo.pc.policyIf the file is missing, reinstall the package or copy it manually:
sudo cp /opt/Zingo\ PC/resources/co.zingo.pc.policy /usr/share/polkit-1/actions/
sudo chmod 644 /usr/share/polkit-1/actions/co.zingo.pc.policyQ: The app security setting is not being saved securely on Linux (falls back to a plain file)
A: Zingo PC stores the "Require device authentication" setting in the OS credential store via the Secret Service API (libsecret). This requires a secrets daemon to be running — typically GNOME Keyring or KDE Wallet.
If neither is available (e.g. a minimal desktop environment or a headless system), the setting falls back to a plain configuration file, which offers no tamper protection.
To fix this, install and start a compatible secrets daemon:
# Debian / Ubuntu / Arch (GNOME Keyring)
sudo apt install gnome-keyring # Debian/Ubuntu
paru -S gnome-keyring # Arch
# or KDE Wallet (if using a KDE-based desktop)
sudo apt install kwalletmanagerAfter installing, log out and back in so the daemon starts with your session.
Q: The app shows a blank blue screen and never loads (Linux — Ubuntu 22.04+, Debian 11+, Linux Mint)
A: Ubuntu 22.04 and later restrict unprivileged user namespaces at the kernel level, which breaks Chromium's built-in process sandbox that Electron depends on.
In order of preference:
-
Flatpak (recommended): Flatpak runs the app inside its own bubblewrap sandbox, so it does not depend on Chromium's namespace-based sandbox at all. Install the
.flatpakfrom the Releases page:flatpak install Zingo.PC-<version>.flatpak
-
.debpackage: The post-install script sets thechrome-sandboxbinary as SUID root (the same technique used by the official Google Chrome.deb), which restores Chromium's sandbox without relying on user namespaces. If you installed the.deband still see the issue, try reinstalling. -
AppImage: The AppImage detects the restriction automatically and disables the Chromium sandbox when needed (a warning is shown). On Ubuntu 24.04 or systems where AppArmor blocks user namespaces and the automatic detection does not catch it, you can launch the AppImage manually with
--no-sandbox:./Zingo.PC-<version>.AppImage --no-sandbox
⚠️ Note:--no-sandboxdisables Chromium's process isolation. For a wallet this is a real security concern — prefer the Flatpak or the.debif either is available on your system.