Avengers assemble! Hero Wanted - HELP NEEDED: Lost funds in Zecwallet lite

Mission Possible :upside_down_face: please save my funds

TLDR: Hey Hero it would seem I have made a beginner mistake and I am In need of a 12th Level Intellect to Eli5 how to import a shielded address into ywallet as I sent some ZEC to a transparent address in my Zecwallet.Lite-1.8.8-win wallet the funds synced, I then sent the same funds to a shielded address in my ZWL wallet the funds displayed as spendable however I could not send them back out from ZWL to a different wallet instead got an error which I ignored and clicked rescan before taking note of the initial error now the wallet only syncs to 1725000 and zero funds are displayed.

The initial error believe I saw before hastily clicked rescan and my funds disappeared may have been one of the following;

Error: SendResponse { error_code: -26, error_message: “18: bad-txns-sapling-duplicate-nullifier” }


Error: SendResponse { error_code: -26, error_message: “66: tx unpaid action limit exceeded” }

I reference these from threads with similar sounding issues.
I tried and failed to piece together solutions from various threads including but not limited to;

  • Running a full node however the loading screen freezes,
  • attempting to extract private keys using ZWL Cli, it won’t connect to sever
  • importing ZWL wallet seed phrase into ywallet rescanning from earliest date multiple times with multiple servers, only displays old tx history balances are all zero.
  • deleted all binaries, installed .msi ZWL, won’t connect to server or allow me to change server.

I have the ZWL wallet seed, private key and viewer key for the shielded address.

However I’m at my limits physically and mentally please help!

The details:

Hey @Hanh & @Autotunafish
I am now writing to you specifically as after many hours of combing through posts trying to piece together a solution to my problem your timely advice seems to be posted everywhere, truly the heroes this community needs but perhaps not the ones we deserve…I digress…

My issue is one of my own making…I downloaded the latest windows version of Zecwallet.Lite-1.8.8-win without knowing the issues regarding the need for manual fee calculations and the prior attacks on the blockchain I sent some ZEC to my ZWL

The initial transaction was a test using a transparent address followed by a shielded transaction to another address within my wallet with the same amount:

At this point I assumed everything worked as both transactions completed and the funds displayed as spendable in my wallet so I then tried to remove those funds from my ZWL wallet to a transparent address in a completely different wallet however received an error that I hastily Ignored, didn’t log and instead clicked rescan then went to bed.
I woke up to my fund balance as zero as the ZWL wallet now only syncs to block 1725000 and the recent transaction history is no longer displayed. I have had little sleep since and I am now at my limits and would greatly appreciate your help.

Further details regarding my failed solution attempts:

I have since downloaded ywallet, version: 1.4.2+471 clicked the restored batch option to import using my ZWL wallet seed phrase. I then ran a three full rescans from 2018 using lightwalletd, zecwallet and also used the custom option using server; mainnet.lightwalletd .com:9067

My ywallet settings that I have changed before each scan include: ‘round to millis = deactivated/unchecked’ , ‘play sound = unchecked’ , ‘ hide balance = never’- ‘min privacy = high’ ‘ anti-spam filter = unchecked’

My ywallet is currently on these settings and is fully synced but like the ZWL only displays the old transaction history and although the initial transparent and the shielded address I moved the funds to match what was in my ZWL and are now visible in my ywallet all balances remain at zero despite now being at a block height of 2226574 (at time of writing).

From what I have understood shielded addresses need to be imported individually I believe as sub accounts (per the ywallet website advanced usage>sub-accounts instructions) and I was able to export the shielded address private and viewing key directly from the ZWL wallet however I am unsure how to import this address into ywallet as I initially used the wallet seed phrase to restore.

I then tried following the ywallet website advanced usage>Import from ZecWallet Lite instructions and downloaded and ran Windows-zecwallet-cli-v1.8.0-beta2…

However when inputted this:

Downloads\Windows-zecwallet-cli-v1.8.0-beta2\zecwallet-cli.exe --nosync export > wallet.zwl

The output was this:

thread ‘main’ panicked at ‘Couldn’t get network’, /opt/zecwallet-light-cli/lib/src/lightclient/lightclient_config.rs:146:13

note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

So I thought the zecwallet-cli was defaulting to a server no longer supported so inputted this:

Downloads\Windows-zecwallet-cli-v1.8.0-beta2\zecwallet-cli.exe ./zecwallet-cli --server [https]://[mainnet.lightwalletd .com]:[9067].

The output was this:

Please provide the --server parameter as [scheme]://[host]:[port].

You provided: http://[https]://[mainnet.lightwalletd .com]:[9067].:443

I lastly have tried deleting all Zecwallet.Lite-1.8.8-win binaries and reinstalling the .msi however I cannot restore from seed as I get the following error: " Could not get network from server, connection refused. Is the server address correct? "
I cannot access the serer info in the wallet as this option does not open and It does not allow me to create a new ZWL wallet it is just frozen on the Create A New Wallet / Restore Wallet From Seed screen.

I greatly appreciate your help and thank you for your time.

After importing your ZWL seed phrase into ywallet, did you try to long hold the plus button on the bottom right? I had this issue before with ZWL too, see how I have a few sub accounts? I had to add the sub accounts to see my total balance correctly.

Hope this helps!

No, it’s not your fault, users don’t have the obligation to know technical details about the blockchain status.

Are you writing this Ipsis Litteris? You should remove the brackets around the server uri, i.e.:

Downloads\Windows-zecwallet-cli-v1.8.0-beta2\zecwallet-cli.exe ./zecwallet-cli --server https://mainnet.lightwalletd.com:9067

and use the --nosync flag if you don’t want zecwallet-cli to try syncing the wallet.

I believe your best bet is trying Zingo-PC, since it’s architecture is basically the same as zecwallet-lite, all you addresses should be imported correctly there.

1 Like

Thank you for your super speedy response @dismad like Quicksilver :slightly_smiling_face:

I most defiantly tried the long press my friend… I am unsure about this but I think keys are generated deterministically and as such my last used shielded address should be the first sub-account right? Do I need to need to delete ywallet in the appdata folder and start over with a rescan?

These were the ywallet website advanced usage>sub-accounts instructions I referenced earlier.

Thank you! @james_katz you are Tony Stark :grinning:

Here’s the Ipsis Litteris:
Downloads\Windows-zecwallet-cli-v1.8.0-beta2\zecwallet-cli.exe --server https://mainnet.lightwalletd.com:9067 --nosync

My first attempt has produced the expected result however I only have a single set of keys to export I believe as my last failed solution attempt was to restore from wallet seed directly on ZWL by deleting all the Zecwallet.Lite-1.8.8-win binaries and reinstalling the .msi so I assumed it was pulling from these new files and replaced them with old backups I made prior however when I now run cli I get the following:
Error during startup:non-canonical Option
If you repeatedly run into this issue, you might have to restore your wallet from your seed phrase.
any further thoughts?

I have made a note of zingo-pc option thank you it maybe a last resort as I do not have any experience compiling a wallet but will look for an Eli to guide me through if it comes to this.

Not familiar with windows, but I believe Zecwallet lite stores wallet data in a different directory than the executables.

Try looking for a file named zecwallet-light-wallet.dat
in C:\users\YOUR-USER\appdata\roaming. Rename or move this file to a safe place.
DO NOT delete this file if you don’t have your seed phrase!!! – In any case it’s safer to backup this file somewhere else.

Then try runnin ZWL or ZWL-cli again.

You can use zecwallet-cli to import your seed phrase:

zecwallet-cli.exe --server https://mainnet.lightwalletd.com:9067 --seed “your 24 word mnemonic phrase here” --birthday birthday_height

1 Like

I don’t think trying to make ZWL or its CLI work is worth it, it’s not maintained anymore and has a bunch of bugs.

If you restored the seed in YWallet it should work. Did you try tapping the QR code? IIRC it displays transparent funds separately.

1 Like

“result”: “success”,
“latest_block”: 2226906,
“total_blocks_synced”: 696
(main) Block:2226906

I can see the addresses and when input ‘list’ I can see the missing recent transactions too! We are so close however I am still struggling with the export to file command this is the output I received when I inputted command: export > wallet.zwl

Export private key for an individual wallet addresses.
Note: To backup the whole wallet, use the ‘seed’ command instead
export [t-address or z-address]

If no address is passed, private key for all addresses in the wallet are exported.

export ztestsapling1x6"

I am following the ywallet Import from ZecWallet Lite instructions I also tried these commands found in a YouTube video by the same name :
–nosync export > wallet.zwl
notepad wallet.zwl
type wallet.zwl

The resulting output for the above was " unknown command ".

Lastly I inputted the save command , the output was:

“result”: “success”

Has this just overwritten my old zecwallet-light-wallet.dat ?

I then searched my home directory for a wallet.zwl file and two were found with bytes and were stated to have been created yesterday.

Do you know what the correct command is to produce the wallet.zwl file?

Hey @conradoplg I restored the seed phrase, ran multiple rescans across different servers then hulk smashed (tapped) through all the balances they all display as zero despite now being the same addresses as the old ZWL wallet.
The funds are in the shielded address I can see it in my ywallet it just displays as zero.
If I can get import the shielded keys via the illusive wallet.zwl file I think we would have solved it! any thoughts on how to download the file?

If you know which address has your funds, you can try to find the derivation path and secret key using the :old_key: tool.

I was suggesting adding two sub accounts, so you will have a total of three accounts: the main account that pulls up with the seed phrase, and then two additional sub accounts. Then rescan and see if it shows up. In my case it worked.

Another option to try :+1:

Good luck.

Thank you all for your input so far…

I have tried your sub accounts suggestion @dismad
I created +20 accounts just to be sure then re-scanned I still only get some old tx history and zero balances as I can’t find the shielded address that has the funds amongst those newly created sub-accounts.

@james_katz I opted for the mobile version of Zingo mobile wallet and it has given me the most recent tx history which includes the last completed tx which was to shielded address I used to receive to the funds to myself within ZWL however it does not give me access to the address which has the funds.
When I had access to my old ZWL the funds were received and credited as spendable where should the funds be and how can I restore them?

@hanh thank you very much my friend for your suggestion I have the wallet seed and I know the shielded address where the funds are kept but I have had little sleep so please can you explain as you would a child, step-by-step how I use the key tool to retrieve the private key and then access to my funds?

Hum … :thinking: I have a theory.
Take a look at my zecwallet shielded addresses:

The first address (zs183 …) was deterministically and hierarchically derived from my seed (as per zip32 if i’m not mistaken).
The second address (zs1katz …) is a vanity address I created with an external tool. I then imported the secret key of this address in zecwallet to have access to this address. The only way to have access to this address is having the secret key. Since the vanity address was created externally, no matter how many times I restore my seed, this address will never show up, since it wasn’t derived hierarchically.

Was your address that don’t show up created externally?
If so, do you have the secret-extended-key of this address?

If you still have access to a Zecwallet installation which displays this address, you can try to clicking Export Private Key and then import it in another wallet.

If you’re sure the address was hierarchically derived from your seed, you can try clicking New Sapling Address, since addresses are derived in a deterministic way, soon or later you’ll stumble upon your address.

1 Like

It is a good theory however the address was created internally from my ZWL the following were the order of events;

#1 I got some ZEC externally then sent the ZEC via an external transparent address to my ZWL

#2 Having received the ZEC and seeing my wallet sync beautifully I then clicked receive in my ZWL, clicked new sapling and copy address. I then clicked send, pasted the address and sent the funds to the new sapling shielded address I myself internally created. I received the funds back in my ZWL the funds were credited as spendable in the sapling balance the wallet was synced. There were 2962 Confirmations and the fee was ZEC 0.00001.

#3 I then attempted to send the funds out of my ZWL to an external transparent address but this tx could not completed as instead of sending I received an error (I don’t remember exactly what it was it may have been either or none the errors I referenced in my initial post) after this error I hastily clicked rescan and went to bed waking up to zero funds and now here we are.

I am on +100 rescanned sub-accounts from the restored ZWL wallet seed on ywallet (this might be a new record for sub-addresses).

1 Like

I like your ideas and thought process :nerd_face:
Thank you for your sharing your brain power as I definitely need more of it :sleepy:

Did the rescan complete to 100%? It can typically take a while

Hey @Autotunafish thank you for joining, it did indeed complete and is currently at the time of writing at a height of 2227976 I used the ZWL birthday I got from ZWL CLi (which is before the last tx) and every rescan prior I have scanned from the earliest date in 2018.

Are you able to explain to me how to use the ywallet key tool to find and retrieve a private key from my shielded address?

An update on my ZWL guys…I successfully opened up my Zecwallet.Lite-1.8.8-win (binary edition) and it opened with all the recent tx history wallet successfully synced at a height of 2227976 however what used to be a long list of sapling addresses has disappeared to one address (the same one that is the main account for ywallet), although the list of transparent addresses seems to be unaffected and seems just as long as before.
The wallet balance remains zero.
I can see the last tx which shows the shielded address but there is no history of it be received back into the wallet despite that being the case when the funds reappeared in the sapling balance before I clicked rescan and the problems escalated.

Once I know how to retrieve the private key from my shielded address using the ywallet key tool should Import the private key back into the ZWL, if not once I found out how to get the private key from my shielded address are there any recommendations on where/how to import it?

You can regenerate the shielded addresses by simply creating new ones. The wallet determinism will give you the same address as you had before, but you will have to rescan in order to update the balance.
This is how you have to restore orchard addresses that were generated subsequently because you cannot export the key.

1 Like