Hey everyone,
I wanted to ask for some advice on something I’ve been working on. Over the years I ended up with way too many seed phrases, mostly because some wallets kept creating new accounts, sometimes things crashed, sometimes I was testing stuff, etc. Long story short, I’ve got more than a thousand seeds now, and I know for sure some of them had funds at some point, but I honestly don’t remember which ones anymore.
So I started building my own setup to scan through all of them and figure out where the notes are. I’m running a local zcashd with txindex and a local lightwalletd, then I call a Rust scanner from Python that processes compact blocks in batches. I derive UFVKs from each seed, group about 500 keys together, pull blocks, scan them and collect whatever notes show up. If I want the exact balance I batch-check the nullifiers through zcashd. I added resume files, retries and timeouts, since the process can run for a long time and sometimes gets stuck on certain ranges.
Most of it works fine, but performance is really inconsistent. Some block ranges fly, others slow down a lot. Around block 1.7M it gets pretty bad and the scanner even froze a couple times, so I had to skip those and scan them later with smaller batches. I’m also on a MacBook with an external USB SSD, so yeah, not exactly ideal, but I don’t know if the disk is the real bottleneck or just part of the problem.
So I’m basically trying to understand if this whole approach makes sense or if I’m overcomplicating it. Is grouping around 500 viewing keys reasonable, or too much? Any rough guidance on batch sizes for blocks or nullifier checks? And is it normal that some ranges of blocks take way longer to scan, or is that usually a sign that something in the setup needs fixing? Also wondering how much of a difference moving everything to an NVMe drive would actually make.
The whole point of this is just to find my old coins and clean up this huge mess of seeds. The system does work, but I want to make sure I’m not doing it the hard way if there’s a simpler or faster method.
Appreciate any help or thoughts.