Skip to content
Python-based tools for the Bitcoin cryptocurrency system
Python
Latest commit 4e49d39 Mar 18, 2014 @gavinandresen Merge pull request #30 from jtobey/abe-tweaks
Abe tweaks
Failed to load latest commit information.
.gitignore Added .gitignore. Feb 22, 2011
BCDataStream.py Better wallet transaction dumping Apr 19, 2011
LICENSE.txt Initial upload to Google Code Jun 25, 2010
NOTES.txt Add support for ckeys (enCrypted keys). Jul 4, 2011
README.txt Link to jackjack-jj's fork of pywallet Jul 26, 2013
__init__.py Fix for tx deserialization. And some fixwallet hacks. Jan 19, 2011
address.py Major refactor: make parsing separate from printing. And new tool: fi… Dec 6, 2010
base58.py b58encode: speedup. Mar 18, 2014
blkindex.py Add --check-block-index function to look for block chain prev/next in… Nov 11, 2010
block.py Un-hardcode blk0001.dat (main chain is >2GB now) Nov 13, 2012
blocks.py remove dead 'owner' code Jun 30, 2010
coinbase_integers.py Un-hardcode blk0001.dat (main chain is >2GB now) Nov 13, 2012
dbdump.py Add option to print in JSON format when dumping a block, so output of… Sep 17, 2012
deserialize.py Avoid exception on invalid script. Mar 18, 2014
enumeration.py Initial upload to Google Code Jun 25, 2010
fixwallet.py Add more options to fixwallet, allowing partial recovery. Jan 19, 2012
jsonToCSV.py New jsonToCSV.py tool Apr 19, 2011
search_coinbases.py Un-hardcode blk0001.dat (main chain is >2GB now) Nov 13, 2012
statistics.py Un-hardcode blk0001.dat (main chain is >2GB now) Nov 13, 2012
testBCDataStream.py Remove pdb debugging Jul 2, 2010
transaction.py Major refactor: make parsing separate from printing. And new tool: fi… Dec 6, 2010
util.py bsddb is not always needed nor available Mar 10, 2013
wallet.py Be a bit more forgiving on errors. Jan 19, 2012

README.txt

NOTE:

These tools are becoming obsolete as we move away from using Berkeley DB in
Bitcoin-Qt/bitcoind.

If you are looking for a tool to manipulate the wallet.dat file, you might
want to try https://github.com/jackjack-jj/pywallet

REQUIREMENTS:

You must run Bitcoin-Qt/bitcoind versions 0.6.0 through 0.7.* with the "-detachdb" option
or these tools will be unable to read the Berkeley DB files.

Now that the bitcoin blockchain is more than 2GB big, some of these tools will no longer
run on 32-bit systems!

Running on a 32-bit system will result in a 'Cannot allocate memory' error when the tools
try to mmap the second blk000?.dat file.

----- dbdump.py -----
Run    dbdump.py --help    for usage.  Database files are opened read-only, but
you might want to backup your Bitcoin wallet.dat file just in case.

You must quit Bitcoin before reading the transactions, blocks, or address database files.

Examples:

Print out  wallet keys and transactions:
  dbdump.py --wallet --wallet-tx

Print out the "genesis block" (the very first block in the proof-of-work block chain):
  dbdump.py --block=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

Print out one of the transactions from my wallet:
  dbdump.py --transaction=c6e1bf883bceef0aa05113e189982055d9ba7212ddfc879798616a0d0828c98c
  dbdump.py --transaction=c6e1...c98c

Print out all 'received' transactions that aren't yet spent:
  dbdump.py --wallet-tx-filter='fromMe:False.*spent:False'

Print out all blocks involving transactions to the Bitcoin Faucet:
  dbdump.py --search-blocks=15VjRaDX9zpbA8LVnbrCAFzrVzN7ixHNsC

There's a special search term to look for non-standard transactions:
  dbdump.py --search-blocks=NONSTANDARD_CSCRIPTS

----- statistics.py -----
Scan all the transactions in the block chain and dump out a .csv file that shows transaction volume per month.

----- fixwallet.py -----
Half-baked utility that reads a wallet.dat and writes out a new wallet.dat.

Only half-baked because to be really useful I'd have to write serialize routines to re-pack data after modifying it...

----- jsonToCSV.py -----
Read JSON list-of-objects from standard input, writes CSV file to standard output.
Useful for converting bitcoind's listtransactions output to CSV that can be
imported into a spreadsheet.
Something went wrong with that request. Please try again.