The following instructions assumes you are running a single validator full node with a remote instance of Connect. If you are not running a full node, you do not need to run Connect.

This document will guide you through setting up and running Connect, as well as configuring your node to receive data from Connect.

Installation

Using Curl

curl -sSL https://raw.githubusercontent.com/skip-mev/connect/main/scripts/install.sh | sudo bash

From GitHub Releases

Head over to our GitHub Releases page and download the binary that matches your machine’s architecture.

From Source

To install from source, you’ll need Git and Go.

Enter the commands below to install the binary.

git clone git@github.com:skip-mev/connect.git
cd connect
git checkout $(git describe --tags $(git rev-list --tags --max-count=1))
make install

Verify Installation

Let’s check Connect is properly installed on your machine. You should see the version printed in your terminal after running the following command:

connect version

Run Connect Sidecar

This tab provides general instructions for starting the Connect sidecar. If you are running one of the chains listed in the tabs above, please refer to those instructions.

To run Connect, which starts the service on the default port of 8080, enter the following command:

connect --market-map-endpoint="<YOUR_NODE_GRPC_URL>:<YOUR_NODE_GRPC_PORT>"

Verify Connect

To verify Connect is working, run the following command:

curl 'http://localhost:8080/connect/oracle/v2/prices' | jq .

The output of the command should look similar to this:

{
  "prices": {
    "ATOM/USD": "920650000",
    "BITCOIN/USD": "3980283250000",
    "DYDX/USD": "273682500",
    "ETHEREUM/BITCOIN": "5842000",
    "ETHEREUM/USD": "232550500000",
    "POLKADOT/USD": "638800000",
    "SOLANA/USD": "8430350000"
  },
  "timestamp": "2024-01-23T01:15:09.776890Z"
}

Run Application Node

In order for the application to get prices from Connect, we need to add the following lines under the [oracle] heading in the app.toml.

Remember to change the oracle_address value to the address of your Connect sidecar.

app.toml
# ... other sections

[oracle]
enabled = "true" # if you are not running a full node, set this to "false"
oracle_address = "<YOUR_CONNECT_SIDECAR>:8080"
client_timeout = "250ms"
metrics_enabled = "true"
interval = "1500ms"
price_ttl = "10s"

Once your app.toml is configured, you may start your node as normal.

Additional Steps

Using a remote signer? Have a distributed validator setup? Check out the advanced setups to learn how to properly configure your validator infrastructure.