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.
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. It comes with full documentation and some example apps showing how to use the library.
Features:
- Connect to the P2P network and download/parse/verify the block chain.
- Highly optimised lightweight simplified payment verification (SPV) mode. In this mode, only a small part of the block chain is downloaded and verified, making bitcoinj suitable for usage on constrained devices like laptops, smartphones or cheap virtual private servers.
- SPV wallets can sync with the blockchain in seconds, even from a cold start.
- Experimental full verification mode, which does the same verification work as Bitcoin Core. In this mode, the unspent transaction output set (UTXO set) is calculated and, thanks to a PostgreSQL store, can be indexed into a database allowing for fast lookup of balance by address.
- A wallet class with encryption, fee calculation, pluggable coin selection/coin control policies, extensions support and event listeners that let you stay up to date with changes in your balance.
- 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 over how much value is sent on the channel, allowing rapid and fast micropayments that avoid miner fees.
- Provides both async and thread-per-connection for network IO, allowing you to choose between scalability and blocking-only features like socks/tor proxying.
- Strong BitcoinStandards support.
- Command line tool for working with wallet and chain files.
- Example apps, thorough API documentation and articles explaining the design and layout of the library.
Home Page: https://code.google.com/p/bitcoinj/