This is a Work In Progress and I made it just for fun and because I wanted to educate myself in Bitcoin Wallets! Every key or address in this thread must be ignored! I just provide them to showcase how the program works! DON'T USE ANY OF THEM!
UPDATE: 2023, Jan 10th
Hello friends! So I have developed a non-deterministic wallet in JAVA, using as less external libraries as possible (obviously I used some code from other libraries).
So here is the repo link:
https://bitbucket.org/vampobit/safet/src/main/The program creates a non-deterministic wallet generating entropy * using:
- Java's SecureRandom = 208
- User's input = 48 bits of entropy
a runtime example is:
-------------------------
| Generating Entropy |
-------------------------
Please enter a random sequence of characters from the keyboard:
let's see how this goes... vampobit
Using user input to generate 48 bits of entropy.
Using SecureRandom to generate 204 bits of entropy.
---------------------
| Generated Keys |
---------------------
Private Key: b49bd68e4f1bd220e90871031860009b0b44654268cb1e4dcdca93743fc7961e
Private Key (WIF): L3Gnp62mS3PsmtQ3AEZveuYWywkucv787krXEXj9xDcuJAQjC4pC
Public Key: 02a16995de6cd203c0459a841752fad6941a65ca43a0cbf629f3413d64db7fb24c
Legacy Address: 15zHNp2irZGBpd4NzJ8JypsahRDyjpoa52
My latest additions have been:
- generating QR Codes for private key and for legacy address
- removing the initial entropy I used to get using time thanks to ETFbitcoin's indication
I have tested everything both on Test Net and the Main Net and it works pretty good (the QR codes too).
Please let me know what you think!!!!
Hello everyone! First of all, I may make mistakes in the following post, so forgive my possible ignorance. I need your help.
I want to
- learn theoretically how a wallet works. What algorithms are used etc. It is a little opaque to me.
- develop a simple wallet generator in JAVA
So far, I think the process is that the seed phrase is hashed (I don't know what function is used) and it produces a private key which is attached to the public key based on ECDSA. Is that correct?
I want to write the code from scratch, probably in java. Do you have any good tutorials or libraries I could use? Maybe bitcoinj?
Sorry if I am asking quite a lot here, but googling these questions didn't actually help. I thought this place is the best for development questions.