Skip to content

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

License

Notifications You must be signed in to change notification settings

yashhzd/python-blockchain-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

from src.keys import generate_keypair
from src.address import pubkey_to_address

private_key, public_key = generate_keypair()
address = pubkey_to_address(public_key, network="mainnet")
print(f"Address: {address}")

Validate an Address

from src.address import validate_address

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

Parse a Raw Transaction

from src.transaction import parse_raw_transaction

raw_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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages