Nearlybrokes Sprout ZEC recovery thread

so it derives the address from the key! thanks.

the indexing has just finished … but it has started reloading the blockchain again from the very beginning. at least thats what it looks like.

are my lying eyes deceiving me?

 Downloading blocks | 106475 (263476 headers) / ~3203060 (3%)
                    | [                                                  ]
       Next upgrade | Overwinter at block height 347500, in around 418 days
        Connections | 8

Network solution rate | 62.993 MSol/s

Since starting this node 5 hours, 14 minutes, 45 seconds ago:

  • You have validated 2245011 transactions!

Did you accidentally keep -rescan in the config file or in the command line to start the node?

I did not.

I have a config file of:

i-am-aware-zcashd-will-be-replaced-by-zebrad-and-zallet-in-2025=1

gen=0
txindex=1 #avoids re-indexing?

during the 5hour indexing I imported the two keys. I was expecting to initiate a scan after the indexing had finished and then get a balance.

txindex=1 doesn’t avoid indexing, it enables it

1 = true

as with all config options

=0 is false (No)
=1 is true (Yes)

can you say something about the actual issue here?

I have an entire blockchain, I induce indexing on it that takes 5 hours, and then it seems to throw away the entire blockchain.

if that sounds expected to you how about you say why?

FYI the txindex option was there when I started the daemon, the ‘rescanning’ phase passed unexpectedly quickly, and it just sat there with its up-to-date blockchain. fine. I stopped the daemon and restarted with -reindex and 5 hours later, without another restart, the daemon started downloading from scratch.

You may be mixing up two different config terms here

reindex is when you want to maintain a index of every transaction on the blockchain, not just yours. It’s handy if you need to ping the blockchain for other people’s transactions (like running a block explorer) but it’s unnecessary for a regular user. So having it there now will cause the computer to search for all new transactions each time it starts, it has already done it before so the second time you started it, it was much faster. It doesn’t throw anything away.

rescan is when you want to rescan the blockchain for just your transactions so that they will appear in your wallet balance as spendable.

I never use reindex so I can’t say for sure if it will properly account for Zashs private addresses.

Assuming you already imported your private keys, if you are still trying to find private balances that didn’t appear when you reindexed, I would try this:

  1. stop the node properly (src/zcashd stop)
  2. remove txindex from the config file, leave everything else
  3. restart the node with rescan (src/zcashd --rescan)

This is the only way I have been successful in restoring old wallets.

I finally have a complete blockchain and have been able to get a balance on my sprout address.

I did a z_sendmany to a universal address in my wallet and got back a transaction id I guess.

if it works do I need to do anything to see a balance update?

and if it doesn’t work how can I know that?

The output that was returned is an operation id

Running this command with that opid will output the result of the transaction.

After that (or now) you can run z_gettotalbalance

this is a nightmare. it has taken me an additional 2 months to get synchronised and now it crashed with

zcmd z_getoperationresult thread ‘’ panicked at src/rust/src/sprout.rs:104:13:
Couldn’t load Sprout Groth16 parameters file: No such file or directory (os error 2)
Please download this file from xhttps://download.z.cash/downloads/sprout-groth16.params
and put it at /home/farmerc/.zcash-params/sprout-groth16.params
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace


after downloading the file I noticed the daemon was not running and attempted a restart, and:

Error opening block database.
Please restart with -reindex to recover.
Error: Error: Disk space is low!

!!! -reindex

I know what this means by now: it will start all over again.

and it will be the 4th time of downloading the whole chain through no fault of my own.

how long before sprout gets blown away and all my early-adopter coins are vaporized?

Still have a few months before zcashd reaches end of life

as I suspected: it did the reindexing of the whole chain then promptly restarted downloading the chain

from block 0. what a shitshow.

looks like I will need every bit of the ‘few months’ remaining.

unless of course there is some responsible organisation out there that is offering an escape route from the mess the zcash foundation/ECC has created.

I can relate, I don’t know how many times I had to reindex because it didn’t shut down correctly. A realistic option might be to do this on a cloud instance, or a different box in general. May or may not be be any faster, but should be more stable than a home machine.

I was an early investor in zcash and became depressed when it lost 95% of its value and tried not to think about it again. But due to the recent price surge I did become aware of it again, have become aware of the impending sprout-removal, and have been trying to transfer my coin to a sapling/orchard/transparent address for some 4 months via zcashd.

But I am not having any luck. After the software re-downloaded the entire chain 4 times (for unknown reasons, or a crash) I seem to have it retaining what it has even in the face of the latest assertion failure. But that failure is happening however I try to send coin so I am still in limbo.

I have been told zcashd is the last chance saloon for getting out of sprout and I have done what I could. So is that really the case? Is there no other exit provided by the foundation? Is there no one running a working daemon who is of some standing in the community who would volunteer to make the transfer for people with funds trapped inside sprout, even if it is for a bounty?

1 Like

zcashd was maintained by the former Electric Coin Company, now Zodl, but I’m not sure of the current state of the repo wrt to that, whereas the Zcash Foundation builds and maintains zebra.
There are some people still running zcashd nodes and it (restoring someone elses wallet) has been done previously but having someone else do that for you carries certain real risks of losing everything to a potentially untrustworthy person (I’m sure you’re aware of that).

1 Like

So is anyone doing it that is in a position of trust, or has a reputation at stake? As far as I can tell I will lose my coin with 100% certainty at the moment.

1 Like

You will need to provide exact error messages for people to be able to help you.

Hello! I can say with confidence that people do still manage to move coins out of Sprout from time to time, so I do not think your case is hopeless.

I do not have zcashd running anymore myself, since I also moved to Zebra quite a while ago, but here is what I would suggest.

First, if you already have zcashd set up and working well enough to reproduce the error, and you have access to ChatGPT, I would honestly try going through the errors with it step by step. These days that is probably the easiest way to troubleshoot something like this on your own. Just be careful not to paste any private keys, seed phrases, wallet backups, or anything else sensitive into the chat.

Second, if you do not have much technical experience and cannot get through it yourself, I would be willing to try to help, and I would not need any bounty for that. I have a good reputation in the community, and I hope that is enough to give you some confidence that I would approach this in good faith.

1 Like

I didn’t because as a programmer myself I couldn’t imagine anyone wanting to rake over about-to-die code. So I asked for any other options.

But in case this is recognized by someone, here it is:

zcashd: transaction_builder.cpp:744: void TransactionBuilder::CreateJSDescriptions(): Assertion `coinsView’ failed.

For context, the daemon previously bailed for lack of the sprout parameter file, which I installed as per the instructions, and the daemon subsequently downloaded the chain again (although that was probably due to corruption).

2 Likes