Updated August 20 (final update).
Ironwood is active on mainnet. It activated July 28 at block 3,428,143. This is a huge accomplishment on a very short timeframe, congratulations to everyone involved.
Three weeks in, over 3.1 million ZEC has crossed the turnstile and roughly 80% of the Orchard pool has migrated. Supply verification stands at about 95.7%, which was the whole point of the exercise.
This means that not only is Zcash more provably secure than ever before, but legacy C++ code is completely out of our stack. Zcash is now powered by memory safe Rust (zebra, zakura), on a common stack of libraries called librustzcash. The old code was slowing this ecosystem down big time, get ready for a huge burst of innovation ahead!
I’m most excited about Tachyon, Crosslink, and light wallet PIR, but it’s easier than ever before to jump in and contribute to Zcash on the new unified Rust stack.
Seeing wallet errors?
If you’re seeing errors in your Zcash wallet, the software you’re using hasn’t been updated for Ironwood (“NU6.3”) yet. Try updating from your app store of choice. Everything essential has shipped.
Orchard is now sealed
Per ZIP 258, the Orchard pool permanently closed to inflows at activation. No new Orchard outputs, and no Orchard-to-Orchard transfers. Funds already in Orchard can only leave through the turnstile into Ironwood, or out to a transparent address.
Your address does not change. Ironwood reuses Orchard receivers, so existing addresses keep working and wallets simply deliver new payments to Ironwood instead.
The practical consequence: every Zcash user needs Ironwood-capable software, and everyone holding Orchard funds will need to migrate them.
If you run a node or indexer: check your version
A node on an older version stopped following the chain at activation, and will continue to appear healthy.
- Zebra: run the latest release, currently v6.3.0 (August 10). v5.1.0 stopped following the chain at height 3,428,143. 6.3.0 adds
seeder.zec.rocksandseeder.testnet.zec.rocksas default DNS seeders, agetdeprecationinfoRPC reporting the height at which your release halts for end of support, and enforcement of theMAX_MONEYcap on the total chain value pool balance. Check the binary version, not the config. - Zebra zcashd-compat sidecar:
zebra-compat-v1.0.0was built before the mainnet activation height was set, so it stops following the chain at block 3,428,143 while continuing to serve wallet RPCs from its last block. Zebra pins the correctedzebra-compat-v1.1.0. Operators onzcashd_source = "embedded"should upgrade, or setzcashd_pathto a current sidecar binary. - lightwalletd: v0.5.3 (August 4), which guarantees block continuity in
GetBlockRange. Ironwood produced a run of four releases in ten days, two of them security fixes, so if you set this up during activation week you are probably behind. Ironwood also forces a database upgrade, so expect a migration on first start (thanks @dismad). - Zaino: 0.8.0 (August 19). 0.7.0 carried breaking changes to
zaino-protoandzaino-state, so read the release notes before upgrading a deployment. Now aligned with the Zebra 6.3.0 node dependency. - Zakura: v1.2.0 (August 14). The full node from Sean Bowe and Dev Ojha has supported Ironwood since v1.0.0, and has shipped steadily since: 1.1.0, 1.1.1, and 1.2.0 in the last two weeks. It also offers a compatibility path for zcashd operators, plus faster initial sync, pruning, and snapshot bootstrapping. The Zcash Foundation recommends that if you switch to Zakura you keep a Zebra node running alongside it as an independent consensus check.
Deploying the whole stack
zcash-stack packages Helm charts for Kubernetes, Docker Compose configurations, and a step-by-step deployment workshop, published on Artifact Hub. 0.4.1 (August 18) adds webzjs and grpcweb chart components with a documented proxy-only ingress path, on top of the August 10 bump to Zebra 6.3.0, Zaino 0.7.0, Zakura 1.1.0, lightwalletd v0.5.3, and zecd 0.6.0. If you’re rebuilding infrastructure for Ironwood, start here rather than assembling it by hand.
Wallets
Two separate questions for every wallet below. Ironwood means it works correctly after activation and can see the new pool. Migration means it can move your existing funds out of Orchard.
How to read the Migration column. There is only one way out of Orchard: the protocol’s one-way turnstile, and every crossing publishes its amount and block height. Wallets differ only in how they shape that crossing:
- Basic: moves your funds in one visible transaction. It works, but your amount is public, and a distinctive amount is recognizable.
- Private: a wallet-specific privacy-aware flow, splitting funds into common denominations and spreading them out.
- ZIP 318: follows the ZIP 318 migration spec, using standard denominations, scheduled transfers, and session separation between syncing and broadcasting. This is the gold standard, because blending only works if migrators cross the turnstile identically, and the spec is what everyone can agree to be identical to.
The good news three weeks on: every major wallet now has a private or ZIP 318 path. If you are still sitting on Orchard funds, there is no longer any reason to cross the turnstile the visible way.
Store versions matter more than repo tags. Several teams shipped Ironwood on GitHub before their store listing updated, so the version on your phone may not be the version in the release notes. Thanks @Autotunafish for flagging this repeatedly.
Mobile
| Wallet | Latest release | On the store | Ironwood | Migration | Notes |
|---|---|---|---|---|---|
| Zodl (iOS) | 3.9.5, Aug 18 | 3.9.5, Aug 18 | Yes | ZIP 318 | Shipped Move to Ironwood in 3.9.0 on August 8: a private option splitting your balance into scheduled transfers, or an immediate single transfer, plus Tor protection, progress notifications and Keystone support. Four releases since have refined it. |
| Zodl (Android) | 3.9.3 (2393), Aug 18 | 3.9.3, Aug 18 | Yes | ZIP 318 | Same flow as iOS. 3.9.2 made Keystone migration signing much faster; 3.9.3 fixed an issue where some wallets could not detect spendable funds after migration. |
| Vizor (iOS) | 0.0.26, Aug 19 | 0.0.26, Aug 19 | Yes | ZIP 318 | Eight releases since launch. Fully follows the ZIP 318 migration spec, per the Vizor team. Also imports Keystone hardware accounts. |
| Vizor (Android) | 0.0.26, Aug 19 | 0.0.26, Aug 19 | Yes | ZIP 318 | Now on the same release train as iOS. |
| Cake Wallet | 6.4.1, Aug 12 | 6.4.1, Aug 13 | Yes | ZIP 318, mostly | Auto-migration confirmed working on mainnet since day one. 6.4.1 adds post-migration performance and reliability work. Thanks @sethforprivacy for the original heads up. |
| Zkool | 6.27.0, Aug 15 | Play 6.26.0; App Store 6.25.1 | Yes | Private | iOS finally caught up on August 5 and can migrate. Both stores now trail GitHub by a release or two rather than by a month. Thanks @dismad and @Autotunafish for tracking it. |
| Zingo! | 2.0.22 (313), Jul 31 | 2.0.22 (313), Aug 3 | Yes | Basic | Both stores current. No release in three weeks; the mobile client has been quiet while Zingo-PC has moved. |
| Gem Wallet | Current | Current | Transparent only | n/a | Transparent ZEC works past activation with the correct Ironwood branch ID. Shielded transactions and migration are still not supported. Thanks @Anzus_GemWallet for the report. |
On iOS, migration needs you to open the app. iOS does not permit background sending, so both Zodl and Vizor drive the schedule through local notifications: you get told when a step is due, and opening the app discharges it. Zodl’s newer builds advance the migration automatically as long as the app stays open. Desktop remains the easier place to run a long private migration.
zcashd wallet replacements (server side)
| Software | Latest release | Ironwood | Migration | Notes |
|---|---|---|---|---|
| zallet | v0.1.0-beta.2, Jul 28 | Yes | Basic | The official zcashd wallet replacement. beta.2 ships a zcashd migration guide, an RPC status matrix, operations and backup guides, and verification of security-relevant wallet.db records before use. No release in three weeks. |
| zecd | v0.6.2, Aug 20 | Yes | Basic | The zcashd wallet alternative from Zec.rocks. 0.6.0 added a lightwalletd backend, so it no longer requires a full node. 0.6.2 is a security fix upgrading h2 for RUSTSEC-2026-0258, which reaches both the JSON-RPC port and light mode’s upstream connection. Quickstart. |
Desktop and CLI
| Wallet | Latest release | Ironwood | Migration | Notes |
|---|---|---|---|---|
| Vizor (desktop) | See notes | Yes | ZIP 318 | Still the team’s recommendation for long private migrations, since desktop can run unattended. GitHub shows only testnet previews, so ask in their thread for the current mainnet build. |
| Zkool | 6.27.0, Aug 15 | Yes | Private | Uses power-of-ten denominations, per @hanh. 6.27.0 adds Nym mixnet as a transport and ZIP 262 voting; 6.26.x added streaming migration with progress tracking, cancellation, and labelled migration transactions. 6.28.0 release candidates are in flight. |
| NozyWallet | 2.4.6, Aug 4 | Yes | ZIP 318 | @Lowo confirms ZIP 318 migration across CLI and desktop. The CLI plus a localhost companion API are the production surfaces; desktop and the extension remain separate tracks. Their migration case breakdown is still the best public write-up of the tradeoffs. |
| Zingo-PC | 2.0.25 (180), Aug 17 | Yes | Basic | Four releases in three weeks. 2.0.25 signs the Windows binaries and adds an MSIX artifact, which is a real improvement for anyone who had to click past a SmartScreen warning. |
Browser extension
| Wallet | Latest release | Ironwood | Notes |
|---|---|---|---|
| Noir Wallet | 0.1.26, Jul 27 | Yes | Resolves .zcash and .zec addresses via ZcashNames, and auto-connects at app.zknoir.com. Distributed in developer mode, so updates are manual. |
| NozyWallet | 0.1.10, Aug 3 | Yes | Pairs with the localhost companion API. Load unpacked from the Chromium or Firefox zip. The CLI remains the production surface. |
Hardware
| Device | Version | Ironwood | Notes |
|---|---|---|---|
| Keystone | Firmware 3.0.4, Aug 12 | Yes | 3.0.2 added Ironwood support and batch PCZT signing, which is what makes a multi-transaction migration practical on a signing device. 3.0.4 optimizes transaction parsing. Cypherpunk edition only, and it cannot be downgraded to 3.0.0 Multi-Coin or BTC-Only afterward. @dismad posted a walkthrough. |
| Ledger | Not yet released | Merged | PCZT v2 signing merged into app-zcash on July 27, and still not through Ledger’s own review and Ledger Live rollout three weeks later. Treat it as in flight. |
Keystone Cypherpunk users need 3.0.2 or newer to transact on Ironwood, so this is a required update rather than an optional one. Zodl requires firmware 3.0.1 or newer at signing time on both platforms, and blocks older or version-less firmware before anything is broadcast. Verify the checksum on-device before flashing.
Not adding Ironwood support
| Wallet | Last release | Notes |
|---|---|---|
| Ywallet | v1.15.3, Jun 4 | Ywallet has told me directly that it will not be updated for Ironwood. It supports up to NU6.2, with no commits since June 4. |
Ywallet users need to move, and with Orchard sealed this isn’t something to defer. A Ywallet seed phrase restores into any of the wallets above. Ywallet and Zkool share a developer and Zkool is the successor project, so that is the shortest move for anyone wanting to stay in familiar software.
On migration privacy
When funds cross from Orchard into Ironwood, the amount and the block height are public, even though the sending Orchard notes and the receiving Ironwood addresses stay shielded. @zk_nd3r’s testnet scan found distinctive amounts like 0.37663757 TAZ alongside common ones like 1.0 and 10.0, and a distinctive amount is identifiable across the turnstile.
Practical advice:
- Use common, denominated amounts. Powers of ten are the natural choice.
- Don’t migrate your whole balance in one transaction.
- Spread migrations across time rather than emptying an account in one block.
- Avoid mixing transparent or Sapling activity into the migration.
NozyWallet’s breakdown frames the options cleanly: stay in Orchard (the remaining anonymity set shrinks as others leave, and at 80% migrated that is now the dominant risk), migrate everything at once (a distinctive footprint), a ZIP 318 scheduled migration using power-of-ten denominations and shared anchor-height buckets, or route ordinary sends to Ironwood afterward to finish the job.
This is why the ZIP 318 spec is what really matters, and why the tables above track it. A private flow only blends with users of the same wallet; a spec-conformant flow blends with everyone following the spec. Zodl, Vizor and NozyWallet follow ZIP 318, Cake Wallet is mostly compatible, and Zkool uses power-of-ten denominations. Whatever you use, take the wallet’s defaults rather than hand-rolling amounts.
A private migration is slow by design: expect many hours to multiple days. Desktop can run it unattended; on mobile you will be prompted to open the app when each step is due.
A subtle point worth repeating, from Zodl’s engineering notes as they tuned their flow: they removed a fixed ten-minute wait between syncing and sending, on the grounds that a fixed delay between a sync and a send is itself a recognisable pattern on the network rather than protection from one. Timing regularity is a fingerprint just like amount regularity. This is the kind of detail that makes hand-rolling your own migration schedule a bad idea.
The other half: your network address
Denominating your amounts protects what the chain records. It does nothing about what your lightwalletd server sees, which is your IP address tied to every query your wallet makes.
The ecosystem has moved fast here. Zodl ships Tor protection with its migration flow, and Zkool 6.27.0 added Nym mixnet as a transport. @hanh recommends Tor generally, either an embedded arti client or an external socks proxy. @Lowo notes NozyWallet offers Nym, Tor, I2P, or submitting through your own local zebrad, which removes the third party entirely. Running your own node remains the strongest option if you can: nobody learns anything about your queries because you are asking yourself.
On timing. There is no hard deadline, but Orchard is closed, the anonymity set there is shrinking as everyone else leaves, and ZIP 2005 advises migrating everything into Ironwood, including transparent and Sapling funds. At 80% migrated, the remaining Orchard holders are becoming a smaller and more conspicuous group. Migrate deliberately rather than deferring it.
Ironwood for developers
The librustzcash stack is now fully final on crates.io. The wallet crates left release-candidate status on August 19, which was the last piece.
| Project | Status | Notes |
|---|---|---|
| librustzcash | All final | zcash_client_backend 0.24.0, zcash_client_sqlite 0.22.0 and zip321 0.9.0 all went final on August 19. Alongside them: zcash_primitives 0.30.1, zcash_protocol 0.10.5, zcash_keys 0.16.1, pczt 0.9.3, orchard 0.15.5, zcash_proofs 0.30.0, zcash_transparent 0.10.0, zcash_address 0.13.0. No more RC pinning. |
| zcash-devtool | Merged into main |
Balance, list-unspent and send-max surface the Ironwood pool, pczt prove builds Ironwood proofs, wallet send accepts --tx-version 6, and shielding targets Ironwood. No branch checkout needed. |
| zcash-stack | 0.4.1, Aug 18 | Helm charts, Docker Compose configurations, and a deployment workshop. Now includes Zakura, DNS seeder, zecd, webzjs and grpcweb components. |
| zingolib | Merged into dev |
The old feat/ironwood-migration branch no longer exists, so build from dev. |
| z:kv | v0.0.1-rc5 | Supports Ironwood, with a built-in wallet and faucet. Create a database and use the faucet to exercise Ironwood end to end. |
zingolib CLI
git clone https://github.com/zingolabs/zingolib.git
cd zingolib && git checkout dev
cargo run --release --bin zingo-cli -- --chain testnet --server https://testnet.zec.rocks:443 --data-dir ./zingo-testnet
At the interactive prompt:
- new_address o # generate an address
- balance
- send (address) (amount in zatoshis) “(optional memo)”
- migrate - upgrade all Orchard funds into the Ironwood pool.
Building Vizor from source
The Vizor iOS and Android apps are both live (see the mobile table). For development, the migration work is in PR #73 with follow-ups in #80 and #85.
git clone https://github.com/valargroup/vizor-wallet.git
cd vizor-wallet && git checkout adam/migration-tab
fvm install && fvm flutter pub get # fvm pins Flutter 3.41.6
fvm flutter build macos --release \
--dart-define=ZCASH_DEFAULT_NETWORK=test \
--dart-define=ZCASH_ENABLE_LOCAL_IRONWOOD_TESTNET=true \
--dart-define=ZCASH_DEFAULT_RPC_ENDPOINT_PRESET=local-ironwood-testnet
# Run: build/macos/Build/Products/Release/Vizor.app
Coinholder voting is back, on Ironwood
Worth noting since it landed alongside the migration work: ZIP 262 coinholder voting now runs on the Ironwood upgrade. Zkool 6.27.0 added delegation and vote casting, and Zodl has restored Coinholder Polling in Settings, with any rounds you had already taken part in preserved. If you paused voting through the upgrade, it is available again.
Explorers and trackers
CipherScan by @Kenbak tracks the turnstile in detail: total migrated, migration velocity, per-pool balances, overall supply verification, and a per-wallet ZIP 318 conformance breakdown. It is the best single view of how the migration is actually going.
ironwood.live is a community-built migration tracker showing what share of Orchard ZEC has crossed the turnstile, live pool balances, and volume over 24h, 7d, 30d and all time. It is independent and not affiliated with ECC, ZF or Shielded Labs.
Zcash teams are firing “on all cylinders”
Node, indexer, wallet, and hardware wallet support for a consensus change, across more than a dozen independent teams, inside a month, and every major wallet on a private migration path within three weeks. Recent velocity in our ecosystem has been really impressive to witness.
This is a “living document” that I will keep updated as I hear about more apps supporting Ironwood.
It’s extremely important for the community to test Ironwood as it rolls out. My intention in making this list is to make it straightforward for anyone technical to pick up bleeding-edge software and start trying out the latest Zcash update, to help the ecosystem catch any glitches.
Adding Ironwood support to your Zcash wallet? DM me and i’ll add your repo+branch to this list.
Ironward.
