Catena is a Bitcoin witnessing scheme that prevents online services from equivocating to their clients (old code, see new code on website)
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Catena: Preventing Lies with Bitcoin

Catena can be used by any service or application who wants to prove a linear history of statements to its clients.

How to run on Linux

First, install Maven:

sudo apt-get install maven

If you're on Mac OS X, download the Bitcoin source code from GitHub to ~/repos/bitcoin/ (you can change if you want to choose a different directory) and compile the bitcoind binary using instructions in doc/

Then, compile Catena:

mvn compile

Then, setup your environment so that the Bitcoin-related scripts in btc-scripts/ work:


Then, run all the tests:


Then you can run a Catena server using ./ (pass in -h for help) and a Catena client using ./

Bitcoin testnet

You can play with Catena on the Bitcoin testnet network for free:

  1. Get testnet Bitcoins from a free faucet like this one:
  2. Start the server and create a root-of-trust TXN (example here)
  3. Use the server to create a config for the Catena client
  4. Launch the client with the config file and wait for the statements to arrive

Some websites: