Hop Docs
Developer Docs

Getting started

Instructions for running a Hop Node.
Notice: Currently Bonders must be allowed by the Hop Bridge smart contract governed by the Hop team. We are working on decentralizing the Bonder role completely. Reach out to the Hop team on discord if you are interested on becoming a bonder.

Getting started

Before getting started, read through the requirements listed below:
The first step is to set up a configuration file to specify which network to use and which tokens to bond.
Create a new directory under your home directory for the Hop Node configuration:
mkdir ~/.hop-node
The configuration file should be a JSON file under the Hop Node configuration directory:
touch ~/.hop-node/config.json
Open up this file now with your favorite editor and add the following example config:
For more configuration examples and information, see the Hop Node Configuration page.
The next step is to run the Hop Node using our configuration.
Make sure docker daemon is running if not already.
The Hop Node docker image is hosted on Docker Hub.
Pull the Hop Node docker image:
docker pull hopprotocol/hop-node
Create a new file docker.env with the private key to use for signing transactions (note: you may also use an encrypted keystore which is the recommended way):
In order for docker to be aware of the configuration file, we'll need to mount a volume with the location of the directory containing the config file.
Run the docker image with the --env-file argument and with the -v volume argument to mount the host directory ~/.hop-node to the /root directory on the container, and also specify to use the config with --config /root/config.json command argument:
docker run --env-file docker.env -v ~/.hop-node:/root hopprotocol/hop-node --config /root/config.json
This should be the bare minimum to get up and running. Check out the rest of the articles in the sidebar.

Using NPM

Note: Using docker instead is highly recommended instead of using NPM package.
Install @hop-protocol/hop-node package globally:
npm install --global @hop-protocol/hop-node
Setup the private key to use for signing transactions:
Run Hop Node with configuration file:
hop-node --config ~/.hop-node/config.json