Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

python-blockchain-tools

Bitcoin and blockchain utilities in Python for address generation, validation, transaction parsing, and block exploration.

Features

  • Address Generation - Generate Bitcoin addresses (P2PKH, P2SH, Bech32)
  • Address Validation - Validate any Bitcoin address format
  • Key Pair Generation - Create private/public key pairs using secp256k1
  • Transaction Parsing - Decode and inspect raw Bitcoin transactions
  • Block Explorer - Query blockchain data via public APIs
  • Wallet Utilities - HD wallet derivation (BIP-32/BIP-39)
  • Hash Utilities - SHA-256, RIPEMD-160, double-hash functions

Project Structure

python-blockchain-tools/
├── src/
│ ├── __init__.py
│ ├── address.py # Address generation and validation
│ ├── keys.py # Key pair generation (secp256k1)
│ ├── transaction.py # Transaction parsing and creation
│ ├── explorer.py # Block explorer API client
│ ├── hashing.py # Cryptographic hash utilities
│ └── encoding.py # Base58, Bech32 encoding
├── tests/
│ ├── test_address.py
│ ├── test_keys.py
│ ├── test_transaction.py
│ ├── test_hashing.py
│ └── test_encoding.py
├── examples/
│ ├── generate_address.py
│ ├── validate_address.py
│ └── parse_transaction.py
├── requirements.txt
├── setup.py
└── README.md

Quick Start

# Clone
git clone https://github.com/yashhzd/python-blockchain-tools.git
cd python-blockchain-tools
# Create virtual environment
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows# Install dependencies
pip install -r requirements.txt
# Run tests
python -m pytest tests/ -v

Usage Examples

Generate a Bitcoin Address

fromsrc.keysimportgenerate_keypairfromsrc.addressimportpubkey_to_addressprivate_key, public_key=generate_keypair()
address=pubkey_to_address(public_key, network="mainnet")
print(f"Address: {address}")

Validate an Address

fromsrc.addressimportvalidate_addressresult=validate_address("1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa")
print(f"Valid: {result.is_valid}, Type: {result.address_type}")

Parse a Raw Transaction

fromsrc.transactionimportparse_raw_transactionraw_tx="0100000001..."tx=parse_raw_transaction(raw_tx)
print(f"Inputs: {len(tx.inputs)}, Outputs: {len(tx.outputs)}")

Development

# Run tests
python -m pytest tests/ -v
# Run with coverage
python -m pytest tests/ --cov=src
# Lint
flake8 src/ tests/
mypy src/

License

MIT

About

Bitcoin and blockchain utilities in Python - address generation, validation, transaction parsing, and block exploration

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages