What a Zcash wallet does
A Zcash wallet stores the keys that control your ZEC; the coins themselves are recorded on the Zcash blockchain. Unlike a Bitcoin wallet, one Zcash wallet manages several separate pools of funds from a single recovery phrase: a transparent pool and one or more shielded pools. Each pool uses different cryptography, so the wallet keeps a separate key for each, all derived from the same seed. Zodl, for example, creates a 24-word recovery phrase. Write it down offline and never type it anywhere except the wallet itself. A swap service never needs it: to receive ZEC you only share an address.
- The recovery phrase restores every pool at once; a single exported key only restores the pool it belongs to.
- Shielded balances need the wallet to scan the chain, so a new or restored wallet takes time to show them.
- Transparent balances can be found almost immediately, because a server can look them up by address.
Zcash address types: t1, t3, zs1 and u1
Zcash addresses look different depending on the pool they pay into. Transparent addresses start with t: t1 for a normal single-signature address and t3 for a multisignature (P2SH) address. Payments to and from them are public, like Bitcoin. Sapling shielded addresses start with zs. The newer shielded pools, first Orchard and now Ironwood, have no address format of their own; they are reached through a unified address, which starts with u1 on mainnet and bundles one or more receivers into one string. Under the Zcash specification a unified address must contain at least one shielded receiver, and a sending wallet picks the best receiver type it supports.
- t1…: transparent, public balance and history.
- t3…: transparent multisignature address.
- zs1…: Sapling shielded address from the older generation of wallets.
- u1…: unified address; the address modern wallets show by default, with a shielded receiver inside.
- tex1…: a TEX address (ZIP 320), a re-encoded t1 address that only accepts funds from transparent inputs; some exchanges use it for deposits.
Which Zcash address to give for a swap
VeriSwap pays ZEC to a transparent t1 or t3 address or to a unified u1 address. Sapling-only zs1 addresses are not accepted, so if an older wallet shows you only a zs address, switch to a wallet that shows a unified address. The choice changes what the public can see. A payout to a t-address shows the amount and your address on the blockchain to anyone. A payout to a u1 address lands in your shielded balance, where what you hold and later spend stays private; as with any shielding payment, an amount that leaves a transparent address is still visible on that side.
- Want privacy at rest: copy the shielded (u1) address from the wallet’s receive screen.
- Wallet or exchange only takes transparent ZEC: use its t1 address and shield later if it is your own wallet.
- Zodl changes its shielded address each time you open the receive screen; every one of them belongs to the same wallet and stays valid.
Shielding ZEC after it arrives at a transparent address
Shielding is a transaction from your own transparent address to your own shielded address. Zodl detects a transparent balance and asks you to shield it with one tap; it requires shielding before you can spend, and only offers it once the transparent balance reaches 0.001 ZEC, because the transaction pays a normal fee. The shielded funds then need 10 confirmations before Zodl lets you spend them. Shielding reveals the amount leaving the transparent side, so Zodl’s own advice is to keep funds shielded for a while rather than moving the same amount straight back out to another transparent address, which makes the pattern easy to follow.
- Receive at t1, shield, then wait before spending: privacy comes from funds resting in the shielded pool.
- Avoid sending the exact amount you just shielded to a transparent address soon after.
- Zkool and Zingo! also offer quick shielding; the steps differ by wallet.
Choosing a Zcash wallet
Most people want a shielded-by-default wallet, meaning it keeps your ZEC in a shielded pool unless you choose otherwise; that is also what the Zcash website recommends. Pick one that is maintained, supports Ironwood and comes from the official site or app store. Our what-is-zcash guide lists the wider set of wallets on z.cash; the ones below are the ones people search for by name.
- Zodl (formerly Zashi): built by Zcash Open Development Lab (ZODL), the team that came from the Electric Coin Company; iOS, Android (Play Store and F-Droid); shielded by default, built-in swaps, Keystone hardware support, shows a shielded and a transparent address on the receive screen.
- Zingo!: built by Zingolabs for iOS and Android; open source; shares unified, TEX and Orchard addresses, sends encrypted memos, and its sync engine lets you spend before a full sync finishes.
- Zkool: a multi-account Zcash wallet on GitHub from YWallet’s developer; supports transparent, Sapling, Orchard and Ironwood pools, view-only accounts, offline signing and importing seeds from other wallets.
- Edge, Unstoppable and Vizor: also listed on z.cash as shielded by default; Unstoppable is a multi-currency wallet.
- Choose Zodl if you want the simplest mobile wallet, Zingo! if you use memos, Zkool if you manage several accounts or old seeds, a multi-coin wallet if you hold other coins in the same app.
Zashi, Zodl, YWallet and Ironwood: what changed in 2026
Two wallet names many people search for changed this year. Zashi is now Zodl. In January 2026 the Electric Coin Company team left ECC and formed ZODL, and from February the app was renamed through a normal update: no new download, no new recovery phrase and no transfer of funds. YWallet is a different story. Its developer’s GitHub page now says YWallet no longer supports Zcash since the Ironwood update, that Ycash remains supported, and that Zcash users should migrate to Zkool, his new Zcash-only wallet, which can import YWallet accounts. YWallet’s documentation site is still online and remains useful background. The change that affects every wallet is the Ironwood upgrade (NU6.3), which activated at block 3,428,143 on 28 July 2026 and added a new shielded pool. Zodl warns that without its Ironwood-ready version the wallet will not sync and cannot send. Your addresses do not change, because Ironwood uses the same receiver structure as Orchard, but moving an old Orchard balance into Ironwood records the amount publicly, though not who sent or received it. The what-is-zcash guide explains the background.
- Searching for “Zashi download”: install Zodl from zodl.com or your app store.
- Still holding ZEC in YWallet: restore the same seed in Zkool or another Ironwood-ready wallet, and enter your birthday height.
- Holding an old Orchard balance: Zodl offers a migration that splits the move into smaller transfers over time, so the amounts are harder to link.
Sync, birthday height and restoring a wallet
A shielded wallet has to download blocks and test each shielded output to see whether it belongs to you, which is slower than looking up a transparent address. The birthday height is the block height when your wallet was created; Zodl shows it on the recovery-phrase backup screen. When you restore, entering it lets the wallet skip everything before that block, so the sync is much faster. If you do not have it, Zodl lets you estimate it from the month you started. YWallet’s documentation notes that the chain carried unusually large blocks from July 2023 to October 2024, so a wallet created after that period should use a birthday after October 2024 to avoid hours of extra scanning.
- Write the birthday height next to your recovery phrase.
- A height that is too early is safe but slow; one that is later than your first transaction can hide funds.
- Zodl offers Tor during sync for network privacy, at the cost of speed, and needs the app open and the phone unlocked to sync.
Hardware wallets and Zcash
Hardware support for Zcash is uneven, so check what each device does with shielded funds before you buy or move coins.
- Keystone: an air-gapped hardware wallet that z.cash lists as shielded by default; you use it through Zodl, which signs outgoing transactions on the device and lets you set a birthday height when connecting it.
- Ledger: Ledger Wallet Desktop added native shielded ZEC on 23 September 2026, built on the Ironwood pool, alongside transparent ZEC it already supported; Ledger says mobile support is not available yet.
- Trezor: Trezor’s own page says its devices support only transparent t-address transactions; shielded Zcash is not compatible.
- Zkool and YWallet also support a cold-wallet setup with two devices, one online with a viewing key and one offline that signs.
Zcash fees: the ZIP 317 conventional fee
Zcash wallets calculate fees with the formula in ZIP 317: 5,000 zatoshis per logical action, with a minimum of two actions. A logical action is roughly one input or output, counted per pool; the ZIP’s Ironwood revision counts Ironwood actions the same way as Orchard ones. A simple transaction therefore pays 10,000 zatoshis, which is 0.0001 ZEC (1 ZEC is 100,000,000 zatoshis), and a transaction that spends many small notes or pays many recipients pays more. The fee is visible on the blockchain even for a fully shielded payment. When you send ZEC to a swap, your wallet pays this fee; for a ZEC payout from VeriSwap, VeriSwap pays the network fee.
- Many tiny incoming payments make later sends cost more, because each note is an input.
- Zodl only offers to shield once 0.001 ZEC has built up, so the fee is a small share of the amount.
Receiving ZEC from a swap
Open the wallet’s receive screen, copy the shielded u1 address (or the t1 address if that is all your wallet or exchange takes) and paste it into the payout field. Compare the first and last characters before you create the order. VeriSwap shows the receive amount with the 0.5% service fee already included and keeps the quote for 15 minutes; the minimum order is 50 USD in value, and there is no account to open. Zcash produces a block about every 75 seconds. Zodl shows an incoming payment once it is mined but needs 10 confirmations, about 12.5 minutes, before it is spendable.
- USDT → ZEC, XMR → ZEC and other routes into Zcash: payout to t1, t3 or u1 only.
- Received at t1 in your own wallet: shield it before spending.
- Save the order reference; the private order page logs each step of the swap.
Sending ZEC to a swap
Send ZEC to the deposit address shown on your order, for the exact amount shown, within the 15-minute quote window. Copy it rather than typing it, and leave enough ZEC for the network fee, which your wallet pays. Look at the address the order shows: if it starts with t1, your payment arrives on the transparent side, so the amount and the deposit address are public even when you send from a shielded balance, while your own shielded address stays hidden. Zodl only spends shielded funds, so if you received ZEC at its transparent address, shield it and wait for the confirmations before sending. The operator checks each deposit by hand before sending the payout.
- ZEC → USDT pays Tether on Ethereum, TRON or Solana; choose the network that matches your USDT wallet.
- After sending, change from the transaction needs 3 confirmations before Zodl lets you spend it again.
- A wallet that has not finished syncing may build a transaction that never leaves; let it sync first.
How to check a ZEC payout, and where the Zcash docs are
For a payout to a t1 or t3 address, paste the transaction ID from your order page into a Zcash block explorer, such as those listed on z.cash’s ecosystem page; it shows your address, the amount and the confirmations. For a payout to a u1 address, an explorer can show that the transaction exists and its fee, but not your address or the amount: those can only be seen in your wallet, or by someone you give a viewing key to. If the explorer shows the transaction but your wallet does not, the wallet is usually still syncing. For anything deeper, the official references are the Zcash documentation on zcash.readthedocs.io and the ZIPs on zips.z.cash: ZIP 316 for unified addresses, ZIP 317 for fees and ZIP 320 for TEX addresses.
Mistakes to avoid
Most Zcash wallet problems come from address types, outdated apps and slow syncs.
- Pasting a Sapling zs1 address into a payout field that accepts only t1, t3 or u1.
- Assuming ZEC at a t-address is private: transparent balances are public.
- Running a wallet that has not been updated for Ironwood, or relying on YWallet for Zcash after its developer ended Zcash support.
- Restoring without a birthday height, or with one that is later than your first transaction.
- Shielding and then immediately sending the same amount to a transparent address.
- Typing the recovery phrase anywhere other than the wallet itself.
Source notes
Network and regulatory facts are based on the documents below. VeriSwap flow details describe the current exchange process.
- Zcash documentation: addresses and value pools (checked 23 October 2026)
- ZIP 316: unified addresses
- ZIP 317: proportional transfer fee mechanism
- ZIP 320: TEX addresses
- Zcash: NU6.3 Ironwood upgrade
- Zcash: ecosystem and wallets
- Zcash: what’s the best Zcash wallet?
- ZODL: Zashi is becoming Zodl (16 February 2026)
- Zodl wallet
- Zodl Support: shielding transparent ZEC
- Zodl Support: when are funds spendable?
- Zodl Support: recovering your Zodl wallet
- Zodl Support: Ironwood steps for Zodl users
- Zingolabs: Zingo wallet
- GitHub: YWallet (hhanh00/zwallet) README
- GitHub: Zkool (hhanh00/zkool2)
- YWallet documentation: rescan and birth height
- Ledger: native shielded Zcash support (23 September 2026)
- Trezor: Zcash and how it works with Trezor