You can also start working with how exactly wallet works and what are different parameters for the same.
I have added few reference documents below which are result of few read out on the internet. Not sure how much it will help but if basics are clear then I think anything is possible really.
You can get started by creating Node.js app [
Example repository ]
Mnemonic Improvement Protocol - Since any wallet would start with the creation of phrases, you will need that function to get started with. Either 12 words or 24 words, that will define whether it is going to be 128 or 256 bits long entropy.
Further generations:
Learn about
secp256k1 elliptic curve for cryptographic computations
Ethereum and Bitcoin use the secp256k1 elliptic curve for cryptographic computations. Each account’s public key is derived from a corresponding private key using the Elliptic Curve Digital Signature Algorithm or ECDSA for short. By applying the ECDSA to the private key, we get a 64-byte integer, which is two 32-byte integers that represent X and Y of a point on the secp256k1 elliptic curve, concatenated together. The math behind this algorithm allows software to easily calculate the public key of a given private key, while the reverse process is impossible. One can’t compute the private key of a given public key using ECDSA on the secp256k1 elliptic curve.
Learn about
Keccak-256 hashing alghorithmTo calculate an address from the public key, we need to apply the Keccak-256 hashing alghorithm to the public key and take the last (least significant) 20 bytes of the result.
I might be talking randomness with little learning phase. But here is the article which you should learn in depth to understand how everything runs.
They have also given codes for every step above.
Repository required:
1.
01_newAccount.js2.
02_restoreWallet.js3.
03_send.js4.
package.json5.
yarn.lock
References:
1.
Add How to Build a Crypto Wallet example 2.
How To Build a Crypto Wallet3.
Entropy4.
Keccak-256 hashing alghorithm5.
secp256k1 elliptic curve