I'm pleased to announce the release of BitCoinJ 0.4, the leading Java implementation of the Bitcoin protocol. BitCoinJ implements simplified payment verification, a lightweight mode in which no central server or authority is needed but the resource requirements are still low enough to be usable on smartphones. This version of the library is used in the new releases of Android Wallet and MultiBit. New in this release - Ability to use "getheaders" to quickly catch up new users to the head of the chain. This is a big performance win. - ECKeys no longer require the private part, allowing for "watching wallets" that cannot spend, but still gather and track the transactions associated with the public keys. - A new API that implements transaction confidences. Get a quick summary or detailed information about how much confidence you can have that a given transaction won't be reversed. - A new DerbyBlockStore that stores block headers and related data in the Apache Derby relational database. - Protocol buffers are now a supported serialization format for the wallet. This means BitCoinJ based protobuf wallets can be read and manipulated by any language/platform with a protobufs implementation, which is most of them. There are extension points in the format to allow third parties to add new features. - Various new event listeners that help you learn when the state of the wallet or transactions change. - Support for post February 20th version handshakes (most library users already got this fix via backports) - All event listeners are now allowed to remove themselves during their own execution. - New APIs that allow you to create offline transactions and then broadcast them at a later point. Pending relevant transactions are recorded and announced to all newly connected nodes, ensuring a transaction won't "get lost" if there was flaky network connectivity at the time of creation. Pending transactions are supported much better in this release than in previous releases. - Wallet now can now take an invalid transaction and complete it by adding sufficient inputs and a change output. This enables the creation of multi-sends, as well as making experimentation with contracts easier. - Support for BIP 14: apps can now set their own "user agent" which will be put in the subVer field along with the library version. - Updated DNS seeds list. - A new WalletTool program for command line usage, and a ToyWallet app showing how to set everything up. - Support parsing and checking of alert messages. - New articles explaining how to use the library: - Working with transactions - Working with the wallet - The usual assortment of bugfixes, new APIs, robustness and test suite improvements. Thanks to everyone who contributed to this release, in particular Andreas Schildbach, Miron Cuperman, Roman Maneleil, Chris Rico and Vasile Rotaru. In the next release cycle, I'll be focusing on the following areas: 1. Real support for transaction fee calculations (most users apply a custom patch for this today) 2. A better block chain API 3. Have the library manage save points for the wallet itself 4. Further chain download time optimizations 5. More support for moving apps onto "work done" as a confidence measurement Of course contributors are welcome to work on whatever they want. thanks