Skip to content
This repository was archived by the owner on Mar 30, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
909 commits
Select commit Hold shift + click to select a range
b156594
Enable Trezor Testnet Eth derivatin path by default
3rdIteration Feb 15, 2022
08fc2c0
Fix to handle the situation where someone has a space (Or custom the…
3rdIteration Mar 2, 2022
c6dfca5
Add Tezos and Atomic-Eth support (#332)
3rdIteration Mar 5, 2022
9637da3
Fix SLIP39 share entry
3rdIteration Mar 5, 2022
8ba0e8f
Update btcrseed.py
3rdIteration Mar 5, 2022
d40464e
Add fix for some odd blockchain.com wallets
3rdIteration Mar 7, 2022
bd9bd59
Add Sample Wallet for New Bitcoin Core Wallet Format (0.21+)
3rdIteration Mar 15, 2022
153407e
Add Support for SQLite Bitcoin Core Wallets (v0.21+) (#334)
3rdIteration Mar 16, 2022
e588005
Add Secret Network Support (#336)
3rdIteration Mar 28, 2022
fe7cb9d
Improve Metamask Vault decrypt/dump
3rdIteration Mar 29, 2022
67c2814
Add updated Metamask test wallet (ascii array mnemonic)
3rdIteration Mar 29, 2022
4fa4795
Seedtokenlist tokenblocks (#339)
3rdIteration Apr 4, 2022
009bcd2
Add Stacks (STX) Functionality (#343)
3rdIteration Apr 9, 2022
612d09b
Eth addressdb updates
3rdIteration Apr 10, 2022
bbabff4
Add Metamask Mobile Support (#346)
3rdIteration Apr 16, 2022
45ec03d
Update TUTORIAL.md
3rdIteration Apr 16, 2022
dcd6daa
Fix typo in README (#349)
PBillodeau Apr 26, 2022
7ca333d
Add support for non-standard Electrum Seeds
3rdIteration Apr 28, 2022
4b51d51
Update INSTALL.md
3rdIteration Apr 28, 2022
74c930d
Update INSTALL.md
3rdIteration Apr 28, 2022
7cf925a
Update BTC.txt
3rdIteration May 18, 2022
330e089
Add addressdb checklists and fixes
3rdIteration Jun 21, 2022
4177591
Update btcrpass.py
3rdIteration Jun 28, 2022
4664d67
Update btcrpass.py
3rdIteration Jun 28, 2022
929c549
Fix issue with dumping some binance smart chain wallet files
3rdIteration Jun 28, 2022
2950b53
Update Latest-Run-All-Tests_Base.yml
3rdIteration Jul 2, 2022
63b20c9
Bump Python Version Requirements and address OpenSSL V3 Changes. (All…
3rdIteration Jul 2, 2022
e5c26e5
Improve CI
3rdIteration Jul 2, 2022
0e1c631
Add ETL Test Script
3rdIteration Jul 5, 2022
3c16d10
--savevalidseeds status messages
3rdIteration Jul 15, 2022
8dcd652
RawPrivateKey Recovery Fix
3rdIteration Jul 15, 2022
246f177
Create check_ripemd160.py
3rdIteration Jul 15, 2022
586fbe1
bump coincurve version (#376)
3rdIteration Jul 15, 2022
2fc550a
simplify use of --performance argument (#377)
3rdIteration Jul 15, 2022
1fa032a
performance arg tweak
3rdIteration Jul 15, 2022
cf361da
Revert "performance arg tweak"
3rdIteration Jul 15, 2022
2a3a894
Revert "simplify use of --performance argument (#377)"
3rdIteration Jul 15, 2022
316acda
reapply some performance test tweaks
3rdIteration Jul 15, 2022
06301ca
Update documentation
3rdIteration Jul 16, 2022
c9dc9ed
Update Example_Multi-GPU_with_vastai.md
3rdIteration Jul 16, 2022
7f672e7
Update Example_Multi-GPU_with_vastai.md
3rdIteration Jul 16, 2022
9e8fc4a
Update Example_Multi-GPU_with_vastai.md
3rdIteration Jul 16, 2022
38e706d
Update Example_Multi-GPU_with_vastai.md
3rdIteration Jul 16, 2022
ca96571
Create example_openssl.cnf
3rdIteration Jul 17, 2022
2e4822a
Update INSTALL.md
3rdIteration Jul 17, 2022
64c6944
Update INSTALL.md
3rdIteration Jul 17, 2022
b73d301
Update INSTALL.md
3rdIteration Jul 17, 2022
5cecfc1
typo fix
3rdIteration Jul 18, 2022
8151b1b
Add ability to extract mnemonic from Android Bitcoin Wallets (#379)
3rdIteration Sep 21, 2022
daad0a6
LTC AddressDB Update
3rdIteration Nov 19, 2022
bab0118
Expand Cosmos Functionality (Add Nym, Gravity Chain, etc)
3rdIteration Dec 14, 2022
66121ea
Update blockchain.com wallet download process
3rdIteration Dec 19, 2022
0d04f49
Update Weekly-Run-All-Tests-Full.yml
3rdIteration Dec 19, 2022
e0dbf23
Update Weekly-Run-All-Tests_Base.yml (#386)
3rdIteration Dec 19, 2022
0eff9b5
Update Example_Recovering_Blockchain_Wallet_Passwords.md
3rdIteration Feb 10, 2023
9e50fd1
Update documentation
3rdIteration Feb 13, 2023
cddc4dd
Dump Private keys from Multibit Classic & MultiDoge (#397)
3rdIteration Feb 16, 2023
8af46eb
Update AddressDB functionality
3rdIteration Feb 18, 2023
11308e0
Update addressset.py
3rdIteration Feb 18, 2023
f6b8404
Update Creating_and_Using_AddressDB.md
3rdIteration Feb 18, 2023
581e260
Update btcrpass.py
3rdIteration Feb 24, 2023
af7f99b
Fix LTC AddressDB Creation
3rdIteration Feb 25, 2023
be1d161
Add expanding wildcard for Unicode characters
3rdIteration Mar 12, 2023
80a9368
Initial feature implementation (#401)
3rdIteration Mar 13, 2023
ebfbc66
Add Coolwallet Mnemonic mapping table
3rdIteration Mar 17, 2023
5fbb58b
Add imToken Support (#407)
3rdIteration Apr 26, 2023
3b2e31a
Add Seed Word Swaps Support (#408)
3rdIteration Apr 29, 2023
c80c3d3
Fix some modifiers not being correctly handled for seeds
3rdIteration May 4, 2023
c56c994
Slightly decrease entropy requirement for blockchain.com wallets
3rdIteration May 7, 2023
0e13019
Update GPU_Acceleration.md
3rdIteration Jun 5, 2023
7101ca4
Bump version
3rdIteration Jun 19, 2023
9bc5483
Add Eth validator support (#419)
3rdIteration Jul 22, 2023
4a2dab0
Update required modules
3rdIteration Jul 22, 2023
b9e2628
Update requirements-full.txt
3rdIteration Jul 22, 2023
660c816
Update INSTALL.md
3rdIteration Jul 25, 2023
b961d15
Update example_checking_swapped_seed_words.md
3rdIteration Oct 6, 2023
71e21a6
Fix documentation generation
3rdIteration Oct 22, 2023
cf6dab5
Update .readthedocs.yml
3rdIteration Oct 23, 2023
c1801b1
Update .readthedocs.yml
3rdIteration Oct 23, 2023
c0f61df
Add ability to use gzipped passwordlists (and seedlists)
3rdIteration Nov 4, 2023
6170f2d
Update suggested addressdb settings for various blockchains
3rdIteration Nov 6, 2023
4fe4add
Improve loading of custom wildcard lists
3rdIteration Nov 6, 2023
58feaaf
Merge branch 'master' of https://github.com/3rdIteration/btcrecover
3rdIteration Nov 6, 2023
3ece6da
Taproot support (#435)
3rdIteration Jan 6, 2024
2b15453
Update test_passwords.py
3rdIteration Jan 6, 2024
87b1f21
Fix behavior of tokenlist/seedlist with Electrum1 wallets
3rdIteration Jan 6, 2024
bad9e0e
Add Additional Search Strings for Blockchain.com wallets (#438)
3rdIteration Jan 8, 2024
c0800cf
blockchain.info fix
3rdIteration Jan 8, 2024
74fee3f
Keep token order (#439)
3rdIteration Jan 8, 2024
ee7296f
Add Ledger Nano Passphrase Entry Typo Map
3rdIteration Feb 7, 2024
03f9015
Addressdb fixes & tron tweak
3rdIteration Feb 19, 2024
4a35440
Fix handling of passing delimiters to typo map files
3rdIteration Mar 9, 2024
0d89a8d
Update btcrpass.py
3rdIteration Mar 9, 2024
94485c2
Add MultiversX Support (#451)
3rdIteration Mar 10, 2024
6032656
Update blockchain.com wallet download documentation
3rdIteration Mar 15, 2024
74d0974
Merge branch 'master' of https://github.com/3rdIteration/btcrecover
3rdIteration Mar 15, 2024
c3017f3
Add Electrum 2FA seed recovery examples to CI tests
3rdIteration Mar 16, 2024
d5317d9
Fix compatibility with Metamask v11 wallets
3rdIteration Mar 18, 2024
1a8765f
Fix Compatability with some really old blockchain.info wallets
3rdIteration Mar 25, 2024
9661c9e
Documentation update
3rdIteration Apr 27, 2024
f58c74e
Remove debugging message for Tron
3rdIteration Apr 29, 2024
0fae89f
Documentation fix for Raw Private Key Recovery
3rdIteration May 6, 2024
d7d0506
Update requirements.txt
3rdIteration May 30, 2024
581d3c4
Update requirements-full.txt
3rdIteration May 30, 2024
339a121
Update Latest-Run-All-Tests_Base.yml
3rdIteration May 30, 2024
ab01e02
Update Latest-Run-All-Tests_Full.yml
3rdIteration May 30, 2024
b31ed5a
Update Weekly-Run-All-Tests-Full.yml
3rdIteration May 30, 2024
41c15b5
Update Weekly-Run-All-Tests_Base.yml
3rdIteration May 30, 2024
c80cc91
added support for blockchain wallet recovery mnemonics (#482)
feedthedogs Jun 17, 2024
dbc177d
Documentation tweaks for blockchain legacy recovery mnemonics
3rdIteration Jun 17, 2024
d57eea0
Tweak SeedRecovery Wallet Type Selector
3rdIteration Jun 17, 2024
4d5a597
Fix support for Electrum Segwit Unencrypted Wallets
3rdIteration Jun 18, 2024
ddc5e1a
Add comments keystore2 derivation paths for Electrum 2fa Recovery
3rdIteration Jun 19, 2024
dada0f4
Fix up syntax warnings with Python 3.12
3rdIteration Jun 24, 2024
8173ae6
Merge branch 'master' of https://github.com/3rdIteration/btcrecover
3rdIteration Jun 24, 2024
b05ee83
Remove syntax warnings with Python3.12
3rdIteration Jun 24, 2024
c7199e0
Update Shamir-Mnemonic to allow for extendable SLIP39 seeds
3rdIteration Jun 24, 2024
c07f411
Fixed updated handling of shamir-mnemonic click dependency
3rdIteration Jun 29, 2024
06ecfb9
Update INSTALL.md
3rdIteration Jul 27, 2024
abf267e
Add Support for BitGo KeyCard UserKey - Wallet Password Recovery (#517)
3rdIteration Nov 18, 2024
8e26358
Update Installation documentation
3rdIteration Nov 27, 2024
bc48d4c
Update issue templates
3rdIteration Dec 7, 2024
1ddc365
Update extract-blockchain-main-data.py
3rdIteration Dec 16, 2024
8f70ce0
Merge branch 'master' of https://github.com/3rdIteration/btcrecover
3rdIteration Dec 16, 2024
223bdd3
Updates for dogechain.info download and new format (#536)
3rdIteration Dec 24, 2024
caf3736
Update dogechain.wallet.aes.json.2024-gcm
3rdIteration Dec 24, 2024
b62d8e0
Add support for btc.com password recovery (#547)
3rdIteration Feb 8, 2025
11a7491
Update README.md
3rdIteration Feb 8, 2025
9757ecb
Create config.yml
3rdIteration Feb 19, 2025
374782e
Update config.yml
3rdIteration Feb 19, 2025
3c5db04
Update bug_report.md
3rdIteration Feb 19, 2025
e67d190
Update feature_request.md
3rdIteration Feb 19, 2025
061147f
Update config.yml
3rdIteration Feb 19, 2025
3091117
Add ability to recover damaged BIP38 encrypted private keys (#554)
3rdIteration Feb 22, 2025
f69a412
fix passing of no-ducheck arguemnt (#558)
3rdIteration Mar 3, 2025
cdb4b04
add example btc_com wallet
3rdIteration Mar 12, 2025
06279bd
Update btc_com_parsed_wallet_data_v3_random.json
3rdIteration Mar 12, 2025
ebd2204
Toastwallet support (#562) (Sponsored feature)
3rdIteration Mar 15, 2025
de3e91e
Add blockchain v4 wallet 2025 sample
3rdIteration Mar 24, 2025
e5e115a
update requirements
3rdIteration Mar 24, 2025
d2023a1
update requirements
3rdIteration Mar 24, 2025
2fe30ef
Fix seed found derivation path display
3rdIteration Mar 25, 2025
d8289c6
Add support for 24 word electrumv1 seeds (#571)
3rdIteration Apr 15, 2025
bcc524e
Docco tweak and Termux Fixes (#585)
3rdIteration Jun 11, 2025
ad2dfc3
Update INSTALL.md
3rdIteration Jun 11, 2025
debd5bf
Update INSTALL.md
3rdIteration Jun 11, 2025
5d92521
Update INSTALL.md
3rdIteration Jun 11, 2025
863bb4b
Update requirements-full.txt
3rdIteration Jun 11, 2025
247f042
addressdb tweaks
3rdIteration Jun 11, 2025
e4af903
dogechain fix
3rdIteration Jun 12, 2025
351238d
Update INSTALL.md
3rdIteration Jun 12, 2025
e9a6061
Fix github actions
3rdIteration Jul 5, 2025
c8d31a4
Add manual Github Actions trigger
3rdIteration Jul 5, 2025
0cce9a6
Github actions fix
3rdIteration Jul 5, 2025
12ecd30
Update error message when shamir-mnemonic[cli] not present
3rdIteration Jul 17, 2025
f1cb824
XLM Wallet Type that supports OpenCL (#598)
3rdIteration Jul 21, 2025
e32f6b1
Fix bytes_to_int to use int.from_bytes (#599)
3rdIteration Jul 22, 2025
18791dc
Fix typo in bech32 segwit addresses docstring (#602)
3rdIteration Jul 22, 2025
44be5ec
Fix typos in password recovery documentation (#603)
3rdIteration Jul 22, 2025
3e483da
Add hash-pinned requirement files (#608)
3rdIteration Jul 26, 2025
9b1ffbe
Add Termux test workflow (#609)
3rdIteration Jul 27, 2025
d43d12a
Update termux-tests.yml
3rdIteration Jul 27, 2025
9402418
Add CI workflow for PoCL (#612)
3rdIteration Jul 28, 2025
db4a234
Add Damanged SLIP39 Share Recovery (#611)
3rdIteration Jul 28, 2025
788d599
Fix Blockchain legacy mnemonic password parsing (#613)
3rdIteration Jul 29, 2025
40f53d0
Add test ensuring outer_iterations minimum (#614)
3rdIteration Jul 29, 2025
0fa6124
Switch scrypt to wallycore (#616)
3rdIteration Jul 30, 2025
2e701d6
Add opencl kernel for multibit wallets (#610)
JosefZIla Jul 30, 2025
4060450
Add OpenCL test for MultiBit wallet (#617)
3rdIteration Jul 30, 2025
68968ad
Update INSTALL.md
3rdIteration Aug 21, 2025
aab15a2
Add option to skip BIP39 mnemonic checksum (#623)
3rdIteration Aug 27, 2025
0ac1405
Fix Metamask extract iteration handling (#627)
3rdIteration Sep 20, 2025
3624ecd
Reuse cached pbkdf2 kernels (#629)
3rdIteration Sep 28, 2025
7cd4dcc
Track completed seeds in seedrecover_batch progress log (#628)
3rdIteration Sep 28, 2025
6b60030
Improve BIP39 derivation path filtering based on supplied addresses (…
3rdIteration Sep 28, 2025
18e2634
Log skipped completed seeds (#632)
3rdIteration Sep 29, 2025
ffa3164
Update .gitignore
3rdIteration Sep 29, 2025
11d1085
Stop batch processing when matched seed is logged (#633)
3rdIteration Sep 29, 2025
3c08cf2
Cache PBKDF2 kernels to avoid repeated retrieval (#634)
3rdIteration Sep 29, 2025
7e3ce01
Improve batch progress mapping for out-of-order logs (#635)
3rdIteration Sep 30, 2025
574fd45
Add reverse batch seed processing option (#636)
3rdIteration Sep 30, 2025
2430047
Add audible alerts for successful recoveries (#638)
3rdIteration Oct 3, 2025
c466758
Add option to force PC speaker success alert (#639)
3rdIteration Oct 3, 2025
afbec00
Add derivation path for Hendra ECDSA EVM
3rdIteration Oct 4, 2025
6b3b31e
Add script verification to test runner (#640)
3rdIteration Oct 4, 2025
38fd94d
Add Hedera ed25519 wallet support (#641)
3rdIteration Oct 4, 2025
ea88727
Update CI to Python 3.14 rc3 (#643)
3rdIteration Oct 4, 2025
c922027
Infer Hedera Ed25519 start index from account addresses (#642)
3rdIteration Oct 4, 2025
b4b1140
Enable NVIDIA OpenCL optimizations (#607)
3rdIteration Oct 5, 2025
b2652f3
Disable debug in PBKDF2 OpenCL kernels (#606)
3rdIteration Oct 5, 2025
177caf2
support for xor.dat implemented (#624)
Delapro Oct 5, 2025
132c915
skip processing after endBlockDate (#625)
Delapro Oct 5, 2025
10d500e
Adjust BIP39 OpenCL default threads based on GPU memory (#647)
3rdIteration Oct 5, 2025
1dd98fa
Allow embedding options in passwordlist files (#648)
3rdIteration Oct 5, 2025
ea35a3a
Silence OpenCL pwd buffer const warnings (#646)
3rdIteration Oct 5, 2025
00db1a8
Limit pre-start benchmark to 30s by default (#649)
3rdIteration Oct 5, 2025
9d6cc95
Harden Hedera seed verification against deterministic address matches…
3rdIteration Oct 6, 2025
7abf0ae
Fix Optional bytes annotation for Python 3.9 (#654)
3rdIteration Oct 6, 2025
2903b7f
Add aezeed recovery (#655)
3rdIteration Oct 8, 2025
1cb871d
Add GitHub Actions workflow to build documentation (#660)
3rdIteration Oct 18, 2025
d7e8a69
Fix WalletBIP39 constructor to accept BIP flag options (#663)
3rdIteration Oct 20, 2025
3cc01a4
Add fast smoke tests for basic usage examples (#664)
3rdIteration Oct 20, 2025
bba7468
Add seed transform for Trezor common mistake words (#666)
3rdIteration Oct 21, 2025
bf1452e
Add utility to generate mnemonic rotations (#667)
3rdIteration Oct 22, 2025
f820908
Simplify requirements.txt dependencies (#669)
3rdIteration Oct 24, 2025
b30b96c
Handle unsupported wallet flags gracefully (#674)
3rdIteration Nov 12, 2025
8fadbcd
Revert "Handle unsupported wallet flags gracefully (#674)"
3rdIteration Nov 12, 2025
a297599
Add BIP39 prefix lookup utility script (#673)
3rdIteration Nov 22, 2025
48cad39
Fix OpenCL kernels for Apple Silicon GPUs (#692)
Copilot Apr 8, 2026
000a665
Remove hashes and trim requirements-full.txt to directly-imported pac…
Copilot Apr 8, 2026
f25290f
Remove Python 3.9 from CI, update 3.14 to official release, fix faili…
Copilot Apr 8, 2026
a8ff5f8
Fix installation instructions and update video links
3rdIteration Apr 8, 2026
f5e5a86
Perf: eliminate hot-loop overhead in seed stretching, base58 validati…
Copilot Apr 8, 2026
b0c661a
Fix docs build: replace broken git-committers plugin, update deps, si…
Copilot Apr 8, 2026
17d5a8a
Fix docs build: remove --require-hashes flag and provide GitHub token…
Copilot Apr 8, 2026
0a7ff60
Update requirements by removing unused packages
3rdIteration Apr 9, 2026
84ba741
Revise MacOS installation steps for BTCRecover
3rdIteration Apr 9, 2026
c0df5bd
Update INSTALL.md with clearer instructions
3rdIteration Apr 9, 2026
3b93773
Update INSTALL.md with Python path export note
3rdIteration Apr 9, 2026
05bdb3d
Revise PyOpenCL installation section for MacOS
3rdIteration Apr 9, 2026
bf1e229
Update GPU_Acceleration.md
3rdIteration Apr 9, 2026
c86a75b
Update eth-keyfile from 0.6.1 to 0.9.1 in requirements-full.txt (#701)
Copilot Apr 9, 2026
b2c33eb
Update MacOS install video URL from Qzc3oHzbcAo to PMxkf4VYnkk (#703)
Copilot Apr 10, 2026
3b928d0
Update all dependency pins to latest versions, fix protobuf security …
Copilot Apr 10, 2026
49f64d4
Add benchmarking tool and auto-generate benchmark docs on ReadTheDocs…
Copilot Apr 11, 2026
d207aa6
Add benchmark outputs from GitHub Actions run 24287028751
github-actions[bot] Apr 11, 2026
a6640ea
Deploy docs to GitHub Pages with PR preview artifacts (#707)
Copilot Apr 12, 2026
0a731b4
Include wallet difficulty in Password Recovery Benchmark test names (…
Copilot Apr 12, 2026
15e97a0
Fix SyntaxWarning: invalid escape sequence '\s' in extract-blockchain…
Copilot Apr 13, 2026
20a5143
Improve benchmarking (#705)
3rdIteration Apr 13, 2026
2d5a19c
Delete docs/Benchmarks.md
3rdIteration Apr 13, 2026
0b0c78a
Fix benchmark table generation: columns should be systems, not test t…
Copilot Apr 13, 2026
13dce41
re-order benchmarks
3rdIteration Apr 13, 2026
06c7420
Create benchmark_9e6d7d9006b08e8e_20260414_090940.json
3rdIteration Apr 14, 2026
c1efe01
Remove bitcoin-utils/hdwallet dependency from block.io wallet support…
Copilot May 1, 2026
ccaec52
Also check change (/1) derivation paths by default for UTXO wallets (…
Copilot May 1, 2026
ea07538
Fix `--dump-privkeys`/`--dump-wallet` for several wallet versions; fi…
Copilot May 13, 2026
ddb3669
skills.md: identify wallets by content, fix Blockchain.com filename (…
Copilot May 14, 2026
a08084f
Update BIP39 recovery instructions and typo handling
3rdIteration May 14, 2026
da49b99
Update skills and AI docco
Copilot May 14, 2026
aeff791
Revise AI Assisted Recovery documentation
3rdIteration May 21, 2026
36432d9
Update AI skills and documentation (#739)
Copilot Jun 11, 2026
950f56e
Fix WalletBlockchainLegacyMnemonic id_to_word TypeError (gh-740) (#741)
3rdIteration Jun 26, 2026
2abefa2
Fix Termux CI: update Node.js path from node20 to node24 for checkout…
3rdIteration Jun 26, 2026
5aee734
Add WalletFinder utility for scanning directories for wallet files an…
3rdIteration Jul 3, 2026
9ad4ebb
Replace scrypt library with hashlib.scrypt and fix AMD APU support (#…
3rdIteration Jul 6, 2026
0bbc1b3
Walletfinder improvements
3rdIteration Jul 6, 2026
c457b99
Walletfilder improvements
3rdIteration Jul 8, 2026
228f236
Expand WalletFinder exclusion patterns
3rdIteration Jul 9, 2026
1457088
Make secp256k1 backend pluggable (coincurve/wallycore/pure-python) (#…
3rdIteration Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
44 changes: 44 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Note Regarding Scammers**
Scammers monitor the issues section of this Github and automatically reply to new issues with links to phishing websites, etc. (And Github moderation tools are very poor) You should disregard all comments recieved before a response from @3rdIteration...

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Sample Wallet**
Please provide a test wallet that demonstrates this issue.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Free Support: CryptoGuide YouTube channel
url: https://www.youtube.com/channel/UCEviBQwLv-yfv3BErm0ojHg/
about: BTCRecover Tutorials, free support happens in the comments section. (I reply to everything)
- name: Paid Support: CryptoGuide Recovery Services
url: https://cryptoguide.tips/recovery-services-consultations/
about: Request Paid Private support or Trusted Recoveries.
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---
**Note Regarding Scammers**
Scammers monitor the issues section of this Github and automatically reply to new issues with links to phishing websites, etc. (And Github moderation tools are very poor) You should disregard all comments recieved before a response from @3rdIteration...

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
68 changes: 68 additions & 0 deletions .github/workflows/Latest-Run-All-Tests_Base.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Last Push - All Tests (Base Modules)

on:
push:
branches: [ master ]

jobs:
build:
timeout-minutes: 20 # allow extra time for occasional slow tests
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04] # Test Ubuntu Only
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] # Test all supported versions of Python
backend: [coincurve, wallycore, purepython] # Test all three secp256k1 backends

steps:
- uses: actions/checkout@v7
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies (coincurve backend)
if: matrix.backend == 'coincurve'
run: |
python -m pip install --upgrade pip
# Install everything except coincurve first (this pulls in wallycore, the
# fallback backend), then try to add coincurve on top. On platforms where
# coincurve cannot be built (e.g. Python 3.14), the job still runs using
# the wallycore fallback instead of failing the install step.
grep -viE 'coincurve' requirements.txt > "$RUNNER_TEMP/btcr-reqs.txt"
pip install -r "$RUNNER_TEMP/btcr-reqs.txt"
# Per-Python-version coincurve pin (matches available prebuilt wheels):
# 3.9 / 3.10 / 3.11 / 3.12 -> either 20 or 21 has a wheel
# 3.13 -> only 21.0.0 has a wheel
# 3.14 -> neither has a wheel; the install is allowed to fail and the job
# runs on the already-installed wallycore fallback backend.
case "${{ matrix.python-version }}" in
3.13) pip install coincurve==21.0.0 || true ;;
3.14) pip install coincurve==21.0.0 || pip install coincurve==20.0.0 || true ;;
*) pip install coincurve==21.0.0 || pip install coincurve==20.0.0 || true ;;
esac
- name: Install dependencies (wallycore backend)
if: matrix.backend == 'wallycore'
run: |
python -m pip install --upgrade pip
pip install wallycore
grep -viE 'coincurve|wallycore' requirements.txt > "$RUNNER_TEMP/btcr-reqs.txt"
pip install -r "$RUNNER_TEMP/btcr-reqs.txt"
- name: Install dependencies (pure-python backend)
if: matrix.backend == 'purepython'
run: |
python -m pip install --upgrade pip
# Also exclude pycryptodome and protobuf so the pure-python AES,
# ChaCha20-Poly1305, and Keccak fallbacks are exercised.
# pycryptodome is the C-backed implementation; protobuf is the
# only remaining optional dependency that cannot be pure-python.
grep -viE 'coincurve|wallycore|pycryptodome|protobuf' requirements.txt > "$RUNNER_TEMP/btcr-reqs.txt"
pip install -r "$RUNNER_TEMP/btcr-reqs.txt"
- name: Run All Tests
env:
BTCR_BACKEND: ${{ matrix.backend }}
run: |
python run-all-tests.py -vv
76 changes: 76 additions & 0 deletions .github/workflows/Latest-Run-All-Tests_Full.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Last Push - All Tests (Full Modules)

env:
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1

on:
push:
branches: [ master ]

jobs:
build:
timeout-minutes: 20 # allow extra time for occasional slow tests
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04] # Test Ubuntu Only
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] # Test all supported versions of Python
backend: [coincurve, wallycore, purepython] # Test all three secp256k1 backends

steps:
- uses: actions/checkout@v7
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies (coincurve backend)
if: matrix.backend == 'coincurve'
run: |
python -m pip install --upgrade pip
# Install everything except coincurve first (this pulls in wallycore, the
# fallback backend), then try to add coincurve on top. On platforms where
# coincurve cannot be built (e.g. Python 3.14), the job still runs using
# the wallycore fallback instead of failing the install step.
grep -viE 'coincurve' requirements-full.txt > "$RUNNER_TEMP/btcr-reqs.txt"
# On Python 3.14 coincurve has no wheel and cannot build from source, and
# bip-utils (plus the packages that depend on it) hard-require coincurve.
# Exclude that subtree on 3.14 so the install succeeds using the wallycore
# fallback instead of failing on a coincurve source build.
if [ "${{ matrix.python-version }}" = "3.14" ]; then
grep -viE 'bip-utils|py_crypto_hd_wallet|slip10|stellar_sdk' "$RUNNER_TEMP/btcr-reqs.txt" > "$RUNNER_TEMP/btcr-reqs-3.14.txt"
mv "$RUNNER_TEMP/btcr-reqs-3.14.txt" "$RUNNER_TEMP/btcr-reqs.txt"
fi
pip install -r "$RUNNER_TEMP/btcr-reqs.txt"
sudo apt install python3-bsddb3
# Per-Python-version coincurve pin (matches available prebuilt wheels):
# 3.13 -> only 21.0.0 has a wheel; 3.14 -> no wheel, fall back to wallycore.
case "${{ matrix.python-version }}" in
3.13) pip install coincurve==21.0.0 || true ;;
*) pip install coincurve==21.0.0 || pip install coincurve==20.0.0 || true ;;
esac
- name: Install dependencies (wallycore backend)
if: matrix.backend == 'wallycore'
run: |
python -m pip install --upgrade pip
pip install wallycore
grep -viE 'coincurve|wallycore' requirements-full.txt > "$RUNNER_TEMP/btcr-reqs.txt"
pip install -r "$RUNNER_TEMP/btcr-reqs.txt"
sudo apt install python3-bsddb3
- name: Install dependencies (pure-python backend)
if: matrix.backend == 'purepython'
run: |
python -m pip install --upgrade pip
# Also exclude pycryptodome and protobuf so the pure-python AES,
# ChaCha20-Poly1305, and Keccak fallbacks are exercised.
grep -viE 'coincurve|wallycore|pycryptodome|protobuf' requirements-full.txt > "$RUNNER_TEMP/btcr-reqs.txt"
pip install -r "$RUNNER_TEMP/btcr-reqs.txt"
sudo apt install python3-bsddb3
- name: Run All Tests
env:
BTCR_BACKEND: ${{ matrix.backend }}
run: |
python run-all-tests.py -vv
34 changes: 34 additions & 0 deletions .github/workflows/PoCL-tests-full.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: OpenCL PoCL Tests (Full)

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:

jobs:
pocl-full:
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install OpenCL runtime
run: |
sudo apt-get update
sudo apt-get install -y pocl-opencl-icd ocl-icd-opencl-dev opencl-headers clinfo
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install coincurve==21.0.0 || pip install coincurve==20.0.0 || true
grep -viE 'coincurve' requirements-full.txt > "$RUNNER_TEMP/btcr-reqs.txt"
pip install -r "$RUNNER_TEMP/btcr-reqs.txt"
pip install pyopencl
- name: Run tests with PoCL
env:
PYOPENCL_COMPILER_OUTPUT: '1'
run: python run-all-tests.py -vv
32 changes: 32 additions & 0 deletions .github/workflows/PoCL-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: OpenCL PoCL Tests

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:

jobs:
pocl:
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install OpenCL runtime
run: |
sudo apt-get update
sudo apt-get install -y pocl-opencl-icd ocl-icd-opencl-dev opencl-headers clinfo
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pyopencl
- name: Run tests with PoCL
env:
PYOPENCL_COMPILER_OUTPUT: '1'
run: python run-all-tests.py -vv
71 changes: 71 additions & 0 deletions .github/workflows/Weekly-Run-All-Tests-Full.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Weekly - All Tests (+Optional Modules)

env:
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1

on:
schedule:
- cron: "0 0 * * 6"
pull_request:
branches: [ master ]
workflow_dispatch:

jobs:
build:
timeout-minutes: 20 # allow extra time for occasional slow tests
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-latest, macos-latest]
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] # Test all supported versions of Python
exclude:
- os: windows-latest
python-version: '3.13'

steps:
- uses: actions/checkout@v7
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Build Environment
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install autoconf automake libffi libtool pkg-config gnu-sed swig
fi
shell: bash
- name: Install dependencies
shell: bash
run: |
python -m pip install --upgrade pip
# Install everything except coincurve first (this pulls in wallycore, the
# fallback backend), then try to add coincurve on top. On platforms where
# coincurve cannot be built (e.g. Python 3.14), the job still runs using
# the wallycore fallback instead of failing the install step.
grep -viE 'coincurve' requirements-full.txt > "$RUNNER_TEMP/btcr-reqs.txt"
# On Python 3.14 coincurve has no wheel and cannot build from source, and
# bip-utils (plus the packages that depend on it) hard-require coincurve.
# Exclude that subtree on 3.14 so the install succeeds using the wallycore
# fallback instead of failing on a coincurve source build.
if [ "${{ matrix.python-version }}" = "3.14" ]; then
grep -viE 'bip-utils|py_crypto_hd_wallet|slip10|stellar_sdk' "$RUNNER_TEMP/btcr-reqs.txt" > "$RUNNER_TEMP/btcr-reqs-3.14.txt"
mv "$RUNNER_TEMP/btcr-reqs-3.14.txt" "$RUNNER_TEMP/btcr-reqs.txt"
fi
pip install -r "$RUNNER_TEMP/btcr-reqs.txt"
# Per-Python-version coincurve pin (matches available prebuilt wheels):
# 3.13 -> only 21.0.0 has a wheel; 3.14 -> no wheel, fall back to wallycore.
case "${{ matrix.python-version }}" in
3.13) pip install coincurve==21.0.0 || true ;;
*) pip install coincurve==21.0.0 || pip install coincurve==20.0.0 || true ;;
esac
- name: Install green on Windows (workaround for hanging tests on Github Actions)
if: runner.os == 'Windows'
run: pip install green
- name: Run All Tests
run: |
python run-all-tests.py -vv
Loading