<p><a href="http://code.google.com/p/bitcoinj/" rel="noreferrer">BitcoinJ</a> is the most mature library to my knowledge (though it is still at an early development stage). It has been developed by Google employee Mike Hearn.</p>

<blockquote>
  <p>BitCoinJ implements the "simplified payment verification" mode of
  Satoshis paper. It does not store a full copy of the block chain,
  rather, it stores what it needs in order to verify transactions with
  the aid of an untrusted peer node.</p>
</blockquote>

<p>The above makes it especially useful for mobile applications.</p>

CC BY-SA 3.0
2011-09-03T14:17:53.773Z
2011-09-03T14:30:45.920Z
2011-09-03T14:30:45.920Z
D.H.
<p><strong><a href="http://code.google.com/p/bitcoinj/">BitCoinJ</a></strong></p>

<p>In addition to @D.H's answer, BitCoinJ provides the following for developers</p>

<ul>
<li>open source through Subversion</li>
<li>easy to use Java API</li>
<li>easy to integrate via Maven</li>
<li>access to either release or snapshot editions depending on your risk profile</li>
</ul>

<p>BitCoinJ also uses the <a href="http://www.bouncycastle.org/">Bouncy Castle encryption algorithm implementations</a>. Some of these were missing or poorly implemented in Android which necessitated the inclusion of these libraries into BitCoinJ (currently via the Maven Shade plugin to allow updates to Bouncy Castle to be introduced when they occur). </p>

<p>These inclusions makes it a very useful library to get started with than simply rolling your own against the JSON API of the standard client. </p>

<p>Disclaimer: I'm a contributor to the BitCoinJ project so I'm a bit biased regarding it's utility. </p>

<p><a href="http://code.google.com/p/bccapi/"><strong>BCCAPI</strong></a></p>

<p>A transaction and balance monitoring API for Java.</p>

<p>From the website:</p>

<blockquote>
  <p>The BCCAPI (BitCoin Client API) allows you to create a light-weight
  secure Bitcoin client in Java. The BCCAPI connects to a server that
  holds the block chain, and which tracks the client’s wallet balance on
  the clients behalf. The server only has knowledge of the clients
  public keys, and is in no position to spend funds owned by the
  client’s wallet.</p>
</blockquote>

<p>This could be useful if your application does not require the client to spend coins through your system.</p>

<p><strong>Off topic: A note on Bitcoin clients in Java</strong></p>

<p>Although it's not a library as such, you may benefit from looking at the source code for the <a href="http://multibit.org/">MultiBit</a> project to get you started in creating a Java Swing based Bitcoin client based on BitCoinJ with internationalisation and QR code support.</p>

CC BY-SA 3.0
2011-09-03T17:38:17.523Z
2011-09-03T17:38:17.523Z
Gary
<p>are there Java libraries for Bitcoin available to develop client applications?</p>

<client><development><bitcoinj><java>
Java library for Bitcoin Client Application
Thor
# Java library for Bitcoin Client Application

(Asked by: username_0 on 2011-09-03)

are there Java libraries for Bitcoin available to develop client applications?

**Tags:** client, development, bitcoinj, java


---

## 2 answers

### Answer by username_2 on 2011-09-03. Score: 10 | Accepted answer

**[BitCoinJ](http://code.google.com/p/bitcoinj/)**

In addition to @D.H's answer, BitCoinJ provides the following for developers

* open source through Subversion
* easy to use Java API
* easy to integrate via Maven
* access to either release or snapshot editions depending on your risk profile

BitCoinJ also uses the [Bouncy Castle encryption algorithm implementations](http://www.bouncycastle.org/). Some of these were missing or poorly implemented in Android which necessitated the inclusion of these libraries into BitCoinJ (currently via the Maven Shade plugin to allow updates to Bouncy Castle to be introduced when they occur).

These inclusions makes it a very useful library to get started with than simply rolling your own against the JSON API of the standard client.

Disclaimer: I'm a contributor to the BitCoinJ project so I'm a bit biased regarding it's utility.

[**BCCAPI**](http://code.google.com/p/bccapi/)

A transaction and balance monitoring API for Java.

From the website:

> The BCCAPI (BitCoin Client API) allows you to create a light-weight
> secure Bitcoin client in Java. The BCCAPI connects to a server that
> holds the block chain, and which tracks the client’s wallet balance on
> the clients behalf. The server only has knowledge of the clients
> public keys, and is in no position to spend funds owned by the
> client’s wallet.

This could be useful if your application does not require the client to spend coins through your system.

**Off topic: A note on Bitcoin clients in Java**

Although it's not a library as such, you may benefit from looking at the source code for the [MultiBit](http://multibit.org/) project to get you started in creating a Java Swing based Bitcoin client based on BitCoinJ with internationalisation and QR code support.


---

### Answer by username_1 on 2011-09-03. Score: 7

[BitcoinJ](http://code.google.com/p/bitcoinj/) is the most mature library to my knowledge (though it is still at an early development stage). It has been developed by Google employee Mike Hearn.

> BitCoinJ implements the "simplified payment verification" mode of
> Satoshis paper. It does not store a full copy of the block chain,
> rather, it stores what it needs in order to verify transactions with
> the aid of an untrusted peer node.

The above makes it especially useful for mobile applications.


---

