bitcoinj : A Library for Working with Bitcoin
bitcoinj is a Java implementation of the Bitcoin protocol, which allows it to maintain a wallet and send/receive transactions without needing a local copy of Bitcoin Core. The library is well documented and also comes with example apps showing how to use it. Some of its important features are;
- Highly optimised lightweight simplified payment verification (SPV) mode (only a small part of the block chain is downloaded, making bitcoinj suitable for usage on constrained devices like smartphones).
- A wallet class with encryption, fee calculation, pluggable coin selection/coin control policies, extensions support and event listeners.
- Provides both async and thread-per-connection for network IO.
- Connect to the P2P network and download/parse/verify the block chain.
- Easily implement apps that use Bitcoin’s contracts features.
- Support for micropayment channels that let you set up a multi-signature contract between client and server, and then negotiate on the channel, allowing fast micropayments that avoid miner fees.
- Experimental full verification mode.