A few years ago I deposited a specific amount of bitcoins into an address and wrote that address/private key down. I lost the last four characters of the address. I counted that each character can be 26 upper + 26 lower + 10 digits = 62 characters. So missing 4 characters means that my wallet can be an of 62*62*62*62 = 14,776,336 addresses. How can I programmatically check all those combinations? I will find all the addresses with the same bitcoins as I deposited and then check them one by one as I expect (hope) there to be less than 1,000 matching addresses.

I've checked blockchain.info but they timed me out after a few requests, I checked blockonomics.co but they are expensive.

  • Is actually 58*58*58*58 since the address is in Base58 , not that it matters much here. Is it only the public address you are missing the last four characters, do you have the full private key? – Chak Dec 27 '17 at 16:47
  • Yes and yes, I have the full private key. – user1367204 Dec 27 '17 at 16:58
  • If you have the full private key, why don't you use Electrum and import/sweep the private key? No need to check each address individually unless you also got 10 million private keys/addresses pairs. If you want to check a bunch of addresses you have better chance of doing so by using API. – Chak Dec 27 '17 at 17:28
  • Are you saying that only by knowing the private key I can get the balance? Also, is there an API you can recommend that can serve 10 million requests? – user1367204 Dec 27 '17 at 17:49
  • Yes, and check out the link. – Chak Dec 27 '17 at 18:36

Each private key corresponds to exactly one public key. This public key can be represented in two ways that give different addresses: uncompressed and compressed. This gives you two addresses for a private key.
So no need to check each public addresses individually unless you also got 10+ millions private keys/addresses pairs.

You can check out this simple and easy to use software created by Shorena on bitcointalk.org, that uses blockchain.info Query API. I've checked the source code, clean codes and nothing malicious found.
If you really plan to check 58*58*58*58 addresses, I recommend that you add a delay in the source code so you don't overflow them with requests or hit whatever limiter they've got. Also modify the code to search for multiple address per query(Multiple addresses can be separated by '|' ).

You can also bypass the request limiter on blockchain.info , by requesting an API-key.


You can use the 'wallet details' on bitaddress.org. Remember, as always, be careful when divulging your private key.

  • 1
    For the record, don't go around pasting your private keys into websites you find on a forum. There are plenty of ways of re-creating your address locally, without sending your private key over a network. – Jestin Dec 27 '17 at 19:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.