One more option I was thinking about is to install separate portable linux OS on my USB stick and use it only for purpose of keeping my backup stuff.
Maybe keep on USB a VirtualBox machine?
|
|
|
My program allows you to do the search for the proper seed if you know words but do not know the order (+ other use cases of course). https://github.com/PawelGorny/lostwordYu may launch one of examples to see how it works - for 9 words in wrong order the result is quite fast: https://github.com/PawelGorny/lostword/blob/master/examples/example_22.confSoft works for both ETH and BTC (with different derivation paths), so you may play a little. There is also another worker, which just saves all the possible seeds into file, but number of correct seeds is insane and I cannot imagine why and how one would like to test them. If you do not know the target address, it makes things much more difficult.
|
|
|
@PawGo do you request 10 address every 2 seconds so: A) 1 request with multiple addresses or B) 10 requests with one address each
A
|
|
|
There is simpler one: https://blockchain.info/balance?active=1DEP8i3QJCsomS4BSMY2RpU1upv62aGvhD which produces {"1DEP8i3QJCsomS4BSMY2RpU1upv62aGvhD":{"final_balance":4654010,"n_tx":16,"total_received":4654010}} BUT! You may ask for several addresses at the same time: https://blockchain.info/balance?active=1DEP8i3QJCsomS4BSMY2RpU1upv62aGvhD,12g7ex6Grdt4FUAmXoZxwN4a4Pbt8SkKT2 I do not know how many requests you need to launch, but in my program I check 10 addresses every 2 seconds and it works - I have never been blacklisted.
|
|
|
91 - PawGo
Thanks and good luck!
|
|
|
Anything in pre-compiled exe or jar format is suspicious
<offtopic> With a difference that jar is in fact a ZIP file with java classes and other resources like images etc. - and java class could be easy decompiled, so if you think you understand and may audit source code, this way is much easier than exe Even online: http://www.javadecompilers.com/
|
|
|
I have prepared a simple tool based on my WifSolver, now it supports only "rotation" (checking 1,2,3... misspelled characters), check could be done for any correct KEY or for the given AccountId, as you said you have the expected one. I will add "SEARCH" worker, for checking a given/all characters on the specific positions, but I think it is less important now. Later I will prepare ReadMe, but for now you may just launch it: java -jar stellarSolver.jar ./examples/example_ROTATE.conf In examples/ folder you will find how to launch it - by default it checks 1 and 2 mistakes, you may indicate if you want more (KEY line, after comma). The last line - expected AccountId. Available on github: https://github.com/PawelGorny/StellarSolverhttps://github.com/PawelGorny/StellarSolver/releases/tag/v0.2.0
|
|
|
I took a look at StellarCracker and the logic behind it, I think I may play with it. I will modify my WifSolver to work with base32 and maybe extend the number of searches/replacements. Just confirm - you have all the characters but checksum is wrong, right?
|
|
|
Thanks a lot. How can I integrate m / 84 '/ 0' / 0 '/ 0/0 into my code? I just need to get the first 5 addresses. I looked at your program, but there is a whole class forming a complex configuration. Too difficult for a beginner. How can I just hardcode the derivation path into my method?
public class Main {
final static byte[] BITCOIN_SEED_BYTES = "Bitcoin seed".getBytes(); final static byte[] SALT = "mnemonic".getBytes(StandardCharsets.UTF_8);
public static void main(String[] args) throws IOException, MnemonicException, InterruptedException { String seedCode = "tissue deliver beauty rare kind midnight focus indicate forum lawn this setup"; byte[] seed = PBKDF2SHA512.derive(seedCode.getBytes(StandardCharsets.UTF_8), SALT, 2048, 64); DeterministicKey deterministicKey = createMasterPrivateKey(seed, createHmacSha512Digest()); deterministicKey = HDKeyDerivation.deriveChildKey(deterministicKey, new ChildNumber(84, true)); deterministicKey = HDKeyDerivation.deriveChildKey(deterministicKey, new ChildNumber(0, true)); deterministicKey = HDKeyDerivation.deriveChildKey(deterministicKey, new ChildNumber(0, true)); deterministicKey = HDKeyDerivation.deriveChildKey(deterministicKey, new ChildNumber(0, false)); for (int i = 0; i <= 5; i++) { System.out.println(Address.fromKey(MainNetParams.get(), HDKeyDerivation.deriveChildKey(deterministicKey, new ChildNumber(i, false)), Script.ScriptType.P2WPKH)); } }
private static DeterministicKey createMasterPrivateKey(byte[] seed, HMac SHA512DIGEST) throws HDDerivationException { byte[] i = hmacSha512(SHA512DIGEST, seed); byte[] il = Arrays.copyOfRange(i, 0, 32); byte[] ir = Arrays.copyOfRange(i, 32, 64); Arrays.fill(i, (byte)0); DeterministicKey masterPrivKey = HDKeyDerivation.createMasterPrivKeyFromBytes(il, ir); Arrays.fill(il, (byte)0); Arrays.fill(ir, (byte)0); masterPrivKey.setCreationTimeSeconds(System.currentTimeMillis()); return masterPrivKey; }
private static byte[] hmacSha512(HMac hmacSha512, byte[] input) { hmacSha512.reset(); hmacSha512.update(input, 0, input.length); byte[] out = new byte[64]; hmacSha512.doFinal(out, 0); return out; }
private static HMac createHmacSha512Digest() { SHA512Digest digest = new SHA512Digest(); HMac hMac = new HMac(digest); hMac.init(new KeyParameter(BITCOIN_SEED_BYTES)); return hMac; } }
|
|
|
I did something similar with balance checking using public API, probably it would be possible to modify it for transactions list. Take a look at worker 'ONE_UNKNOWN_CHECK_ALL' -> https://github.com/PawelGorny/lostwordLet me know if you need help, I think I may adapt it for your needs.
|
|
|
Wrong derivation path for a child key. For bc1q0u... you need to use m/84'/0'/0'/0/0. Take a look at my program https://github.com/PawelGorny/lostword, you may launch it with configuration: KNOWN_POSITION bc1q0u3r6fp8mctx45e75f6p4suzja68alcxkc4cje 12 tissue deliver beauty rare kind midnight focus indicate forum lawn this ? m/84'/0'/0'/0/0
|
|
|
imagine saving your electrum seed phrase very carefully and then you can't recover it. It's very easy to prevent this by test-recovering your seed phrase before funding the wallet. Isn't it a part of new wallet creation? Electrum force you to repeat the given seed.
|
|
|
So if you put Electrum seed into Ian Coleman site I expect you end up with different addresses.
You are right.... it shows error 'invalid mnemonic'. But there is a fork of that project: https://github.com/FarCanary/ElectrumSeedTesterit correctly decodes Electrum seed. I tested with shield correct dragon addict sand ripple race chat earth field library coin which should give bc1q30qm50yn5xlcl50grzrmytf3su9wpnlj6rt8l4
|
|
|
Do you know which address you expect to restore? Try that page: https://iancoleman.io/bip39/ (legit!) You may download to you computer to launch it offline if want: Offline Usage You can use this tool without having to be online. In your browser, select file save-as, and save this page as a file. Double-click that file to open it in a browser on any offline computer. Alternatively, download the file from the latest GitHub release - https://github.com/iancoleman/bip39/releases/latest/ Then enter your seed (if it is indeed BIP39) and then play with BIP32/BIP44/BIP49/BIP84/BIP141 paths & addresses.
|
|
|
Hello all, I have become more and more interested in the great concept of PGP, but I have a few questions regarding PGP/GPG. 1, What's the difference between PGP and GPG? 2, What is a PGP fingerprint used for? 3, What things can I share in PGP? (Fingerprint, Key ID, Public Key, etc...) 4, Is there any other important thing that I need to know about PGP? Regards, Excro There was already a similar question: https://bitcointalk.org/index.php?topic=5298525.msg55790008#msg55790008
|
|
|
Hi, Recently I have added support for ETH addresses, you may check my program here: https://github.com/PawelGorny/lostwordI guess you are interested in 'KNOWN_POSITION' method. Check examples how to run it (especially example_21.conf for ETH). Let me know if you need any help with running that. Pawel
|
|
|
Update: I have just added support for Ethereum addresses, please check example (file example_21.conf) to see how to launch it. Maybe someone will find it useful.
|
|
|
|