That only goes as far back as to version 1.8 from 2015. Electrum's GitHub releases date back to 0.56 from 2012 (
https://github.com/spesmilo/electrum/tags?after=0.57a). I am not sure if it's possible to find versions of the software that are older than that. I think anything older than 3.3.4 can't connect to servers anyway.
For older versions, he can look for a specific commit in GitHub and browse the repository at that point.
For example; from initial commit onwards:
github.com/spesmilo/electrum/commits/master?after=bdbd59300fbd35b01605e66145458e5f396108e8+14035By clicking "<>" (
Browse repository at this point), you can get to the source code at that time to try to run it with old version of Python. (
only useful if the seed is complete)
For example; v0.31:
github.com/spesmilo/electrum/tree/eaedbae083529fc12044ecfb5b0b613c32c70691But, if the notion of what we have been nudging at is true, that the version of Electrum I used had it's own way of using the same 2048 words but NOT implementing the BIP 39 standard, then not only do I have a unique situation, I also have a very difficult path to get the mnemonic correct.
I was using anything from Electrum version 0.29 to 0.46. Maybe there is some backwards compatibility in those versions. I will have to research more
The good news is, Electrum keeps backward compatibility from v0.34 to the latest, the old mnemonic will be detected as "
old" and can be restored in the latest version without issues.
The bad news is, older versions than those have a key derivation bug that had to be patched which causes the private keys derived in those versions different than the keys derived in the newer versions.
In case it was v0.34~v1.9.8, BTCRecover's seedrecover can still be used with the right options when prompted: specifically seed type: "
Electrum 1.x".
But before doing it, double-check the words if those are included to the "
old_mnemonic" in my reply above.
Otherwise, it's newer that you thought or from a different wallet entirely.
Seems like this isn't nc50lc's first rodeo -
https://bitcointalksearch.org/topic/restoring-from-an-electrum-v1-passphrase-5293070The conversation in this thread is highly similar if not identical to my current developing dilemma. And the fact you just linked the method to possibly find the exact version build I may have used is nothing short of miracle work. I have another set of irons to introduce to the fire. I will create either a virtualbox or just run it on an airgapped linux distro if all i need is an older version of python. That is one approach.
Was Electrum installed on Windows using EXE or something else?
I think they were .exe files. The earliest loadable achieve of Electrum's download site I could load from Wayback machine goes back to
May 2013 and version 1.6. It had a Windows executable in .exe format. There is also a zip archive you can download and several third-party releases.
Starting with
version 1.7.3, we see similar executables as today. There is the standalone executable, a Windows installer, and a portable version. They are all in .exe format.
The source I posted from GitHub with the earlier releases are ziped. If you are interested in checking the type of files, you'll have to download some of them to see. My guess is that they were also .exe.
It would be interesting to see if the later versions have backwards compatibility and maybe some improvements in identifying, possibly resolving the compatibility dilemma. Might take me awhile to remember exactly how my version was installed. But at least now I have many more methods of approach.
Great! However, if we know how the seed phrase generation worked back then, we could implement a solution to brute force the missing words. The problem is, I am not aware of the way the used to generate the seed phrases from the entropy.
IF (and ONLY IF) it's a BIP39:The algorithm is:
1. ENT = generate random bits as the entropy (128 bits)
2. B = parse ENT in SHA256
3. CHECK = retrieve the first 4 bits from B
4. FINAL = ENT + CHECK (appended)
5. MNEMONIC = split FINAL into 12 segments of 11 bits each. Convert the 11 bit numbers into decimals. Go to BIP39 wordlist and find in the words in the corresponding decimal places.
So if you wanted to bruteforce it, you could theoretically brute force the missing bits.
Let's move backwards, shall we?
So since you have some of the words, you have something like this:
MNEMONIC = [WORD 1] [WORD 2] [XXXXX] [XXXXX] [XXXXX] [XXXXX] [WORD 7] [WORD 8] [WORD 9] [WORD 10] [WORD 11] [WORD 12]
So, if you find the words in BIP39 word list and get their decimal numbers, then you can convert the decimals to binaries and you will have something like this:
FINAL = [10011001110] [01011111101] [XXXXXXXXXXX] [XXXXXXXXXXX] [XXXXXXXXXXX] [XXXXXXXXXXX] [00000000111] [00110010111] [00011000000] [00000000111] [00111100111] [11000010101]
So, now you can split the FINAL variable into ENT + CHECK (4 bits). It should look like this:
FINAL = ENT + CHECK
FINAL = ENT + [0101]
FINAL = [10011001110] [01011111101] [XXXXXXXXXXX] [XXXXXXXXXXX] [XXXXXXXXXXX] [XXXXXXXXXXX] [00000000111] [00110010111] [00011000000] [00000000111] [00111100111] [1100001] + [0101]
So, now the difficult part...
1. You must generate random bits for all the places where you have an X and parse the whole ENT through SHA256.
2. Then you must take the first 4 bits of the result and check if they are [0101]. Be careful! You will get more than one sequence that starts with 0101. But you will have a much narrower space to search into.
3. Then for every binary sequence that produces the correct checksum, you must produce the mnemonic again and try it to see if it produces your wallet.
If it's Electrum's seed, I will leave it to someone more knowledgeable than me.With BTCrecover I am running my seedtoken off an address.db file. When I tried to use the electrum 1.* option, I got the error saying there was a conflict with 'lang' and I have no idea what that means yet. I will have to make another attempt and copy/paste the exact error. The seedtoken argument worked fine in electrum2 but got no results. I will try to make a run as if it's a basic bitcoin derivation specific to that time and start working with the different versions of Electrum. Hopefully I will get a sense of familiarity immediately when I get the right version.
Once again, thank you all for the great advice, knowledge and confirmed references. Even though it's proving to be far more difficult than expected, just learning more facts, confirming suspicions and ruling out previous beliefs based on evidence, it's a good feeling to know maybe this wasn't all for nothing.