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