bitcoinj is a bitcoin library, bitsofproof is a full server (standalone 'exe').

Beyond the above - can anyone elaborate on the difference between them? What problems they were designed to solve, their documentation, maturity level?

Is there an overlap between them (in intended usage)?

2 Answers 2


There are lots of differences in features supported, but the crucial difference is the architecture: Embedded vs. Client-Server Bitcoin Protocol Node and Wallet.

BitcoinJ is a Java library to embed a Simplified or Full Verifying Bitcoin Node and a Wallet into your application.

The Bits of Proof Enterprise Bitcoin Server is a configurable Full Verifying Bitcoin Node written in Java. The server process is accessible through a message bus for client applications and extensions. Several layers and flavors of client libraries are available, such as: STOMP, Java, REST. The Wallet is implemented in the client library, therefore a server process can serve several unrelated applications and distinct Wallets. Several server instances might run in a load balanced configuration serving clients through a common bus. The company Bits of Proof offers commercial support and hosts server instances.


As I understand it, BitsOfProof is an enterprise level implementation of the full bitcoind client, including downloading the full blockchain and supporting a full array of features from the main client.

BitcoinJ is a java library that supports building a thinner client (downloads headers instead of full block chain) allowing for building bitcoin features into a memory or storage restricted environment.

  • Doesn't bitcoinj support full mode as well?
    – ripper234
    Commented Jun 17, 2013 at 17:26
  • I do believe there is experimental support for the full blockchain in bitcoinj. Commented Jun 19, 2013 at 21:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.