Comprehensive guide to recovering your crypto (PLUS DOGE GIVEAWAY)


#1

Comprehensive guide to recovering your crypto

Attention! Giveaway is active! Go to the BONUS SECTION of this guide to learn more!

Foreword

Hello, Crypto Nation!

Today we are going to dive into the wonderful magical world of failure. According to the study, almost 4 million bitcoin (including Satoshi’s original 1 million) may be lost forever. That’s almost one fifth of the total supply of 21 million bitcoin that will ever exist! And the number keeps creeping up…

Most of them are lost due to the carelessness of the owners. Here are a few examples:

  1. The unlucky man who accidentally threw away Bitcoin worth $100 million (He never got it back)
  2. «I forgot my pin» (He, luckily, managed to get his BTC back)
  3. How WIRED lost $100,000 in Bitcoin

Unfortunately, there are just hundreds of stories that are similar to these. People lose stuff, they forget stuff, they don’t care about security. Basically, most of the time it’s just PEBCAK type of an error when it comes to lost crypto-funds. But sometimes it’s just a bug that can be eliminated by reinstalling the software and/or resetting the hardware.

I really hope that you’ll never need to recover your funds and that they are safe.

So… Let’s start the comprehensive guide to recovering your crypto.

List of Contents:

Chapter 1. DO THE FREAKING BACK-UPS OF YOUR OWN FREAKING DATA!!!111!!!111

Chapter 2. WAIT! DON’T PANIC! D-D-D-DON’T P-P-P-PANIC! NOW… DO!

Chapter 3. FINALLY! SOME ACTUAL INFO THAT I CAN USE TO RECOVER MY WALLET!

Chapter 4. GRABBING SOME TOOLS!

Chapter 5. Recovering the passphrase.

Chapter 6. Recovering the seedphrase.

BONUS CONTENT

Disclaimer!

This guide is made for informative purposes ONLY!

The author cannot be held responsible in case of unsuccessful recovery/lost funds or data/hardware failure.

The actions described in this guide can be replicated at one’s own risk.

Various products mentioned in this guide are not promotions. The author doesn’t have any relations (personal or business) with the manufacturers/developers of the mentioned products.


Please Help with Litecoin passphrase issue
Recovery-giveaway - DOGEs Needed
#2

GO BACK TO THE FIRST POST

Chapter 1. DO THE FREAKING BACK-UPS OF YOUR OWN FREAKING DATA!!!111!!!111

First and foremost important thing in computer security is keeping the back-up of all the things. This prevents your nude photos data of getting lost. In bitcoin and other crypto you are held responsible for the safety of your funds. Since there is no central authority (aka bank or court or government) you cannot just walk into bitcoin network with the following complaint:

Uh… Sir, I’ve just lost my private key… Can you please issue me another one and link it to my Bitcoin account?

The nice looking robot with the Bitcoin representative badge would look at you in awe and say something along those lines:

NOPE! SHVtYW4sIGZvciB0aGUgU2F0b3NoaeKAmXMgc2FrZSwgcGxlYXNlLCBzdG9wIGZ1Y2tpbmcgYXJvdW5kISBDYW7igJl0IHlvdSBzZWUsIEkgYW0gZ2VuZXJhdGluZyBibG9ja3MhIEhvdyBkaWQgeW91IGdldCBoZXJlIGluIHRoZSBmaXJzdCBwbGFjZT8=

Well… If you’ve lost your private key and don’t have it backed up, frankly speaking, you are screwed. You may kiss your crypto goodbye. You’ll never able to access your funds. There is nothing that can be done in case of a complete loss of the private keys!

How to properly back up the private keys?

Most modern crypto wallets (mobile, PC and also hardware wallets) use what they call a Backup phrase, a Seed phrase or a Mnemonic key, a list of 12-24 words that you need to either print or to write on paper.

From this phrase, through the use of the complicated cryptography, your private keys is derived. For the multi-asset hardware (Ledger or Trezor) and software wallets like EXODUS or Enjin Wallet this phrase is used to derive the private keys for all of its supported assets.

Many core wallets (the ones that copy the whole blockchain onto your machine, like Bitcoin Core, Litecoin Core, Ethereum Wallet and so on) and online wallets (like MEW, CEW, MyCrypto, etc.) are using the special files (‘.json,’ ‘.wallet’ or ‘.dat’) more known as «Keystore» files that are usually encrypted by the user-defined passphrase. To access the stored funds you will need BOTH the file AND the passphrase. But you can always extract the private keys from them (although it’s not recommended as this process can damage the security of your wallet).

There are many ways to back up your seed, private key or a passphrase. But when it comes to keeping any sensible information secure, remember one simple set of rules:

If you don’t know where exactly your information is stored PHYSICALLY, then it’s not secure!

If you are not sure whether the third-party is able to access your information, then it’s not secure! Because YOUR information should ONLY be accessible to YOU!

Can you tell where exactly your data goes when you upload it to the iCloud, Evernote or Dropbox? NOPE!

Can you access their datacenters and ask them to bring the hard drive with your data? NOPE!

Can you tell whether they are monitoring your files? NOPE!

So… Cloud storage is not the option here.

Ian Balina, the famous crypto YouTuber, had lost $2 million because he kept his key in his Evernote account. To make the story short, his Gmail was hacked and his crypto-assets were transferred to the hacker. And once the coins were transferred, there is no-one to blame as there is no central authority in crypto.

Paper, however, still remains the most practical way of storing information long term after about 21 centuries of its existence. But like everything else, it frays, decays and gets damaged by the elements. And if you lose part of the key, you lose it all. Unless you have photographic memory!

If you live in harsh conditions or want some extra peace of mind it’s always better to get some protection for your keys. You can laminate the paper, put it into a fireproof safe or a pocket. You can even dismiss the paper and use something more robust, like steel, where you can engrave, etch, or stamp your key onto it. But if you are not the DYI-type of guy, there are products like CryptoSteel, Bitkee and others ready for you.

Regarding the durability of these pre-made ready-to-use solutions I’d recommend reading this Medium article by Jameson Lopp where he does a stress test of retail cold storage devices simulating various disasters such as a house fire, corrosion and crushing.

For all the digital bits and bytes, I’d recommend to have an encrypted flash drive to backup the wallet files.

But if you want to go that extra mile and become part of the cyber-punkish digital resistance of deep-deep web White Hat hackers, I’d suggest to get the drive loaded with TAILS and using its persistent storage function along with the DiceWare save everything there… But for real…

V2hhdCB0aGUgaGVsbCBhcmUgeW91IGRvaW5nIGhlcmUgYW55d2F5PyBUaGlzIGlzIHRoZSBndWlkZSBmb3IgXVxbMDB8MzUsIG5vdCBsaWtlIHlvdSB3b3VsZCBuZWVkIHRoaXMgc3R1ZmYuLi4gR28gcGFyc2UgYSBwb3J0IG9yIHNvbWV0aGluZyE=

TL;DR for the Chapter 1.

  1. DO BACKUPS!
  2. DO BACKUPS!
  3. DON’T USE CLOUD FOR BACKUPS!
  4. DO THE FREAKING BACK-UPS OF YOUR OWN FREAKING DATA!!!111!!!111 (hence the title)

#3

GO BACK TO THE FIRST POST

Chapter 2. WAIT! DON’T PANIC! D-D-D-DON’T P-P-P-PANIC! NOW… DO!

As some of the visitors of the BitcoinPub know, my specialty here is to help the members of our community to try and recover their crypto-assets.

Here are some cases of successful recovery that I’ve been involved in:

All these cases all have the similar issue: the panic associated with losing funds. The panic makes people behave in an irrational manner. So the first thing to do if you think you’ve lost your funds is to… RELAX.

Yeah-yeah-yeah! I know what you are thinking:

I’ve lost all my foking Bitcoin! My wife will never believe in me! My wife will leave me! No-no-no! MY-BEEETCOOOEEEEENNN-IS-GOOOONEEEEE! (Good riddance!) :beetconnect::beetconnect::beetconnect:

But did you really lose them? I mean sometimes you franticly try to remember what you did wrong and just can’t. It makes your fear of losing funds grow stronger and stronger. Your heart is pumping in your neck like crazy. You are tearing hair out of your head. Well… You are basically panicking. Don’t panic!

Last time I was helping the guy who supposedly lost like a half of his bitcoin from the Ledger. They were showing on the blockchain explorer. But Ledger Bitcoin Wallet (Chrome Extension) was showing only half of the incoming bitcoin. Due to the panic he did not try the obvious solution: to reinstall the software. I told him to try it and it turned out that it was a bug in the software. Now I hope that his «funds are safu».

The other case I was involved in has gone like this: Some guy was asking me to try and bruteforce his LTC wallet because he could not get his passphrase to work. I always ask people to describe the Sequence of Events (SoE) in as much detail as possible before even considering possible solutions. While writing the SoE to me he had an Eureka-moment. He remembered the correct passphrase and unlocked his wallet. All without my actual involvement.

So… If you think you’ve lost the access to your funds, don’t panic! Try to relax and think of how exactly you did it. Don’t panic! Try to think straight. Don’t panic! And try to remember the exact SoE that led you to it. And remember: Don’t panic! Maybe you are trying the passphrase from a different wallet. Maybe it’s lying somewhere in your papers and you forgot you put it there. Maybe you forgot that you’ve changed the wallet file (happened once to myself). The point I’m trying to make is (you guessed it): RELAX and don’t panic!

If you are so frustrated and can’t do this all in your head, write everything down. Writing this stuff down could really help.

Questions to ask yourself…

Breathe, dude… Just breathe… Relax.

What exactly happened?

Are funds “safu”? (Check that funds are really there on your address in the blockchain)

If not, could I have sent them somewhere myself? (Check exchanges, recent transactions history, purchases, etc.)

If yes, what did I do exactly? (Basically, do a SoE routine)

If after this you still have no clue where your funds are or you still haven’t accessed your wallet… well… say to yourself:

Well… Now I’m actually screwed… PANIC MODE ENGAGED I might need some extra help on this one…

TL;DR for the Chapter 2.

In case of fire:

  1. Don’t panic!
  2. Relax (try to do a breathing exercise)
  3. Try to analyse the situation (do a SoE routine)
  4. GRAB THAT DUCKING HUMMER AND SMASH THE GLASS ALREADY!
  5. If it did not help, read the next chapter.

#4

Chapter 3. FINALLY! SOME ACTUAL INFO THAT I CAN USE TO RECOVER MY WALLET!

And you’re right! In the next chapters I’ll give out all of the secrets of my craft that I kept for so long to myself. I’ll give you… my secret key to tamper any existing blockchain and reverse any transaction. FOR I AM SATOSHI NAKAMOTO! Muhahahahaha!!!

Kept you waiting, huh?…

Wow… Easy… Easy, keyboard warriors… Ok… Ok… I am not Satoshi! Fine?! Fine!
Jesus… Let the man dream for a bit, will ya?

First of all, when I work with people, I determine the possibility of the recovery.

When IS the wallet recoverable?

  1. When a person has the undamaged wallet file and has a clear understanding of what his passphrase could be.
  2. When a person has MOST of the seed phrase in the exact order and only a couple (3 words MAX) of it is missing.
  3. When a person has the whole seed but it’s out of order.
  4. When a person has encountered a software error (not related to the wallet corruption).

When is the wallet NOT recoverable?

  1. When a person has the damaged wallet file (and doesn’t have a backup copy).
  2. When a person has the undamaged wallet file, but got no clue of the passphrase.
  3. When a person has MOST of his seed wiped out and all mixed up.
  4. When a person sends the funds to a wrong or malicious address

It’s blockchain, baby. Everything you gotta verify, or kiss your funds goodbye! yo! #thuglife #bitcoin_rap #bad_pun_intended

So the rule of thumb here is this:

The more concrete info you have about your case, the more chance you have to successfully recover your wallet.

Now on to some FAQ:

Q: I have an address with 1000 bitcoins. It’s mine! But I’ve lost the private key. Can you generate the key from the address? I’ll give you half of my bitcoins.
A: NOPE! GTFO, Nigerian Prince! I’m not going to sit in front of a computer for billions of years to find the right key pair! (Yes, on average it takes THAT MUCH TIME to brute force a Bitcoin key pair on a regular machine. DON’T EVEN TRY!)

Q: I don’t remember the passphrase to the Litecoin Core .dat file. Can you brute force it?
A: NOPE! Unless you can remember the exact amount of symbols in it. Yes, including spaces and other invisible ASCII symbols.

Q: Here is my seed. I know it’s only one half. My doge ate the other half. What can I do?
A: If you don’t have access to your wallet without the seed, you can politely ask your doge to poop out the other half. If at least 3-4 symbols of each word is visible after cleaning, then you should be fine.

Q: My seed got washed in the washing machine. I can only see half of the letters in the words! Can you help?
A: YUP! Let’s grab some tools.

TL;DR for Chapter 3.

Determine whether or not your wallet is recoverable. Go read at least half of the chapter, for god’s sake! It’s not that hard!
sigh


#5

GO BACK TO THE FIRST POST

Chapter 4. GRABBING SOME TOOLS!

Like every other job, wallet recovery requires some tools to get it done cleanly and efficiently. I mean it’s possible to skin the potato using scissors. But, for real, why would you do it?

What knawlege do I need to get my wallet recovered?

First of all, you need to familiarise yourself with the CLI (Command Line Interface) as for the most of the tools that we are going to use there is no GUI (Graphical User Interface).

For doing it, I’d recommend you to go through a couple of tutorials and guides. For example:

I know… I know… Learning is tedious. But hey, at the end you are probably going to return your funds. Plus in the process you will learn a thing or two about programming, CLI and all that nerdiness. Win-win, right?

The second thing you are going to need is the most important aspect of it all. I can’t stress this enough:

The more info you have about your case, the more chances you have to successfully recover your wallet.

So gather as much info as you can.

Are funds safe? Are you sure that this address still contains your coins? Are you sure that this is YOUR address? Don’t go stealing or “borrowing” someone else’s address now… that’s NOT cool! Doge won’t be happy.

Where do you keep your seed? Can it be anywhere else?

Did you store your passphrase physically or digitally? Does the medium that the pass is on in acceptable conditions?

Where did you store your wallet file?

Has the file with your passphrase been changed? When? How?

Basically, do the routine described in Chapter 2.

Got all the info? Good. Have confidence that it’s gonna work? Great.

Now we are diving deeper.

Installing the tools

For the job we are going to use the BTCRecover tool. You can read about its supported wallets and features on the Github page

BTCRecover has become my daily driver when it comes to recovering other people’s wallets. It supports not only BTC, so don’t be let down if, let’s you’ve lost all your DOGE wealth. Full list of features and supported clients is are available on the Github page. It’s very easy to use. But you need to be very careful with its scripting language. More on that later.

  1. On how to install the tool and all the necessary components visit https://github.com/gurnec/btcrecover/blob/master/docs/INSTALL.md (follow the instructions for your OS).
  2. Read the tutorials. If you need to recover your passphrase, read this. If you need to recover the seed, read this.
  3. Also, please, consider supporting the developer if you find this tool helpful.

To test the installation cd to the folder with the tool and run run-all-tests.py file. It will run all the necessary tests making sure that everything is installed and runs correctly. It should give you something like these:


Testing btcrecover 0.17.10 on Python 2.7.10 64-bit, 16-bit unicodes, 64-bit ints

** Testing in ASCII character mode **

.s......................................................................................s........................................s...............................s........sssss...ssssss...s.s.s.s.s.s....ss....s.s.ssssssssss.sss.ssssssssssss.ssssssssss....sss.sss.ss..ss.ss.s.sss.sssssssss.ss...

----------------------------------------------------------------------

Ran 293 tests in 47.756s

OK (skipped=87)

** Testing in Unicode character mode **

..........................................................................................................................................................................sssss...ssssss...s.s.s.s.s.s....ss....s.s.ssssssssss.s.s.s.ssssssssss.s.ssssssss......s.s.s.ss..s..s..s.s.s.s.sssssss.s....

----------------------------------------------------------------------

Ran 293 tests in 51.380s

OK (skipped=72)

If everything is OK we can move on to the actual recovery.

IMPORTANT!!!

During the initial run of the BTCRecover tool you may encounter the following error:


ImportError: No module named xxx

(Where xxx is the name of a module)

Don’t fret! It means that the tool requires the specific Python module to be installed in your system.

It’s usually done with pip install xxx (Where xxx is the name of a module).

On how to install the specific Python module I’d suggest checking the StackOverflow Q&A base. Just search for the error and you most likely will find the answer.

TL;DR for Chapter 4:

  1. Get Python
  2. Get BTCRecover tool
  3. Try to run the tool
  4. Fail
  5. Google steps to get the tool running
  6. Get BTCRecover tool up and running

#6

GO BACK TO THE FIRST POST

Chapter 5. Recovering the passphrase.

This is going to be two long chapters. So grab your beverage of choice, get cozy and keep on hacking.

Practice makes perfect

Instead of making the boring tutorial on how to recover your funds I’m going to give you the opportunity to hack to recover the Dogecoin wallet specially created for this purpose. It’s going to have some funds (at least at the time of publishing). I want you to play fair and take 10 DOGEs max per person. But hey… it’s not that I care, but please, if you decide to take funds, at least leave some in the wallet so the next person going through this tutorial can have the chance too.

All of the necessary details regarding the Doge contest will be in the BONUS CONTENT section of this tutorial.

Are we clear? OK! Let’s start with the empty wallet first.

Download the wallet file here and put it into the BTCRecover folder. This .wallet file is the MultiDoge file containing private keys.

First we need to write a script for the tool to work with.

I am certain that the passphrase contains this set of words:


TheBitcoinPub

Is

The

Best

Crypto

Forum

But I don’t remember whether it should contain any spaces or dashes or underscores between the words. But I tried on handpicking and it did not work. So it must contain some extra symbol either on the end or in the beginning of the phrase. Or both. I also don’t remember whether I capitalised the words or not.

Picking all the variants by hand would take a significant amount of time. That’s why we are going to let the BTCRecover tool do the hard work for us.

First of all we need to read the documentation of the tool in order to make the so-called Token file: https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md

I’d suggest you to read it thoroughly and understand how it all works.

Well… Let’s create token.txt file and put it into the BTCRecover folder along with the wallet file.

Our first attempt would be to try and put every single word in there to try all the possible combinations (simple brute forcing without «wildcards»)

So our token.txt should contain the following:


TheBitcoinPub

Is

The

Best

Crypto

Forum

Now to test this token we need to cd into our BTCRecover directory using the command line and run the following command:


python btcrecover.py --tokenlist=token.txt --listpass

It does NOT start the recovery process but rather just lists the possible variations of the given token.

It’s always a good idea to test the script before the actual recovery to see whether it includes all of the given words.

To start the actual recovery you need to use the following command:


python btcrecover.py --tokenlist=token.txt --wallet=trytoopenme.wallet

Once again, token.txt is our «attack script» and trytoopenme.wallet is our passphrase-protected wallet file. You can change these to suit your needs.

From this token you would get 1956 different combinations. Here are a small number of combos that BTCRecover will try:


TheIsBestTheBitcoinPubForumCrypto

TheIsBestTheBitcoinPubCryptoForum

TheIsTheBitcoinPubForumCryptoBest

TheIsTheBitcoinPubForumBestCrypto

TheIsTheBitcoinPubCryptoForumBest

TheIsTheBitcoinPubCryptoBestForum

TheIsTheBitcoinPubBestForumCrypto

So you get the point.

Now let’s try something different. Since we don’t know whether the letters are capitalised or not, let’s try to modify our original token:


TheBitcoinPub TheBitcoinpub ThebitcoinPub Thebitcoinpub theBitcoinPub theBitcoinpub thebitcoinPub thebitcoinpub

Is is

The the

Best best

Crypto crypto

Forum forum

Here we are trying all of the different capitalisation options.

NB: Note how the possible variations of a single word are on the same line. It is VERY IMPORTANT to put the variations of a single word into one continuous line of text due to the nature of the tool’s scripting language.

It results in a whopping number of combinations: 284898. That’s the quite some work for a computer to analyse (It could take at least 1 hour to complete)

But we know that it should be the phrase, right? Ok… Let’s try something different:


^1^TheBitcoinPub ^1^TheBitcoinpub ^1^ThebitcoinPub ^1^Thebitcoinpub ^1^theBitcoinPub ^1^theBitcoinpub ^1^thebitcoinPub ^1^thebitcoinpub

^2^Is ^2^is

^3^The ^3^the

^4^Best ^4^best

^5^Crypto ^5^crypto

^6^Forum ^6^forum

Here we are putting the numbers between the two ^ symbols to show the tool that thebitcoinpub goes first, is second, the third, etc. This significantly reduces the number of combinations: 504.

NB: Use the so-called «anchors» ONLY if you know the order of words in your passphrase. In the example above we assumed that the passphrase is the actual phrase thebitcoinpub is the best crypto forum with some variations. When you would recover a wallet, you may not know the order.

Below is the snippet of different combos:


TheBitcoinPubIsTheBestcryptoForum

TheBitcoinpubIsTheBestCryptoforum

ThebitcoinPubIstheBestcryptoforum

Notice how it’s picking the words exactly as we put them in queue. As you can see there are no spaces between the words. We did not tell the program to type them yet. Let’s do this now.

In order to put a space between the words we are going to use a «wildcard» %s in order to indicate the space.

> NB: There are many other wildcards supported by the BTCRecover tool. All of them are described in the tutorial section on GitHub page.


^1^TheBitcoinPub ^1^TheBitcoinpub ^1^ThebitcoinPub ^1^Thebitcoinpub ^1^theBitcoinPub ^1^theBitcoinpub ^1^thebitcoinPub ^1^thebitcoinpub ^1^%sTheBitcoinPub ^1^%sTheBitcoinpub ^1^%sThebitcoinPub ^1^%sThebitcoinpub ^1^%stheBitcoinPub ^1^%stheBitcoinpub ^1^%sthebitcoinPub ^1^%sthebitcoinpub

^2^Is ^2^is ^2^%sIs ^2^%sis

^3^The ^3^the ^3^%sThe ^3^%sthe

^4^Best ^4^best ^4^%sBest ^4^%sbest

^5^Crypto ^5^crypto ^5^%sCrypto ^5^%scrypto

^6^Forum ^6^forum ^6^%sForum ^6^%sforum

Notice how our token became bloated. Therefore there are 21840 combinations to go through. Unfortunately, there is just no way to make this shorter (like in the previous section).

But we have not cracked the passphrase yet. It can be dashes instead of spaces or underscores. Let’s add those to the mix.

At this point it’s very difficult to keep track of the stuff that goes into the passphrase. That’s why I like to add some comments by doing # at the beginning of the line.


# This is the comment. It gets ignored by the program.

### thebitcoinpub

^1^TheBitcoinPub ^1^TheBitcoinpub ^1^ThebitcoinPub ^1^Thebitcoinpub ^1^theBitcoinPub ^1^theBitcoinpub ^1^thebitcoinPub ^1^thebitcoinpub ^1^%sTheBitcoinPub ^1^%sTheBitcoinpub ^1^%sThebitcoinPub ^1^%sThebitcoinpub ^1^%stheBitcoinPub ^1^%stheBitcoinpub ^1^%sthebitcoinPub ^1^%sthebitcoinpub ^1^-TheBitcoinPub ^1^-TheBitcoinpub ^1^-ThebitcoinPub ^1^-Thebitcoinpub ^1^-theBitcoinPub ^1^-theBitcoinpub ^1^-thebitcoinPub ^1^-thebitcoinpub ^1^_TheBitcoinPub ^1^_TheBitcoinpub ^1^_ThebitcoinPub ^1^_Thebitcoinpub ^1^_theBitcoinPub ^1^_theBitcoinpub ^1^_thebitcoinPub ^1^_thebitcoinpub

### IS

^2^Is ^2^is ^2^%sIs ^2^%sis ^2^-Is ^2^-is ^2^_Is ^2^_is

### The

^3^The ^3^the ^3^%sThe ^3^%sthe ^3^-The ^3^-the ^3^_The ^3^_the

### Best

^4^Best ^4^best ^4^%sBest ^4^%sbest ^4^-Best ^4^-best ^4^_Best ^4^_best

### Crypto

^5^Crypto ^5^crypto ^5^%sCrypto ^5^%scrypto ^5^-Crypto ^5^-crypto ^5^_Crypto ^5^_crypto

### Forum

^6^Forum ^6^forum ^6^%sForum ^6^%sforum ^6^-Forum ^6^-forum ^6^_Forum ^6^_forum

Whew… That was a very tedious to write. But hey… We are slowly approaching the complexity of the real wallet recovery job. Yay!

Let’s calculate how many guesses would it take to process this beast!… 1198368! That’s a lot of guesses, isn’t it? It’s gonna take at least 4 hours of guesswork from the regular PC. But thanks god, we don’t have to do this all by hand!

Ok. What was our initial request again?

But I don’t remember whether it should contain any spaces or dashes or underscores between the words. But I tried on handpicking and it did not work. So it must contain some extra symbol ether in the end or in the beginning of the phrase. I also don’t remember whether I capitalised the words or not.

Aha! The words thebitcoinpub and forum may contain any symbol in the beginning (for thebitcoinpub) or the end (`forum’).

But we can’t just type all of the symbols of the ASCII table. Plus there are «special» characters, like tab, line feed, and carriage return. Yes! The characters are everywhere! There are just too many of them! I’ll never be able to comprehend them all! I AM SCREWED! PANIC MODE!!!

What did I tell you about panicking? Keep calm and keep on coding!

Don’t fret! There is a wildcard for everything, literally. If you read the documentation of the BTCRecover tool, this must look familiar:


%s - a single space

%l - a single line feed character

%r - a single carriage return character

%R - a single line feed or carriage return character

%t - a single tab character

%T - a single space or tab character

%w - a single space, line feed, or carriage return character

%W - a single space, line feed, carriage return, or tab character

%y - any single ASCII symbol

%Y - any single ASCII digit or symbol

%p - any single ASCII letter, digit, or symbol

%P - any single character from either %p or %W (pretty much everything)

So… Based on our original request, we can assume that we need %y - any single ASCII symbol. But if that fails, we can always run %P - any single character from either %p or %W (pretty much everything)

Let’s adjust our token.txt to include this stuff:


# This is the comment. It gets ignored by the program.

### thebitcoinpub

^1^TheBitcoinPub ^1^TheBitcoinpub ^1^ThebitcoinPub ^1^Thebitcoinpub ^1^theBitcoinPub ^1^theBitcoinpub ^1^thebitcoinPub ^1^thebitcoinpub ^1^%sTheBitcoinPub ^1^%sTheBitcoinpub ^1^%sThebitcoinPub ^1^%sThebitcoinpub ^1^%stheBitcoinPub ^1^%stheBitcoinpub ^1^%sthebitcoinPub ^1^%sthebitcoinpub ^1^%yTheBitcoinPub ^1^%yTheBitcoinpub ^1^%yThebitcoinPub ^1^%yThebitcoinpub ^1^%ytheBitcoinPub ^1^%ytheBitcoinpub ^1^%ythebitcoinPub ^1^%ythebitcoinpub

### IS
^2^Is ^2^is ^2^%sIs ^2^%sis ^2^-Is ^2^-is ^2^_Is ^2^_is
### The
^3^The ^3^the ^3^%sThe ^3^%sthe ^3^-The ^3^-the ^3^_The ^3^_the
### Best
^4^Best ^4^best ^4^%sBest ^4^%sbest ^4^-Best ^4^-best ^4^_Best ^4^_best
### Crypto
^5^Crypto ^5^crypto ^5^%sCrypto ^5^%scrypto ^5^-Crypto ^5^-crypto ^5^_Crypto ^5^_crypto
### Forum
^6^Forum ^6^forum ^6^%sForum ^6^%sforum ^6^-Forum ^6^-forum ^6^_Forum ^6^_forum
### Any ASCII symbol
^7^%y

Notice how I changed the dashes and underscores with %y wildcard in thebitcoinub word. Because it’ll include both of them in the queue. I also added ^7^ to try and guess that last symbol. But when we try to run the BTCRecovery with this token.txt it gives us the error, telling us that max ETA is reached (which is by default set to 168 hours of guesswork). There are ways to overcome this (like running the tool with --max-eta=100000000 command to give it basically infinite amount of time [more than 11415 YEARS]), but it’s just not the most efficient way, because on a regular PC this queue would take more than 28 days and will likely result in memory overflow (in my case it was memory overflow which prevented me from giving you the exact amount of variants, which was in the realm of 1 BILLION before my home PC gave up and became unresponsive). So… We need to change our `token.txt’ file.

Since we are sure of the order of words and the appearance of those words in the passphrase we can use + sign in front of the line to indicate that this word SHOULD be included (along with its variations)

Plus we are sure we’ve used some characters between the words (either the best, or the_best, or the-best and NOT thebest).

Our new token.txt should look like this:

# This is the comment. It gets ignored by the program.
### thebitcoinpub
+ ^1^TheBitcoinPub ^1^TheBitcoinpub ^1^ThebitcoinPub ^1^Thebitcoinpub ^1^theBitcoinPub ^1^theBitcoinpub ^1^thebitcoinPub ^1^thebitcoinpub ^1^%yTheBitcoinPub ^1^%yTheBitcoinpub ^1^%yThebitcoinPub ^1^%yThebitcoinpub ^1^%ytheBitcoinPub ^1^%ytheBitcoinpub ^1^%ythebitcoinPub ^1^%ythebitcoinpub
### IS
+ ^2^%sIs ^2^%sis ^2^-Is ^2^-is ^2^_Is ^2^_is
### The
+ ^3^%sThe ^3^%sthe ^3^-The ^3^-the ^3^_The ^3^_the
### Best
+ ^4^%sBest ^4^%sbest ^4^-Best ^4^-best ^4^_Best ^4^_best
### Crypto
+ ^5^%sCrypto ^5^%scrypto ^5^-Crypto ^5^-crypto ^5^_Crypto ^5^_crypto
### Forum
+ ^6^%sForum ^6^%sforum ^6^-Forum ^6^-forum ^6^_Forum ^6^_forum
### Any ASCII symbol
^7^%y

This is our final token file for this job, which should include ALL of our requirements:

  1. thebitcoinpub with all the variants of the capitalisation with the possibility of any ASCII symbol in the beginning.
  2. is, the, best, crypto, forum with all the variants of the capitalisation plus ether dash or underscore or space between them.
  3. The possibility of any ASCII symbol in the end of the passphrase

So, like I said, when recovering your wallet before doing anything make a list of all the necessary requirements for the passphrase. What it may and may not contain. Make a list of the possible variants of the words and symbols, etc.

Putting this all into our token.txt should give you *67 744 512 variants . So the max-eta will be reached anyway. Take it to the extreme, and add —max-eta=100000000 into the command. By the way, ETA of this particular job on a regular PC should be about 13-14 days. Which seems like a very long time, considering the whopping amount of variants the tool is required to go through. But, trust me, this job is not as complex as it can be.

NB: Remember that with every additional variant, symbol or word the difficulty of the wallet is raised to the power of all the variants combined. So the less variants we put in our token file the better. And faster.

Given the fact we can’t run the PC for two weeks straight (as it uses all of the CPU threads by default, significantly crippling the performance. Plus there is always a chance of the power outage and overheating) we are going to use the BTCRecover’s autosave feature.

Just add the --autosave savefile into the command.

The final command should look like that:

python btcrecover.py --tokenlist=token.txt --wallet=trytoopenme.wallet --max-eta=100000000000 --autosave savefile

If the power outage has occurred or you accidentally closed your CLI instance, you can run the following command to resume the recovery job:

python btcrecover.py --restore savefile

If you need to do some performance-heavy task you can interrupt the BTCRecover tool by doing Ctrl+C to interrupt the recovery process

You can read more on the autosave and interrupt features in the tutorial section on the tool’s GitHub page.

After a long while you should finally get the wallet unlocked with the following passphrase:

=TheBitcoinpub-is-the Best Crypto_Forum/

Congratulations!

YOU NOW KNOW HOW TO RECOVER YOUR PASSPHRASE! YAY!

TL;DR for Chapter 5:

    1. Read and understand the documentation
    1. Try to make the token file and run the tool.
    1. Problems? Go and ACTUALLY READ the chapter.

#7

GO BACK TO THE FIRST POST

Chapter 6. Recovering the seedphrase.

So I see you have your seed in bits and pieces. That’s sad. But the old BTCRecover tool can help with that.

Well… In fact, the developer of the BTCRecover already made a good tutorial on how to recover the seed using the tool. So I suggest to read it first, get the understanding of what you need to know, and come back for more examples with screenshots.

Read the official tutorial? Good. Let’s keep on hacking.

To illustrate how this tool works we are going to use the BIP-39/BIP-44 compatible BTC wallet (Jaxx, to be precise, although I would not recommend using it as a hot wallet, because it does not encrypt the seedphrase and thus vulnerable to the attacks).

It’s going to give us the list of 12 words (our seedphrase). Once again, this wallet is EMPTY and is for illustrative purposes only. I’ll give you the opportunity to hack to recover the wallet with some DOGE on it later.

So… Here is our incorrect seed:

spit custom miracle bay plague tongue rain foot earth rise equip turn

According to the requirements we also need to know one of our addresses or xpub master public key.

Since we can remember that our BTC address was 1Dz2gGTWvtgksugirUrAtvASCyRwPtjXxJ we can assume we’ve got what we need.

But before going into the tool it would be nice to check whether these words can even exist in mnemonic key.

To do that, let’s check the BIP-39 wordlist

As we can see (by doing some quick search in the English wordlist) there are some words that are non existent in our seed: spit, bay, plague, rise.

And the tool tells us about it when we run it:

'spit' was in your guess, but it's not a valid seed word;
trying 'split' instead.
'bay' was in your guess, but it's not a valid seed word;
trying 'baby' instead.
'plague' was in your guess, but it's not a valid seed word;
trying 'page' instead.
'rise' was in your guess, but it's not a valid seed word;
trying 'raise' instead.

Good enough. It starts to work on it. And it goes through 4 phases:

Phase 1/4: up to 2 mistakes, excluding entirely different seed words.
Phase 2/4: 1 mistake which can be an entirely different seed word.
Phase 3/4: up to 2 mistakes, 1 of which can be an entirely different seed word.
Phase 4/4: up to 3 mistakes, 1 of which can be an entirely different seed word.

Each phase goes longer than the previous.

Phase 1 was only 1 second long with 11904 variations.
Phase 2 was 3 seconds long with 24576 variations.
Phase 3 was 9.5 minutes long with 3682530 variations.
And Phase 4 ETA is 10 hours with 244041791 variations.

Of course we can keep the tool running and it will most likely give us the correct seed. But we can speed it up even more.

Let’s see what we can do ourselves.

First we can change the seed to match the BIP-39 compliant words:

spit custom miracle bay plague tongue rain foot earth rise equip turn

becomes

split custom miracle day plug tongue rain foot earth raise equip turn

Still, it does go through the Phase 3 without the correct seed found.

If we want to the correct seed as fast as possible (that’s to say before going into phase 4, which takes most of the time), we need to change it once again:

split custom miracle day plug tongue rain foot earth raise equip turn

becomes

split custom miracle day plug tongue train food earth raise equip turn

What we are doing here is making the guesses of our seed in, as I call it, «semi-automatic mode». We are trying to make different variations ourselves and then feeding this for a quick scan to find the correct seed. Unfortunately, it’s energy consuming. But it’s much faster way to find the correct seed.

Another thing about seeds is that BIP-39 wordlist is structured in such a way you only need four first symbols to find a word.

So… If you can recognise cust in your seed, the word can’t be custody or customer, or custard’ It’s always custom. In fact, some cold storage devices let you input only four letters per word.

Basically, you can try different methods of recovering your seed manually, semi-automatically, and fully automatically.

There is a good chance, however, that you would never need to recover the seedphrase. If you’ve lost your seed or it’s got compromised to the net, you probably still have time to transfer your funds to another wallet given the fact you have access to your wallet.

However, if your seed is mostly destroyed, and you’ve lost the access to the wallet (either PC, mobile or hardware), there is probably no way to recover your funds. But I really hope that this turn of events would never happen!

By the way, our correct seed was
split custom miracle day plunge tongue train food earth cruise equip turn

Congratulations!

YOU NOW KNOW HOW TO RECOVER YOUR SEED! YAY!

TL;DR for Chapter 6:

  1. Get the BIP-39 wordlist.
  2. Check the words in your seed whether they match the list.
  3. Put the best guess of your seed into the BTCRecover.
  4. Problems? Read the chapter… PLEASE!

#8

GO BACK TO THE FIRST POST

BONUS CONTENT

Ok… I’ve promised some DOGE giveaway, haven’t I? You need to recover some wallets in order to get the funds. So, technically, it’s not a giveaway but rather a competition. But hey, the giveaway sounds better. :smiley:

First, it’s going to be a passphrase-enabled MultiDoge wallet.

The .wallet file is located here.

The passphrase is composed of these words:

Bit
Vadol
Is
The
Best
Pubber

It’s indeed a phrase. The order of words isn’t necessary like given. It doesn’t contain any spaces, but it does contain one underscore ‘_’ and one ASCII symbol at the end… Every first word is Capitalised. Every second word is not.

The address (for checking whether it contains any funds) is:

DCfuSGu54tE6RRRg42Qn9RU2dLaLpa9xaJ

Dogechain link

Second, you need to recover the seedphrase from Jaxx wallet.

Here is the wrong seed:

included mock funny stem direction claim advice flop pr_ bat_ fame funny

First BTC address generated by the wallet is this:

1FgdBxiSQ8MksARAAvLKjX6XP6bP7zpp2V

DOGE address with funds is this:

D64bAyGwZktqJxehDetjNAmp3nRCbbfhrJ

Dogechain link

Rules.

Each address is going to contain 5500 DOGE provided by the community. You are allowed to take 100 doge (but nothing stops you from taking all of the funds). But please, be reminded that by taking all of the funds you are robbing other people who would like to practice in recovering the funds and to get the reward from it. So, please, we are asking you to play fair. DON’T TAKE ALL OF THE FUNDS!

Postscriptum

In the P.S. section i would like to say thank you to all of the pubbers that helped me to make this guide.

@Nekko and @MoneyMan for proof-reading and correcting mistakes.
Many people for contributing some of their precious Doge. Wow! Such generous! Much amaze! /s
And of course, to @peter and @john for making such an amazing community!

Thank you, guys! You are truly awesome people!


#9

love it! you’ve been such a blessing to so many people!


#10

Wow! That’s So amaze badge worthy info right there man! I’m just gonna have to doge ear this page for future reference.