Skip to main content

A Python package for generating Bitcoin addresses using ECDSA

Project description

Bitcoin Address Generator

PyPI version Python Package License: MIT

⚠️ Educational and Development Use Only

This package is intended for educational and development purposes. Do not use for production or with real Bitcoin transactions.

Introduction

This repository explores the use of randomly generated hexadecimal numbers to create a bitcoin wallet address using the Elliptic Curve Digital Signature Algorithm. When Alice wants to buy a book from Bob, after all has been agreed upon, Bob needs to provide Alice with a bitcoin wallet address where the payments will be deposited. The transaction will be done on the blockchain, so Bob needs a bitcoin wallet address to receive payments. This repository covers how a bitcoin wallet address can be created from randomly generated private keys.

In cryptography, the Elliptic Curve Digital Signature Algorithm (ECDSA) offers a variant of the Digital Signature Algorithm (DSA) which uses elliptic-curve cryptography.

Method

Bob signs a hash of a message with his private key, and then Alice proves with his public key. Bob also uses a random nonce value for the signature (K)

ecdsa_new

With ECDSA, Alice will sign a message with her private key, and then Bob will use her public key to verify that she signed the message (and that the message has not changed) ecdsa

The diagram below illustrates the architecture and how the Bitcoin wallet addresses are created:

Architecture

Features

  • Generate random private keys
  • Convert private keys to public keys using ECDSA
  • Create valid Bitcoin addresses
  • Command-line interface
  • Comprehensive validation
  • Educational examples and documentation

Setting Up Our Environment

To achieve desired outcome, first we need to set-up the environment. For development purposes, you can use:

  1. Google Colab environment - https://colab.research.google.com/
  2. Local Python environment
  3. Package installation via pip (see Installation section)

For getting randomly generated private keys, you can use:

Note: For production use, always ensure secure methods of private key generation.

Python Libraries & Dependencies

ECDSA Python Library - Implementation of the Elliptic Curve Cryptography • Hashlib - Contains hash algorithms for SHA256, RIPEMD160 • Codecs - For encoding and decoding • Base58 - For Base58Check encoding

Installation

pip install bitcoin-address-generator

Quick Start

from bitcoin_address_generator import generate_wallet

# Generate new wallet
private_key, public_key, address = generate_wallet()
print(f"Bitcoin Address: {address}")

Command Line Usage

# Generate new address
bitcoin-address-generator generate

# Validate address
bitcoin-address-generator validate <address>

Development Roadmap

v0.1.0 (Current)

  • Basic Bitcoin address generation
  • Command-line interface
  • Core cryptographic operations
  • Educational documentation
  • Test suite

v0.2.0 (Planned)

  • Support for different address types (P2SH, SegWit)
  • Key encryption for secure storage
  • QR code generation for addresses
  • Bulk address generation
  • Basic transaction signing

v0.3.0 (Planned)

  • HD wallet support (BIP32/39/44)
  • Mnemonic phrase generation
  • Multi-signature support
  • Network validation
  • Address balance checking

v0.4.0 (Planned)

  • Web interface
  • API endpoint support
  • Transaction history
  • Address monitoring
  • Automated testing with testnet

Documentation

Feedback

If you have any feedback, please reach out to me at gs_wl889@icloud.com

Contributing

Contributions are always welcome! See CONTRIBUTING.md for ways to get started. Please adhere to this project's CODE_OF_CONDUCT.md.

Love to read more? Here are some resources & references

Security

This package is for educational purposes. See SECURITY.md for important security considerations.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bitcoin-address-generator-0.1.0.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bitcoin_address_generator-0.1.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file bitcoin-address-generator-0.1.0.tar.gz.

File metadata

File hashes

Hashes for bitcoin-address-generator-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2122cdf1646de04f10fbcc31da5e07bbcf74cda307e083ff5d4b362388ab1281
MD5 671b7b9b5775488d376a80e10a492f51
BLAKE2b-256 fe03fc1389005c19bac3f66a0d9e7b7b59034a02449cd0f0df3db332afae5330

See more details on using hashes here.

File details

Details for the file bitcoin_address_generator-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bitcoin_address_generator-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b6f03700b350d833d8ebfe30b0cd2590ee5127fda62a9f862e723e80a1cc9765
MD5 bb2830aecbe48504e8f04826dda3e404
BLAKE2b-256 ee799e03827d0c46b2ca5a29e1465a526ddb74db23dcb1a938a6abf1cb647819

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page