How does it work?

Coinjoining is a method for bitcoin users to improve their privacy by combining their transactions with those of other users. This way, it is impossible to tell which inputs come from which person — or which outputs belong to which person. It is described in detail on bitcointalk.org.

In order to merge transactions, all parties need to find each other and willingly participate, exchanging transactions and signing them. This site aims to solve the peer-discovery problem by merging transactions submitted by all users.

If you are comfortable with the concept of coinjoining, and with bitcoind's rawtransaction API, check out the web interface. Otherwise, read on.

What do I do?

First, you need to enable the RPC port so that the coinjoin client can access your bitcoin wallet. To do this, add -server to the command-line of your bitcoin-qt. (Usually, this can be done by right-clicking the Bitcoin shortcut and choosing ``Properties''.)

Then, download and run the CoinJoin client application. Windows users can download a binary, and everyone else should grab the source code. (Linux and Mac builds will be available soon.)

cj-client screenshot

To use the client application,

  1. Select the coins you wish to run through the coinjoiner from the list. Choose the target output size to match the target in the joiner, or if no session is active, so that the number of outputs is 3-5.
  2. When you have chosen the coins and output size, click 'View Transaction' to see what is going to be submitted. You will see a bitcoin transaction with your selected inputs as inputs, and a collection of brand-new addresses (which are taken from your Bitcoin wallet's pool of hidden addresses) as outputs.
  3. If you are satisfied with the transaction, click 'Submit Transaction'. Leave the client open until the session ends.

After some time, the joining session will end. If others joined with you, your client will recognize this and sign a joined transaction provided by the central server. When all signatures, are in, the transaction will be submitted to the Bitcoin network and the join will be complete!