SkillAgentSearch skills...

Walletlib

Unified interface to work with cryptocurrency wallet.dat, .wallet, .key files. Can automatically attempt to figure out what type of coin a .dat wallet contains via its prefix.

Install / Use

/learn @jimtje/Walletlib

README

walletlib

PyPI - Python Version

Unified interface to programmatically open and extract data from cryptocurrency wallet backup files

Quick Start with Docker - Start here if you simply need to dump the contents of a wallet file

Make sure that the files you are trying to open are in one directory.

$ docker pull jimzhou/walletlib:latest
$ docker run -v /path/to/your/wallet/folder:/app jimzhou/walletlib:latest wallet.dat -o wallet_output.txt --keys -p password

Output file will be in the directory with the wallet. --keys and -p are optional

Quick Start with installation

This module requires Python 3.7+

Note: prior to installation, make sure that BerkeleyDB 4.8+ is installed.

With Homebrew:

$ brew install berkeley-db@4

On Ubuntu

$ sudo apt-get install libdb++-dev python3-bsddb3
$ pip install walletlib

A convenient cli script is available after installation.

$ python -m dumpwallet wallet.dat -o output.txt

or

$ dumpwallet wallet.dat -o output.txt
$ dumpwallet wallet-protobuf -o output.txt --keys

Features

  • Automatic reading of version byte and WIF prefix from default keys
  • Dumping just keys or all data
  • Read only access of wallet files

Installation

The simplest way to install walletlib is using pip.

$ pip install walletlib

You can also clone this repo and then run

$ python setup.py install

Usage

import walletlib

wallet = walletlib.Walletdat.load("path/to/wallet.dat")
wallet.parse(passphrase="password")
wallet.dump_all(filepath="output.txt")
wallet.dump_keys(filepath="output_keys.txt")

Bitcoinj wallets:

import walletlib

wallet = walletlib.ProtobufWallet.load("path/to/wallet-protobuf")
wallet.parse()
wallet.dump_all(filepath="output.txt")
wallet.dump_keys(filepath="output_keys.txt")

Roadmap

  • [x] wallet.dat
    • [x] Encrypted keys
    • [x] Auto-identify prefix
    • [x] Decrypt encrypted keys
    • [x] p2pkh Wallets
    • [ ] Bech32 wallets
  • [x] Bitcoinj/Dogecoinj/Altcoinj wallets
    • [x] Open unencrypted wallet-protobuf/multibit .wallet/.key files
    • [ ] Decrypt encrypted wallets
  • [ ] Coinomi protobuf wallets
  • [ ] Blockchain.com wallet.aes.json
  • [ ] Documentation
View on GitHub
GitHub Stars28
CategoryDevelopment
Updated4d ago
Forks15

Languages

Python

Security Score

95/100

Audited on Mar 26, 2026

No findings