Installing the Vault Client

Running a Vault will allow you to hold BTC of users in custody and in return earn a return on your collateral. To install the Vault client, follow this guide.

At the end of this document you will have:

Started the Vault client locally or on your server
Registered your Vault on the OneBTC mainnet

Prerequisites

  • Make sure that you have a recent version of Linux or MacOS running. Windows support is not tested.
  • Make sure that you have at least 2GB of RAM.
  • Make sure you have at least 4 GB of free disk space.
  • You should have a stable Internet connection.
  • Make sure that your Vault client is running for at least 8 hours per day (you can do other things on the side).

Quickstart

Setup the Vault client using docker-compose. Best if you want to quickly try out running the client.

0. Install docker and docker-compose

Make sure docker and docker-compose are installed in your system.

1. Download the docker-compose file to start the Vault client

mkdir vault && cd vault
curl -L -o 'docker-compose.yml' https://raw.githubusercontent.com/harmony-one/onebtc.relayer-client/main/docker-compose.yml

2. Add your Harmony and BTC accounts

You can add your accounts in 2 ways using the env file or using AWS config - the second way is definitely more secure.

2.1. Add your Harmony and BTC accounts with ENV file

Add a ./keys/.env.private file into that folder that contains the private key of the harmony and BTC wallets you want to use for the Vault, e.g.:

mkdir keys
vi ./keys/.env.private

and paste here 2 keys: pk for your Harmony wallet and pk for your BTC wallet

HMY_VAULT_PRIVATE_KEY=0x6a36da....
BTC_VAULT_PRIVATE_KEY=16878a5c....
Bitcoin PK must be in HEX format → You can quickly generate your Bitcoin PK here https://privatekeys.pw/keys/bitcoin/random (for testing only!!!)

2.2. Add your Harmony and BTC accounts with AWS config

Add your encrypted AWS config files to ./keys/hmy-secret and ./keys/btc-secret

hmy-secret for hmy account private key: 0x6a36da....

btc-secret for btc account private key: 16878a5c....

// TODO

2.3 Disclaimer

The private key shown above is for display purposes only. DO NOT share or reuse private keys.

Please use a separate private keys for each client. If the Vault spends funds from another wallet this may be marked as theft.

Important! You should to add your Harmony PK to any Harmony wallet - you will need it to manage your Vault
Important! Please don't add your BTC PK to any wallets (enough to save mnemonic phrase in private place). You will never need to use BTC PK with wallet. Any manually transfer with this BTC PK will be marked as theft.

3. Start the Vault client

You can run the entire Vault client with the following command:

docker-compose up -d

You can optionally view the running docker containers with command docker-compose ps. You can optionally view the logs to see what the containers are doing with docker-compose logs -f.

Your 3000 port should be free - other way you should to change this port (UI_PORT) in docker compose

3. Register your Vault in OneBTC

Open your browser on the vault admin page http://localhost:3000. If you launch Vault on remote server you should to open this port and use your remote server address http://your_server_address:3000

If you set other UI_PORT in docker compose file - please use it instead 3000

You should to see next page:

image

Click Register button to register your Vault in OneBtc system

Important - you should to have minimum 11 ONEs on you Harmony address to complete register operation

Then you should to see Vault details page:

image

Wait until your Vault synchronisation will be 100% (It usually takes 10-20 minutes)

image

Now your Vault is registered in the system, and you can make transfers through it.