I am now walking in the world of cryptocurrencies, although I heard about it for the first time in 2020. I use the Ywallet wallet, I created a wallet and some recovery words were generated for me, I would like to know if these recovery words work in any wallet . Another question is regarding the various keys that can be generated within a single wallet. If I generate several keys, when I enter another wallet with the recovery words, will the total value of all the keys appear normally? Does it identify the keys I have in a single wallet?
Yes, since Zcash is a fork of Bitcoin, it uses a standard called BIP-39* to generate the “Recovery Phrase”.
This Recovery Phrase will work with any other Zcash wallet.
And the answer for the second part of your question is also yes. keys/addresses are derived according to a standard called ZIP-32**, which is a “hierarchical deterministic wallet”. So every new address you generate is derived from you seed deterministically (and hierarchically) so it should be the same no matter what wallet you use.
*BIP stands for Bitcoin Improvement Proposal
**ZIP stands for Zcash Improvement Proposal
Oh yeah, definitely a scam attempt. Be careful.
This is a good question. Any wallet that supports orchard and full UAs (and seed import) should work, such as (and possibly only) zingo. If a certain level of functional parity does not exist between your old and new wallet choices, then the account balances will not restore correctly.
As a rule, you should not consider seeds to be cross-compatible with different wallet types.
Generating excess keys in another wallet would be akin to zecwallet light. But yes, you are correct. The wallet typically would not know those keys were generated by you, based on seed alone, and the balance would not automatically be restored. New scanning methods are being devised to check whether or not those potential addresses contain a balance (because they generate keys in this way).
Ywallet also allows for importing single private keys as well as sub account scanning (which is this very thing). This means you can import any individual address you had created without having the seed at all, if you desired, potentially eliminating the need for regenerating extra, unneeded addresses.
Current, shielded, Zcash lightwallets like Ywallet do not NORMALLY allow for the generation of extra spending keys within an existing account. Most only support a single account anyways. Ywallet supports multiple accounts and separates your accounts by seed so you will have a different seed for each new account you create and each seed will fully restore the balance per the account.
And yeah don’t answer those dm’s. I don’t know about that person, what their deal is
There are other caveats such as frost and ledger accounts in Ywallet will not restore properly in zingo (the balance may, but good luck spending!). Zcashd seeds may contain extra generated keys like you mentioned and require subaccount scanning. NH doesnt support orchard so there is a little more to it than just the derivation protocol.
So again, best to consider the seeds not cross compatible.
Hi @Autotunafish , I don’t quite understand these sections about Zingo. Would you mind clarifying?
The user specified that the seed was created with Ywallet. From my experience, restoring a normal Ywallet seed in zingo, works. I don’t know of any other light wallets that’s support a full UA in the same way.
Frost and ledger accounts in Ywallet simply have different spend authority functionality from normal so I doubt if that part would be immediately compatible with zingo.
Speaking of Ywallet:
- Multiple accounts created by pressing the “+” button are completely independent from each other.
- The balance does not sum between them
- They have their own seed phrase
- You must back up all the seed phrases
- Sub-accounts share the same seed phrase but use a different derivation path. It is an advanced feature that I do not recommend using if you are not experienced.
- Ywallet only uses the primary derivation path. Therefore its seed phrase should be recoverable in any wallet that supports the same pools. The opposite is not true. Other wallets may use other derivation paths that Ywallet does not know about and therefore it will not find the funds there.
TLDR: Back up all your seed phrases if you have multiple accounts.
I’m curious about this choice; why this approach instead of deriving separately using subsequent BIP-44 account IDs in the derivation path? Or is this what “Sub-accounts” are?
subaccounts are indeed using different a different index under the same seed.
The decision to make accounts in Ywallet use a separate seed phrase was taken early. The reasons are:
- Synchronization is costly. 2 accounts take ~2x longer to sync than 1. I wanted to encourage the usage of diversified addresses vs the creation of more accounts. Most users come from a background of Bitcoin where address creation has little perf impact.
- It is possible to backup the seed phrase and be 100% guaranteed to restore in another app. With account indices, the user has to write down the account index as well.
Some users disliked the approach taken by Ywallet and wanted the zcashd/zec wallet lite model but I feel vindicated when the spam hit. These users had dozens if not hundreds of accounts in their wallet. A few of them lost their funds.
This makes sense, and is a good thing to consider. In the ECC SDKs, we currently only support a single seed, but do support the derivation of multiple BIP-44 accounts (always starting at index 0, and then sequentially in order) but I’m not aware of whether the wallets using the SDK make use of this functionality. Something that we added recently was separate per-account birthday heights, but you’re correct that having multiple independent BIP-44 accounts causes an O(n) scanning slowdown per block, so they should really only be used if a user needs entirely separate pools of funds and just wants a common seed to avoid having to do quite so much steel-plate stamping.
In this scenario, I recommend adding an extra word to the seed phrase. You can leave some funds in the normal address and put the rest in the real address.
@hanh I noticed that when I have coins in the transparent address and I put it to have a shield, Ywallet divides the value into 2 unified addresses, one of which does not appear to me. What would it look like if I restored a seed word, knowing that I have coins at address Z (which appears in the wallet), more coins in 2 unified addresses, and they don’t even appear in the wallet? the fact of having coins in several addresses in a single seed word that motivated me to create this post.
Assuming this is still Ywallet and the seed is from Ywallet then check your settings and make sure main address type is all selected T, S, O.
Otherwise, say, if you imported your Ywallet seed into a wallet that does not have the same support level, then any balance in any unsupported pool won’t show up.
When you shield the Transparent balance, YWallet sends one part to Sapling and the other part to Orchard so that there is a balance between the two shielded pools and thus, by having funds in both pools you can make private transactions without revealing the amount.
YWallet shows you the total balance from the Account tab and by tapping the QR code it shows you the balance you have in the other pools.
If you do not want the balance to be divided into two pools you can do two things:
Perform a transaction to shield using a unified address that only contains the Orchard pool as the only shielded pool, from Receive you can generate the unified address according to the type of pools, or you can also set the main unified address from Settings.
Use the Advanced function to transfer funds between pools, select the transparent pool (where you have the funds) and then select the Orchard pool (where you are going to send them to), to activate the advanced functions go to Settings.
If you restore to another wallet using the seed phrase, make sure that wallet supports the Orchard pool, currently only YWallet and Zingo Wallet (also ZWL, but it is discontinued), wallets that use the ECC SDK (NHW, Edge, Unstoppable, Zashi (still in beta)) do not support Orchard and therefore will not show you the balance you have in that pool.
If I create an account (by clicking on the +) and generate the new seed phrase, then transfer the balance from the previous wallet to the new unified key of the new account (the one I generated by clicking on the +), all the balance that is mixed will be unified in this new unified key of the new wallet and can I keep all the coins in the latest pool?
In this case, if I retrieve the seed phrase in Zashi or any other supported wallet, will I keep all the coins without the risk of any coins missing?
Forgive my ignorance, I find this all very complex, I confess that sometimes I feel afraid of doing something stupid and losing my coins. I still don’t feel very comfortable, but I don’t want to give up because I feel that it is something very useful, not because of the hope of getting rich, but because of the usefulness of saving the money and protecting it from the government, in addition to the fact of inflation and the massive issuance of money fiduciary.
I just want to find a way to protect my money, my coins so that I stay in the most up-to-date pool and can get them back into an up-to-date wallet without the risk of losing the coins I’ve worked so hard to collect.