nickfarrow / nicebit Goto Github PK
View Code? Open in Web Editor NEWCreate Bitcoin vanity addresses with C. A lightweight use of libsep256k1 to create P2PKH addresses.
License: MIT License
Create Bitcoin vanity addresses with C. A lightweight use of libsep256k1 to create P2PKH addresses.
License: MIT License
Hi,
This code is very good, however i have a requirement for a project i am working on in which i need to be able to start from the first possible private key to the last.
Using a simple one by one incrementing process
When i use pycoin it allows you to enter numbers from 1 to a very big number
each number than generates the keys in order.
Is it possible to do this with your script.
So i can literally output every possible bitcoin private/public key in order without using any randomness?
I spent a few hours trying to do it, yet i cannot work out how to remove the randomness.
For reference this is the first bitcoin wallet ever used.
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
is it possible for your script to output this one first and then the next after that and so on?
I am using createpubkey.h in my personal project and it works great and saved me tons of work i must say, however do you have any plan to support compressed address from compressed public key? the header will then complete in its true sense thank you for the hard work you put into this and saving me from mine.
Currently niceBit can load words from a file to search for vanity addresses:
$ ./niceBit -f dict
Loading words...
1wew
1hello
It would be great to have a new function alphanum_combinations
in nicebit.c to iterate over each word and generate as many possible combinations of the base58 characters, and append these to the word list.
For example append the following words to the word array:
1wew -> 1weW, 1wEw, 1w3w, 1w3W, 1W3w...
Preferably this would involve an argument -C
to only make alpha- substitutions between lower and uppercase letters (case insensitivity). As well as a second argument -a
to also perform subsitutions like e -> 3
or 1 -> i
.
I think this should take one additional function with two lists of possible substitutions and two booleans for -C
and -a
.
https://github.com/nickfarrow/niceBit/blob/master/niceBit.c#L184
https://github.com/sipa/bech32/blob/master/ref/c/segwit_addr.h
Perhaps a project for the weekend..
createPubKey.h:33:5: warning: ‘RIPEMD160’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
33 | RIPEMD160(SHA256(s, 65, 0), SHA256_DIGEST_LENGTH, rmd + 1);
| ^~~~~~~~~
In file included from createPubKey.h:3:
/usr/include/openssl/ripemd.h:49:38: note: declared here
49 | OSSL_DEPRECATEDIN_3_0 unsigned char *RIPEMD160(const unsigned char *d, size_t n,
|
Hi,
This code is very good, however i have a requirement for a project i am working on in which i need to be able to start from the first possible private key to the last.
Using a simple one by one incrementation
When i use pycoin it allows you to enter numbers from 1 to a very big number
each number than generates the keys in order.
Is it possible to do this with your script.
So i can literally output every possible bitcoin private/public key in order without using any randomness?
After compiling secp256k1 and then the file, I receive this error:
privkey.c:3:10: fatal error: secp256k1.h: No such file or directory
The vanity addresses which I find almost always have the consecutive digits at the end of the address.
Frequently get
1vg594yGSQ2ykTYayQqGEjUG3ZSXwEd4444
(4444 at end)
not many
14qpHcSkdB7777PGS8Dnj26iQyTD9NBSDxx
. (7777 in middle)
I doubt this is a feature of RIPMED160/SHA1
..?
My inclination is that it is something to do with the way substrings are currently searched for:
/* Comprise compstr of 'len' repeats
* of digit 'i'
*/
j = 0;
while(j<len) {
/* Offset digit i by 48
* as 48 is 0 in ASCII*/
compstr[j] = i + 48;
j++;
}
/* End string with null char*/
compstr[j] = '\0';
/* Check if string in pubaddress */
if(strstr(pubaddress, compstr) != NULL) {
printf("Found : %s\n", compstr);
return 1;
}
Otherwise, it could be a bug in the public address creation code, or something completely else.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.