From 12, 18, 21, 24 words seed phrase with an optional password
With internal address derivation for change (Zashi, ZIP 316)
From Unified Viewing Key (with complete or partial list of receivers)
From legacy shielded extended keys (secret and viewing) of zcashd
From transparent xpub/xprv keys (Electrum and BIP 32 compliant wallets)
From seed phrase and BIP 44 (Exodus, Ledger, and other transparent wallets)
From transparent secret key (any key export from a transparent wallet)
and of course Ywallet
It handles accounts individually
Each account has its own synchronization state and be included or excluded from the global sync. This allows you to “park” accounts by disabling them. They do not slow down sync of your active accounts. If you need them later, you reenable them and bring them up to date.
An account can be exported and then imported in a different wallet file. The entire data (notes, spends, witnesses, etc) gets saved into an encrypted file.
Wallet files can be also encrypted.
Zkool supports more than one account and does not lock you to the list of accounts1
Its shielded features are as good as Ywallet. In particular, it will
minimize cross pool usage
allow you to select your pools
can create multi recipient payments
and its transparent privacy as good as transparent wallets
shielded wallets tend to handle the lack of privacy of transparent addresses by mandating the shielding of transparent funds before they can be spent (Zashi, Zingo, …). Instead, Zkool supports address rotation for the users2
What it does not do well
UI is basic. There are only a few screens and nothing flashy. On the flipside, the UI is relatively simple to understand.
Some nice to have features are missing
No address book. Mainly because Zcash has diversified addresses that make address books useless if used3
No keytool
No Market Data charts
No customization of reference currency (always USD)
No pool transfer tool
No third party swap integration
No spending tracking
No auto shielding of any sort
Source code and releases on github
Ywallet can only save and restore all the accounts.
Obviously, not as good as shielding but offers some level of privacy.
The diversified address cannot be matched against the one address recorded in the address book.
I’m starting to understand that the vision of being able to restore any Zcash passphrase into any Zcash wallet is too optimistic. Hopefully we can have at least one wallet that can find any funds, but for wallets unable to do that, they should be very clear about it. Users thinking they have lost their funds are not those bringing the best PR to the project, to say the least.
Oh yes. A real problem. For which we have a solution called the ZexCavator! Milestone 4 (I think) of the ZeWIF grant from Zingo Labs and Blockchain commons.
Looks promising. Looking forward to transparent address rotation.
Am wondering how much work it would be to port the flutter_rust_bridge bindings to uniffi to be able to build a React Native UI on top of this. I’d be open to doing a spike on this, but might need to pair with someone more proficient in Rust.
The third party support tends to suck. The GoLang for example, fell behind many versions of Uniffi, making a monorepo approach impossible unless you settle with the older version
I want to transfer my coins to a new zcash wallet. What is the best way? Do I create the zcash wallet directly in ywallet and then open it in zkool or do I create the wallet in zkool and transfer it from ywallet to zkool?
Yes, it is fully functional. It simply has less functionality overall than Ywallet.
When switching between different wallets. I would probably suggest transferring them and then creating a new backup, if possible, but if that’s not an option, then you can attempt to recover. Wrt zashi compatibility, I believe that is what the “Use internal change” option is for when you create a new account (the docs do need updated).
I’ve been looking into this as well, but this tutorial I found here youtu.be/mErOZcKqR0c?si=FQo5xkfE7LCda-A7 chooses to create a library from rust after exposing the api and functions, then attach the library through a react native module and then use the module on the main react native project. Ill love to collaborate too but Im rusty with rust.
Zkool is also a full node wallet because it can connect to zcashd or zebrad directly without a lightnode server. If you try that, it will also be the first Frost transaction for a full node!