Releases: firecash/zkas-wallet
Release list
v0.3.12
ZKas Wallet v0.3.11
Android + web release.
- Reliable confirmations: recent sends no longer freeze at 0-conf in the UI; each row keeps polling the explorer until it confirms.
- Connect to your own node by IP (no full URL needed).
- Removed the misleading pruned-history warning.
Server side (already live on wallet.zkas.info): wallets whose local note tree had drifted from the canonical chain are now detected and repaired before sending, so a send can never be built against a stale anchor and silently fail to reach the recipient. No funds were ever lost by the earlier behavior — the affected sends were on-chain no-ops and the sender's balance is intact.
Desktop builds (macOS/Linux/Windows) are published under the desktop-v0.3.11 tag.
ZKas Wallet 0.3.10
Which file do I download?
Normal PC or laptop (Intel/AMD) — Windows, Linux, or an Intel Mac — take the x86_64 file.
The aarch64 / arm64 files are for ARM machines only.
| Your machine | File |
|---|---|
| Windows PC | ZKas-Wallet-windows-x86_64.msi |
| Linux PC (Intel/AMD) | ZKas-Wallet-linux-x86_64.deb or .AppImage |
| Linux on ARM | ZKas-Wallet-linux-aarch64.deb or .AppImage |
| Mac, Apple Silicon (M1–M4) | ZKas-Wallet-macos-aarch64.dmg |
| Mac, Intel | ZKas-Wallet-macos-x86_64.dmg |
| Android | zkas-wallet-0.3.10.apk |
0.3.10 — the same wallet on a new device is synced instantly
Open your wallet on a second device and it's ready in a moment, not after a long scan. Until now, entering your recovery seed on a new phone or browser meant the service re-read the chain from your wallet's birthday before it could show your balance. Now, if this service has already synced that wallet on any device, the new device adopts that finished sync directly — in our tests it went from a multi-second scan to about 30 milliseconds, showing the full balance right away. Nothing about your keys is shared to do this: the sync state is something any holder of your wallet's viewing key could rebuild by scanning anyway, and your spending key never leaves your device.
This works for any devices that use the hosted service — the web wallet and the Android app — so web-to-phone, phone-to-web and browser-to-browser are all instant. (The desktop app runs its own private wallet engine on your computer, so it keeps its own local sync; a brand-new import there still scans, but see the next note.)
Faster first-time imports: just tell it when you made the wallet. Importing a wallet that this service has never seen still has to scan — but you no longer need to know a block height. The import screen now asks "when did you create this wallet?" and starts the scan a safe margin before that date, skipping years of history you don't have. The exact-height field is still there under Advanced for anyone who wants it.
Install notes
- macOS: not notarized yet — System Settings → Privacy & Security → Open Anyway (macOS 15), or right-click → Open.
- Linux AppImage: needs FUSE (
sudo apt install libfuse2); blank window on NVIDIA:WEBKIT_DISABLE_DMABUF_RENDERER=1. - Linux .deb: Ubuntu 22.04+/Debian 12+.
- Windows: SmartScreen → "More info" → "Run anyway". On any crash, attach
%APPDATA%\info.zkas.wallet\crash.log.
Installs over 0.3.5–0.3.9 — same signing key, your wallet is kept.
v0.3.9
Which file do I download?
Normal PC or laptop (Intel/AMD) — Windows, Linux, or an Intel Mac — take the x86_64 file.
The aarch64 / arm64 files are for ARM machines only.
| Your machine | File |
|---|---|
| Windows PC | ZKas-Wallet-windows-x86_64.msi |
| Linux PC (Intel/AMD) | ZKas-Wallet-linux-x86_64.deb or .AppImage |
| Linux on ARM | ZKas-Wallet-linux-aarch64.deb or .AppImage |
| Mac, Apple Silicon (M1–M4) | ZKas-Wallet-macos-aarch64.dmg |
| Mac, Intel | ZKas-Wallet-macos-x86_64.dmg |
| Android | zkas-wallet-0.3.9.apk |
0.3.9 — sends can't be blocked by one bad note, wrong node can't brick the app, seed reveal moved behind your lock
Fixed: "matured note has no witness path" when sending. A rare sequence (a send whose transaction was dropped by the network, returned to your balance later) could leave one note in a state the wallet could no longer build a spend proof for — and any payment that happened to select that note failed outright. Now such a note can never be created in the first place, and if a wallet already has one it is simply skipped: your sends go through using the rest of your balance, and the error message tells you honestly if any amount is temporarily unspendable. (Hosted wallets: already fixed server-side.)
Fixed: entering a wrong custom node address no longer bricks the desktop app. The app used to save the address first and ask questions never — with an unreachable node it waited forever on every launch, and people reinstalled to escape. Now the address is tested before it is saved (a wrong one is refused with the old settings untouched), and if the engine ever does come up dead, the error screen has a "Use the public node" button that recovers in place — no reinstall.
Confirmations count immediately again. A background lookup queue could get clogged by old transactions the chain will never answer for, and one slow request could stall the whole 1-second poll — so a fresh payment sat on "0-conf" far longer than it should. Lookups now run in parallel with hard timeouts, and dead entries stop hogging the queue.
Recovery seed moved to Settings — behind your app lock. "Reveal seed" was one accidental tap away, in whatever room you happened to be standing. It now lives in Settings → Recovery seed, and if you have an app lock set, revealing requires re-entering your PIN/passphrase. No lock set? You get an explicit "I'm somewhere private" confirmation instead.
Android: connect through your own node. Settings → "Node & wallet service" now explains and tests the URL of a self-hosted zkas-walletd (run it next to your node; point the app at it) before saving — a wrong URL is refused instead of breaking the app until reset.
Install notes
- macOS: not notarized yet — System Settings → Privacy & Security → Open Anyway (macOS 15), or right-click → Open.
- Linux AppImage: needs FUSE (
sudo apt install libfuse2); blank window on NVIDIA:WEBKIT_DISABLE_DMABUF_RENDERER=1. - Linux .deb: Ubuntu 22.04+/Debian 12+.
- Windows: SmartScreen → "More info" → "Run anyway". On any crash, attach
%APPDATA%\info.zkas.wallet\crash.log.
Installs over 0.3.5–0.3.8 — same signing key, your wallet is kept.
v0.3.8
Which file do I download?
Normal PC or laptop (Intel/AMD) — Windows, Linux, or an Intel Mac — take the x86_64 file.
The aarch64 / arm64 files are for ARM machines only. Installing one on a normal PC fails with an "architecture" error — wrong file, not a broken package.
| Your machine | File |
|---|---|
| Windows PC | ZKas-Wallet-windows-x86_64.msi |
| Linux PC (Intel/AMD) | ZKas-Wallet-linux-x86_64.deb or .AppImage |
| Linux on ARM | ZKas-Wallet-linux-aarch64.deb or .AppImage |
| Mac, Apple Silicon (M1–M4) | ZKas-Wallet-macos-aarch64.dmg |
| Mac, Intel | ZKas-Wallet-macos-x86_64.dmg |
| Android | zkas-wallet-0.3.8.apk |
Not sure on Linux? Run uname -m — x86_64 means take the x86_64 file.
0.3.8 — security hardening: your device now caps the fee it will ever sign
The on-device signer now enforces a fee ceiling. When you send, the wallet daemon builds the transaction and your device verifies and signs it. Until now the device checked the fee against the number the daemon reported — so a malicious or compromised daemon could, in theory, quietly inflate the fee and burn your change. Now the device reads the fee the transaction actually pays from the transaction itself and refuses to sign anything above a hard cap (0.1 ZKAS, or your custom fee if you set one higher). Normal fees are ~0.03–0.045 ZKAS, so honest sends are unaffected.
Exact integer amounts end-to-end. Payment amounts now cross the wire as exact integer sompi instead of floating-point coin values, removing a whole class of rounding surprises. The wallet also refuses a daemon that pays less than requested without accounting for the remainder.
No other behavior changes. This release is recommended for everyone; the hosted web wallet at wallet.zkas.info is already updated.
Install notes
- macOS: the app is not notarized yet. If macOS says it "can't verify" or the app is "damaged": System Settings → Privacy & Security → scroll down → Open Anyway (macOS 15), or right-click the app → Open (older macOS).
- Linux AppImage: needs FUSE — if it won't start,
sudo apt install libfuse2, or run with--appimage-extract-and-run. Blank white window on NVIDIA graphics: launch withWEBKIT_DISABLE_DMABUF_RENDERER=1. - Linux .deb: needs Ubuntu 22.04+/Debian 12+ (
libwebkit2gtk-4.1). - Windows: SmartScreen may warn because the installer is unsigned — "More info" → "Run anyway". If the app ever crashes, attach
%APPDATA%\info.zkas.wallet\crash.logto your report.
Installs over 0.3.5–0.3.7 — same signing key, your wallet is kept.
v0.3.7
Which file do I download?
Normal PC or laptop (Intel/AMD) — Windows, Linux, or an Intel Mac — take the x86_64 file.
The aarch64 / arm64 files are for ARM machines only. Installing one on a normal PC fails with an "architecture" error — wrong file, not a broken package.
| Your machine | File |
|---|---|
| Windows PC | ZKas-Wallet-windows-x86_64.msi |
| Linux PC (Intel/AMD) | ZKas-Wallet-linux-x86_64.deb or .AppImage |
| Linux on ARM | ZKas-Wallet-linux-aarch64.deb or .AppImage |
| Mac, Apple Silicon (M1–M4) | ZKas-Wallet-macos-aarch64.dmg |
| Mac, Intel | ZKas-Wallet-macos-x86_64.dmg |
| Android | zkas-wallet-0.3.7.apk |
Not sure on Linux? Run uname -m — x86_64 means take the x86_64 file.
0.3.7 — the "vanishing balance" fix, and a UI crash
Rescanning can no longer silently shrink your balance. Nodes prune old blocks. A rescan (or a restore on a new device) rebuilds your wallet only from what the connected node still serves — notes older than that existed on-chain but disappeared from view, with nothing admitting the balance was partial. Now:
- A rescan that would lose sight of any of your notes is refused, telling you exactly how many notes and how much ZKAS it would hide.
- A wallet whose history the node can't fully serve shows a clear "balance is a lower bound" warning instead of quietly showing less. Your coins are never gone — they're on-chain; the warning tells you not to rescan and to use a node with full history.
Fixed a crash that took down the whole wallet screen. Leaving the "restoring your wallet…" state (after the engine restarts, switching node source, or adding a wallet) could kill the UI with "Minified React error #310". Fixed, with a regression test, plus a guard so this class of bug can't ship again.
Install notes
- macOS: the app is not notarized yet. If macOS says it "can't verify" or the app is "damaged": System Settings → Privacy & Security → scroll down → Open Anyway (macOS 15), or right-click the app → Open (older macOS).
- Linux AppImage: needs FUSE — if it won't start,
sudo apt install libfuse2, or run with--appimage-extract-and-run. Blank white window on NVIDIA graphics: launch withWEBKIT_DISABLE_DMABUF_RENDERER=1. - Linux .deb: needs Ubuntu 22.04+/Debian 12+ (
libwebkit2gtk-4.1). - Windows: SmartScreen may warn because the installer is unsigned — "More info" → "Run anyway". If the app ever crashes, attach
%APPDATA%\info.zkas.wallet\crash.logto your report.
Installs over 0.3.5/0.3.6 — same signing key, your wallet is kept.
v0.3.6
Which file do I download?
Normal PC or laptop (Intel/AMD) — Windows, Linux, or an Intel Mac — take the x86_64 file.
The aarch64 / arm64 files are for ARM machines only. Installing one on a normal PC fails with an "architecture" error — wrong file, not a broken package.
| Your machine | File |
|---|---|
| Windows PC | ZKas-Wallet-windows-x86_64.msi |
| Linux PC (Intel/AMD) | ZKas-Wallet-linux-x86_64.deb or .AppImage |
| Linux on ARM | ZKas-Wallet-linux-aarch64.deb or .AppImage |
| Mac, Apple Silicon (M1–M4) | ZKas-Wallet-macos-aarch64.dmg |
| Mac, Intel | ZKas-Wallet-macos-x86_64.dmg |
| Android | zkas-wallet-0.3.6.apk |
Not sure on Linux? Run uname -m — x86_64 means take the x86_64 file.
0.3.6 — desktop stability
Opening the app twice no longer risks a crash. Launching a second copy (an easy double-double-click on Windows) used to start a second wallet engine over the same wallet files — a recipe for crashes and corrupted scan state. A second launch now just brings the open window to the front.
One fault no longer takes the whole app down with it. An internal error in one action could previously leave every later action crashing until the app was restarted. Faults are now contained and logged.
macOS: the QR scanner no longer kills the app. Opening "Scan" could terminate the app instantly (a missing camera permission declaration — macOS kills rather than asks). You now get a normal camera permission prompt.
Own-node addresses are checked, not swallowed. Pasting your node as grpc://host:port or a URL silently never connected. Addresses are now normalized, and anything that isn't host:port is rejected with a clear message. For a node on the same machine, enter 127.0.0.1:16110.
Crashes now leave a trace. If the app ever dies, look for crash.log and attach it to your report:
| OS | Location |
|---|---|
| Windows | %APPDATA%\info.zkas.wallet\crash.log |
| macOS | ~/Library/Application Support/info.zkas.wallet/crash.log |
| Linux | ~/.local/share/info.zkas.wallet/crash.log |
Install notes
- macOS: the app is not notarized yet. If macOS says it "can't verify" or the app is "damaged": System Settings → Privacy & Security → scroll down → Open Anyway (macOS 15), or right-click the app → Open (older macOS).
- Linux AppImage: needs FUSE — if it won't start,
sudo apt install libfuse2, or run with--appimage-extract-and-run. Blank white window on NVIDIA graphics: launch withWEBKIT_DISABLE_DMABUF_RENDERER=1. - Linux .deb: needs Ubuntu 22.04+/Debian 12+ (
libwebkit2gtk-4.1). - Windows: SmartScreen may warn because the installer is unsigned — "More info" → "Run anyway".
Installs over 0.3.5 — same signing key, your wallet is kept.
ZKas Light Wallet 0.3.5
Which file do I download?
Normal PC or laptop (Intel/AMD) — Windows, Linux, or an Intel Mac — take the x86_64 file.
The aarch64 / arm64 files are for ARM machines only. Installing one on a normal PC fails with an "architecture" error — wrong file, not a broken package.
| Your machine | File |
|---|---|
| Windows PC | ZKas-Wallet-windows-x86_64.msi |
| Linux PC (Intel/AMD) | ZKas-Wallet-linux-x86_64.deb or .AppImage |
| Linux on ARM | ZKas-Wallet-linux-aarch64.deb or .AppImage |
| Mac, Apple Silicon (M1–M4) | ZKas-Wallet-macos-aarch64.dmg |
| Mac, Intel | ZKas-Wallet-macos-x86_64.dmg |
| Android | zkas-wallet-0.3.5.apk |
Not sure on Linux? Run uname -m — x86_64 means take the x86_64 file.
Confirmations now count on desktop. A sent payment stayed at "0-conf" forever in the desktop app — the confirmation lookup was pointed at the wrong address inside the desktop shell and never reached the network. Fixed; sends now show their confirmations as they arrive, everywhere.
Tap a payment to see its details. History rows now open a transaction view — amount, status, time, recipient, fee and the transaction id, with copy buttons — and a "View on explorer" link from there, instead of jumping straight to the explorer on the first tap.
A send you can watch. Sending now shows your payment being sealed inside a shield and fired off — the privacy and the speed, while the proof builds.
A nicer open. The first-launch screen is now the ZKas shield drawing itself over "Private · Fast", instead of a bare spinner.
Installs over 0.3.4 — same signing key, your wallet is kept.
ZKas Light Wallet 0.3.4
Which file do I download?
Normal PC or laptop (Intel/AMD) — Windows, Linux, or an Intel Mac — take the x86_64 file.
The aarch64 / arm64 files are for ARM machines only (Raspberry Pi, ARM servers). Installing one on a normal PC fails with an "architecture" error — that is the wrong file, not a broken package.
| Your machine | File |
|---|---|
| Windows PC | ZKas-Wallet-windows-x86_64.msi |
| Linux PC (Intel/AMD) | ZKas-Wallet-linux-x86_64.deb or .AppImage |
| Linux on ARM | ZKas-Wallet-linux-aarch64.deb or .AppImage |
| Mac, Apple Silicon (M1–M4) | ZKas-Wallet-macos-aarch64.dmg |
| Mac, Intel | ZKas-Wallet-macos-x86_64.dmg |
| Android | zkas-wallet-0.3.4.apk |
Not sure on Linux? Run uname -m — x86_64 means take the x86_64 file.
The .AppImage needs no install: chmod +x it and run it. The .deb needs libwebkit2gtk-4.1-0 and libgtk-3-0.
Two more History fixes on top of 0.3.3.
A large payment now appears in full. When your balance sits in many small notes, a big payment is sent as several transactions. The wallet was only recording the first one — and recording it as if it had carried the entire amount. So a 2700 ZKAS send showed a single row claiming one transaction paid 2700 when it really paid 359.96, and the other seven were missing from your history completely. Each transaction is now listed separately with the amount it actually carried.
Confirmations no longer stay stuck at "0-conf". The wallet stopped asking the chain about a payment as soon as your balance updated, which usually happened before the chain had answered — so the row kept saying 0-conf forever, even long after it had confirmed. Payments are now followed until a confirmation count arrives.
Installs over 0.3.3 — same signing key, your wallet is kept.
ZKas Light Wallet 0.3.3
Which file do I download?
Normal PC or laptop (Intel/AMD) — Windows, Linux, or an Intel Mac — take the x86_64 file.
The aarch64 / arm64 files are for ARM machines only (Raspberry Pi, ARM servers). Installing one on a normal PC fails with an "architecture" error — that is the wrong file, not a broken package.
| Your machine | File |
|---|---|
| Windows PC | ZKas-Wallet-windows-x86_64.msi |
| Linux PC (Intel/AMD) | ZKas-Wallet-linux-x86_64.deb or .AppImage |
| Linux on ARM | ZKas-Wallet-linux-aarch64.deb or .AppImage |
| Mac, Apple Silicon (M1–M4) | ZKas-Wallet-macos-aarch64.dmg |
| Mac, Intel | ZKas-Wallet-macos-x86_64.dmg |
| Android | zkas-wallet-0.3.3.apk |
Not sure on Linux? Run uname -m — x86_64 means take the x86_64 file.
The .AppImage needs no install: chmod +x it and run it. The .deb needs libwebkit2gtk-4.1-0 and libgtk-3-0.
Fixes payments disappearing from History.
A payment you had just made would show in History for a moment and then vanish — and sometimes reappear under the Received filter instead of Sent. Two separate causes, both fixed:
- Your own payment sends change back to you. Until the wallet worked out that the spend was yours, it filed that change under the payment's transaction id as "received", and the wallet treated that as proof the chain already had your send covered — so it hid the row it had. Your send now only steps aside for a chain record that is actually a send.
- The wallet's once-a-second refresh could clear this device's own record of your sends when the wallet was switched, restored, or rescanned. Refreshing now only updates confirmations; it can no longer remove a payment from your list.
Also includes everything from 0.3.2: large sends split across as many transactions as they need, with progress shown, instead of the send limit that appeared to move between 899 and 359.
Installs over 0.3.2 — same signing key, your wallet is kept.