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:
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:
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:
Wait until your Vault synchronisation will be 100% (It usually takes 10-20 minutes)
Now your Vault is registered in the system, and you can make transfers through it.