This project is for academic and educational purposes only. SBFT demonstrates the cryptographic security of BIP39 seed phrases through empirical computation. The probability of finding a funded wallet is infinitesimally small (approximately 1 in 2^128).
Key Points:
- NOT FOR FINANCIAL GAIN: You are statistically more likely to be struck by lightning every day for a year than to find a funded wallet
- EDUCATIONAL PURPOSE: Designed to teach cryptographic security principles through hands-on experience
- USE AT YOUR OWN RISK: The authors are not liable for any consequences from using this tool
See DISCLAIMER.md for full legal disclaimer.
SBFT is a highly sophisticated, production-grade brute-force engine that demonstrates why modern cryptographic systems are secure. Rather than seeking financial gain, it provides:
- Empirical Proof: Experience firsthand why 2^128 is computationally infeasible
- Engineering Excellence: Professional-grade concurrent, fault-tolerant design
- Transparent Security: Open implementation showing why obscurity ≠ security
- Academic Research: Rigorous tooling for cryptographic security studies
- Adaptive Batch Sizing: Dynamically adjusts based on real-time performance
- Multi-Provider Architecture: Concurrent queries across multiple blockchain APIs
- Circuit Breaker Pattern: Automatic failover and resilience against provider outages
- Rate Limiting: Intelligent request throttling to respect API quotas
- Real-Time Metrics: Continuous performance tracking and health monitoring
- Anomaly Detection: Automatic identification of performance degradation
- Comprehensive Logging: Detailed audit trails for research and debugging
- Progress Tracking: Accurate completion percentage and ETA calculation
- Graceful Degradation: Continued operation despite partial provider failures
- Checkpoint Recovery: Persistent state management for interruption recovery
- Error Classification: Detailed categorization of failure modes
- Resource Health Checks: System monitoring for optimal operation
┌─────────────────┐ ┌──────────────────┐ ┌────────────────────┐
│ Config Layer │───▶│ Worker Manager │───▶│ Key Generator │
│ (config.ini) │ │ │ │ (Multiprocessing) │
└─────────────────┘ └──────────────────┘ └────────────────────┘
│ │
▼ ▼
┌──────────────────┐ ┌────────────────────┐
│ Monitor System │ │ Balance Checker │
│ (Real-time) │◀───│ (Async/Await) │
└──────────────────┘ └────────────────────┘
│ │
▼ ▼
┌──────────────────┐ ┌────────────────────┐
│ State Manager │ │ Provider Pool │
│ (File Locking) │ │ (Multi-chain) │
└──────────────────┘ └────────────────────┘
- Python 3.8+
- pip package manager
- Virtual environment (recommended)
# Clone the repository
git clone https://github.com/naviNBRuas/SBFT.git
cd SBFT
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install SBFT in development mode
pip install -e .pip install sbft-academicEdit config.ini with your settings:
[DEFAULT]
# Core Settings
DESTINATION_ADDRESS = bc1qyour_bitcoin_address_here
NETWORK = bitcoin
MINIMUM_BALANCE_SATS = 1000
# Providers (comma-separated)
PROVIDERS = blockcypher,blockstream,alchemy
# API Keys (optional but recommended)
BLOCKCYPHER_TOKEN = your_token_here
ALCHEMY_API_KEY = your_key_here
# Performance Tuning
MAX_WORKERS = 8
BATCH_SIZE = 100
CHUNK_SIZE = 1000000
# Monitoring
ENABLE_MONITORING = true
LOG_LEVEL = INFO# Run the tool
python -m sbft.main
# Or if installed as package
sbftYou can run multiple instances safely - they coordinate via file locking:
# Terminal 1
python -m sbft.main
# Terminal 2 (different machine or process)
python -m sbft.mainSBFT provides comprehensive monitoring capabilities:
- Keys processed per second
- Provider success/failure rates
- Memory and CPU usage
- Network request statistics
- Adaptive batch sizing recommendations
- Provider health scores
- Anomaly detection alerts
- Resource utilization graphs
sbft.log: Main application logsmetrics.json: Periodic performance snapshotsfailed_batches.log: Records of failed API requestshits.txt: Any discovered funded wallets
- Bitcoin: BlockCypher, Blockstream.info
- Ethereum: Alchemy, Infura
- Polygon: Alchemy, Infura
- Arbitrum: Alchemy, Infura
- Optimism: Alchemy, Infura
Create a new provider by extending ProviderBase:
from sbft.sbft_providers import ProviderBase
class CustomProvider(ProviderBase):
@property
def name(self) -> str:
return "custom"
@property
def base_url(self) -> str:
return "https://api.custom.com"
async def get_balances(self, addresses: List[str]) -> Dict[str, int]:
# Implement balance checking logic
passRun the test suite:
# Run all tests
pytest tests/
# Run specific test files
pytest tests/test_basic_functionality.py
pytest tests/test_async_providers.py
# Run with verbose output
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=src/The project includes automated code quality checks:
# Run linters
black src/ tests/
flake8 src/ tests/
# Run security scans
bandit -r src/
safety check
# Run type checking
mypy src/GitHub Actions automatically runs:
- Tests across multiple Python versions (3.8-3.12)
- Code style and quality checks
- Security scanning
- Package building and validation
SBFT is designed for academic research in:
- Cryptographic security analysis
- Brute-force resistance studies
- Blockchain API performance evaluation
- Distributed computing systems
- Probability theory and combinatorics
- Computational complexity analysis
- Cryptographic hash function properties
- Statistical significance in large-scale computations
We welcome contributions that enhance SBFT's educational value:
- Additional blockchain integrations
- Enhanced monitoring dashboards
- Performance optimization techniques
- Documentation improvements
- Test suite expansion
# Install development dependencies
pip install -e .[dev]
# Run tests
pytest tests/
# Code formatting
black src/
flake8 src/This project is licensed under the MIT License. See the LICENSE file for details.
Navin B. Ruas
NBR. Company LTD
📧 founder@nbr.company
🌐 https://nbr.company
If you find this project educational or interesting, please consider:
- Starring the repository
- Sharing with colleagues and students
- Contributing improvements
- Citing in academic work
"The ultimate measure of security is not how strong your cryptography is, but how difficult it makes the attacker's job."