Skip to content

Commit d23cb66

Browse files
authored
docs: Added PyWallet attribution, third-party licenses, and normalize README headings (#2)
docs: Added PyWallet attribution, third-party licenses, and normalize README headings (#2)
1 parent 8518e76 commit d23cb66

1 file changed

Lines changed: 31 additions & 16 deletions

File tree

README.md

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
[![CI](https://github.com/mystervee/Crypto-Wallet-Explorer/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/mystervee/Crypto-Wallet-Explorer/actions/workflows/ci.yml)
44

5-
A simple, cross-platform wallet.dat scanner for Bitcoin-family wallets. It is intended for users to scan wallet files on thier own machine to gain basic information on the contents of the wallet, balance is displayed where possible. It tries pywallet for structured dumps when available, and safely falls back to read-only address discovery (Base58 + Bech32 + ETH 0x strings).
5+
A simple, cross-platform wallet.dat scanner for Bitcoin-family wallets. It is intended for users to scan wallet files on their own machine to gain basic information on the contents of the wallet; balance is displayed where possible. It tries PyWallet for structured dumps when available, and safely falls back to read-only address discovery (Base58 + Bech32 + ETH 0x strings).
66

7-
## features
7+
## Features
88
- Scans folders recursively for `.dat` and skips duplicate backups by content hash
99
- PyWallet integration with JSON parsing and optional WSL fallback on Windows
1010
- Read-only fallback detection for BTC, LTC, DOGE, PPC, GRC, and ETH
@@ -15,22 +15,24 @@ A simple, cross-platform wallet.dat scanner for Bitcoin-family wallets. It is in
1515
- Bech32 support for BTC (`bc1…`) and LTC (`ltc1…`)
1616
- CSV export including balance, dedup count, and first wallet path
1717

18-
## usage
18+
## Usage
1919

2020
From source (recommended for latest fixes):
2121

2222
Windows (PowerShell):
2323

2424
```powershell
2525
python -m venv .venv
26-
.# existing code...
26+
\.\.venv\Scripts\Activate.ps1
27+
python -m pip install -r requirements.txt
2728
```
2829

2930
Linux/macOS (bash):
3031

3132
```bash
3233
python3 -m venv .venv
33-
.# existing code...
34+
source .venv/bin/activate
35+
python -m pip install -r requirements.txt
3436
```
3537

3638
Run the scanner:
@@ -41,7 +43,7 @@ python .\Basic_Wallet_Scanner.py --dir <path-to-backups> --csv scan_results.csv
4143

4244
From release zip (prebuilt): download the latest release, extract, create a venv, install requirements, then run the command above.
4345

44-
## quick start
46+
## Quick Start
4547
1) Create a virtual environment and install dependencies
4648

4749
Windows (PowerShell):
@@ -72,7 +74,7 @@ If `--dir` is omitted, the script will prompt for a folder.
7274
- Console output shows discovered addresses grouped by coin
7375
- A `scan_results.csv` is saved (by default to the current working directory)
7476

75-
## cli flags
77+
## CLI Flags
7678
- `--dir <folder>`: Folder to scan (recursively) for `.dat`
7779
- `--csv <path>`: Output CSV path (default: `scan_results.csv` in CWD)
7880
- `--no-balances`: Skip all balance lookups
@@ -92,15 +94,15 @@ python .\Basic_Wallet_Scanner.py --dir D:\Backups\Wallets --csv D:\out\scan.csv
9294
python .\Basic_Wallet_Scanner.py --dir D:\Backups\Wallets --no-balances
9395
```
9496

95-
## supported coins
97+
## Supported Coins
9698
- BTC: Base58 P2PKH/P2SH, Bech32 `bc1…`
9799
- LTC: Base58 P2PKH/P2SH, Bech32 `ltc1…`
98100
- DOGE: Base58 P2PKH/P2SH
99101
- PPC (Peercoin): Base58 P2PKH/P2SH
100102
- GRC (Gridcoin): Base58 P2PKH
101103
- ETH: Hex `0x` addresses (detection only; no balances)
102104

103-
## output csv schema
105+
## Output CSV Schema
104106
Columns:
105107
- `wallet`: Source file path where the address was first seen
106108
- `coin`: BTC/LTC/DOGE/PPC/GRC/ETH
@@ -110,7 +112,7 @@ Columns:
110112
- `count`: Number of times this (coin, address) was encountered across all files
111113
- `first_wallet`: The first wallet file in which this address appeared
112114

113-
## windows + wsl (pywallet fallback)
115+
## Windows + WSL (PyWallet Fallback)
114116
PyWallet needs Berkeley DB (bsddb). On Windows this is tricky; the script will auto-try WSL if a local run fails with a bsddb error.
115117

116118
Inside WSL (Ubuntu/Debian):
@@ -122,31 +124,31 @@ sudo apt install -y python3-bsddb3
122124

123125
No extra setup is required beyond having WSL installed; the script converts paths and invokes `python3` within WSL for the pywallet step.
124126

125-
## testing
127+
## Testing
126128
Developer tests live in `tests/` and can be run with pytest:
127129

128130
```powershell
129131
python -m pip install -r requirements-dev.txt
130132
pytest -q
131133
```
132134

133-
## troubleshooting
135+
## Troubleshooting
134136
- PyWallet JSON parse errors: Make sure WSL + `python3-bsddb3` is installed on Windows, or run natively on Linux.
135137
- Public API limits: LTC/DOGE/PPC balances use public endpoints and may rate-limit or return empty data. Rerun later or use `--no-balances`.
136138
- Very old/alt forks: Address version bytes vary. The fallback will label as `UNKNOWN` if it can’t map a version byte.
137139
- No addresses found: Some backups store keys encrypted or in non-standard formats; try the pywallet path on Linux.
138140

139-
## security and privacy
141+
## Security and Privacy
140142
- Read-only: The scanner never writes to wallet files or transacts on any network.
141143
- Offline usage: For maximum privacy, run with `--no-balances` to avoid network calls; you’ll still get address discovery and CSV export.
142144

143-
## contributing
145+
## Contributing
144146
PRs welcome for:
145147
- Additional coin/version mappings and bech32 checksum verification
146148
- More reliable balance providers and optional API key support
147149
- Performance improvements and better CSV/reporting options
148150

149-
## releases
151+
## Releases
150152
Prebuilt zips are published on the GitHub Releases page when a tag like `v1.0.0` is pushed.
151153

152154
Contents:
@@ -167,5 +169,18 @@ python -m pip install -r requirements.txt
167169
python .\Basic_Wallet_Scanner.py --dir D:\Backups\Wallets --csv scan_results.csv
168170
```
169171

170-
## disclaimer
172+
## Credits
173+
- PyWallet by joric — Public Domain (includes portions under MIT and Apache-2 licenses). Repository: https://github.com/joric/pywallet. We vendor `pywallet/pywallet.py` and invoke it for structured wallet dumps when available. See headers in `pywallet/pywallet.py` for details.
174+
175+
## Third-Party Licenses
176+
This project vendors PyWallet (Public Domain) which itself includes components under permissive licenses:
177+
178+
- BitcoinTools (wallet.dat handling) — MIT License — https://github.com/gavinandresen/bitcointools
179+
- python-ecdsa (EC_KEY implementation) — MIT License — https://github.com/warner/python-ecdsa
180+
- SlowAES (AES implementation) — Apache License 2.0 — https://code.google.com/p/slowaes/ (archived)
181+
- Bech32/SegWit reference — Copyright (c) 2017 Pieter Wuille — https://github.com/sipa/bech32
182+
183+
See the attribution comments at the top of `pywallet/pywallet.py` for the authoritative list and license notes.
184+
185+
## Disclaimer
171186
This tool is provided “as is,” without warranty of any kind. Use at your own risk.

0 commit comments

Comments
 (0)