N33Bcoin Address Generator Bitcoin: Difference between revisions
Jump to navigation
Jump to search
Created page with "Note: Should work on Bitcoin - Untested on Bitcoin - developed by Noob's do not trust, you been warned. * This script does the following: ** It takes user input as a seed (which can be 12 words or any random input). ** It generates a deterministic seed by hashing the input. ** It uses this seed to create an ECDSA private key on the secp256k1 curve (used by Bitcoin and n33bcoin). ** It derives the public key from the private key. ** It generates a N33B coin address from..." |
(No difference)
|
Revision as of 19:21, 20 April 2025
Note: Should work on Bitcoin - Untested on Bitcoin - developed by Noob's do not trust, you been warned.
- This script does the following:
- It takes user input as a seed (which can be 12 words or any random input).
- It generates a deterministic seed by hashing the input.
- It uses this seed to create an ECDSA private key on the secp256k1 curve (used by Bitcoin and n33bcoin).
- It derives the public key from the private key.
- It generates a N33B coin address from the public key.
- It creates a WIF (Wallet Import Format) version of the private key.
- Install the required libraries
sudo apt install python3-ecdsa python3-base58
- Install the required libraries
Script
$EDITOR add_bit_gen.py
import hashlib import ecdsa import base58 # Python3 - this script depends on 'ecdsa', 'base58'. # sudo apt install python3-ecdsa python3-base58 def generate_n33bcoin_keypair(seed): # Generate a deterministic seed from the input seed_hash = hashlib.sha256(seed.encode()).digest() # Use the seed to generate a private key signing_key = ecdsa.SigningKey.from_string(seed_hash, curve=ecdsa.SECP256k1) private_key = signing_key.to_string().hex() # Generate the public key verifying_key = signing_key.get_verifying_key() public_key = '04' + verifying_key.to_string().hex() # Generate n33bcoin address (same as Bitcoin mainnet) public_key_bytes = bytes.fromhex(public_key) sha256_hash = hashlib.sha256(public_key_bytes).digest() ripemd160_hash = hashlib.new('ripemd160', sha256_hash).digest() # n33bcoin mainnet address (version byte 0x00, starts with '1') version_byte = b'\x00' # Decimal 0, Bitcoin-like mainnet full_hash = version_byte + ripemd160_hash checksum = hashlib.sha256(hashlib.sha256(full_hash).digest()).digest()[:4] n33bcoin_address = base58.b58encode(full_hash + checksum).decode('utf-8') # n33bcoin WIF private key (version byte 0x80, Bitcoin-like mainnet) version_byte_wif = b'\x80' # Decimal 128 extended_key = version_byte_wif + bytes.fromhex(private_key) checksum = hashlib.sha256(hashlib.sha256(extended_key).digest()).digest()[:4] wif_private_key = base58.b58encode(extended_key + checksum).decode('utf-8') return { 'private_key': private_key, 'public_key': public_key, 'n33bcoin_address': n33bcoin_address, 'wif_private_key': wif_private_key } def main(): print("Enter your seed (12 words or any random input):") seed = input().strip() keypair = generate_n33bcoin_keypair(seed) print("\nGenerated n33bcoin Key Pair:") print(f"Private Key: {keypair['private_key']}") print(f"Public Key: {keypair['public_key']}") print(f"n33bcoin Address: {keypair['n33bcoin_address']}") print(f"WIF Private Key: {keypair['wif_private_key']}") if __name__ == "__main__": main()
- If saved as
add_bit_gen.py
- Then run as so:
pyhon3 add_bit_gen.py
- Enter your seed when prompted.
- The script will output the private key, public key, N33Bcoin address, and WIF private key.
Note's
Important notes:
- This script generates reproducible results, meaning the same input will always produce the same key pair.
- The security of your keys depends on the randomness and secrecy of your input seed.
- Use a strong, unique seed for real-world use.
- This is a simplified implementation and should not be used for managing real funds without further security measures.
- Always keep your private keys secret and secure.
Results
- Sample output - using seed 'hithere'
noob@noob-ThinkPad-T470:~/Gen/py-pub-prv$ python3 gen.py Enter your seed (12 words or any random input): hithere Generated n33bcoin Key Pair: Private Key: 3e4748d72b0a0c5d4538b52a2ade025a0f52a1e8642384ac14e5af0f90b8ab8a Public Key: 04c4cab1795312dafbf2532c7b238d448b55fa151a3d4e059cb49b47fb7244fb8767981b561c067494f9f3a6357024bb4fa71d12d692a733f7a0583d6fa7276548 n33bcoin Address: 13j4do7QupXYPVtgmkkbP2gfe8ETnErrnG WIF Private Key: 5JHiQDRUFhw9HzSJFVmHjzpHDaF7TXP8A5hFDHssVvyQA2yVRTH
- Reproduced usig: 'hithere'
noob@noob-ThinkPad-T470:~/Gen/py-pub-prv$ python3 gen.py Enter your seed (12 words or any random input): hithere Generated n33bcoin Key Pair: Private Key: 3e4748d72b0a0c5d4538b52a2ade025a0f52a1e8642384ac14e5af0f90b8ab8a Public Key: 04c4cab1795312dafbf2532c7b238d448b55fa151a3d4e059cb49b47fb7244fb8767981b561c067494f9f3a6357024bb4fa71d12d692a733f7a0583d6fa7276548 n33bcoin Address: 13j4do7QupXYPVtgmkkbP2gfe8ETnErrnG WIF Private Key: 5JHiQDRUFhw9HzSJFVmHjzpHDaF7TXP8A5hFDHssVvyQA2yVRTH
- a space between words: 'hi there'
noob@CompleteNoobs:~/testin$ python3 add_bit_gen.py Enter your seed (12 words or any random input): hi there Generated N33Bcoin Key Pair: Private Key: 9b96a1fe1d548cbbc960cc6a0286668fd74a763667b06366fb2324269fcabaa4 Public Key: 04c20346f8bca6852b432ebd1317d58f616bd9bdcb094d6b563712dfbc820ffcd8a2325459cc2909ea4f2a982c65ba4688c0de5538d679249d25d91dcb8878c7e3 N33Bcoin Address: 1CTLQdpSqKE27fJcykm3BEVkWZdfN9888w WIF Private Key: 5JzosusicGeVVxbzsmu2uKpJjNPtni2ARvW7L5bdVy9Dyyo4Jfb
- reproduced on diff box - with same script:
ubuntu@py2:~/key_script$ python3 add_bit_gen.py Enter your seed (12 words or any random input): hi there Generated N33Bcoin Key Pair: Private Key: 9b96a1fe1d548cbbc960cc6a0286668fd74a763667b06366fb2324269fcabaa4 Public Key: 04c20346f8bca6852b432ebd1317d58f616bd9bdcb094d6b563712dfbc820ffcd8a2325459cc2909ea4f2a982c65ba4688c0de5538d679249d25d91dcb8878c7e3 N33Bcoin Address: 1CTLQdpSqKE27fJcykm3BEVkWZdfN9888w WIF Private Key: 5JzosusicGeVVxbzsmu2uKpJjNPtni2ARvW7L5bdVy9Dyyo4Jfb