Caravan is making bitcoin multisig custody easier and safer through transparency and standards.
Caravan is a coordination software. It connects to a source of consensus and your keys to build and interact with multisig bitcoin addresses.
Caravan is also stateless. It does not itself store any data. You must safekeep the addresses (and redeem scripts & BIP32 paths) you create.
Caravan is a stateless pure HTML & JavaScript web application. It can be run in any web browser from a local or remote installation.
The simplest way to use Caravan is to visit https://unchained-capital.github.io/caravan, a copy of Caravan hosted on GitHub by Unchained Capital.
If you would prefer to host your own copy of Caravan on GitHub, you
can do so by first forking the
Caravan repository
into your own GitHub organization. You should see a copy of the
Caravan web application at
https://YOUR_GITHUB_USERNAME.github.io/caravan
.
If not, go to the (newly forked) repository's "Settings" page and scroll down to the "GitHub Pages" section. Ensure you see a message saying "Your site is published at ...".
You can always clone the source code of Caravan to your local machine
and run it from there. You will require a recent npm
installation.
$ git clone https://github.com/unchained-capital/caravan
...
$ cd caravan
$ npm install
...
$ npm start
...
Now visit https://localhost:3000
to interact with your local copy of
Caravan.
Once you have downloaded the source code and used npm
to install
dependences (see section above), you can pre-build the React
application for a production deployment and then host the contents of
the resulting build
directory via a webserver such as nginx
.
$ npm run build
...
If you can access the Caravan web application in your browser, you are ready to start using Caravan.
Click the Create or Interact links in the navbar to get started.
See our YouTube playlist for some tutorial videos.
Caravan can connect to several different hardware wallets and key management software.
-
Trezor One (installing the Trezor Bridge is required to interact with a Trezor device)
Caravan also accepts public keys and signatures as text so any wallet which can export these data can be made to work with Caravan.
By default, Caravan uses a free API provided by blockstream.info whenever it needs information about the bitcoin blockchain or to broadcast transactions.
You can ask Caravan to use your own private bitcoind full node.
When asking Caravan to use a private bitcoind node you may run into CORS issues.
To correct this problem, you must add appropriate access control
headers to your node's HTTP responses. When running Caravan on your
local machine, for example, you may need to set
Access-Control-Allow-Origin: https://localhost:3000
.
This can be done using a webserver such as nginx or Apache, a proxy tool such as mitmproxy, or even just a script.
A particularly simple way to proxy requests to a private bitcoind node
is to make use of the corsproxy
npm module. Instructions to install and run the module are on its
home page.
Explicitly, install corsproxy
with
$ npm install -g corsproxy
and then launch corsproxy
$ corsproxy
You should see:
$ [log,info], data: CORS Proxy running at: http://localhost:1337
...
If you are running a bitcoind node on the same machine as Caravan,
on port 8332, and you run corsproxy
with the default settings,
you should be able to point Caravan at 'http://localhost:1337/localhost:8332'
to communicate with your node. A testnet node would be running on a
different port, for example: http://localhost:1337/localhost:18332
, and you
would need to point Caravan to that URL instead.
Finally, a testnet/regtest node running on a different machine but still on the same
network might be accessible to you via http://localhost:1337/192.168.0.22:18332
, but
you need to make sure the ports are open and accessible. It should be clear at this
point that if corsproxy is running, paste your node's IP:port on the end of the
corsproxy
URL: http://localhost:1337/
Please see the CONTRIBUTING.md
and the open GitHub Issues