Skip to main content

Pocket Network Guide (30-60 min)

tl;dr Set up PATH with Pocket Network's Shannon protocol

🌿 Are you a Grove employee 🌿?
Download your configs here

1. Download the shannon .config.yaml

For MainNet:

op item get 4ifsnkuifvaggwgptns6xyglsa --fields notesPlain --format json | jq -r '.value' > ./local/path/.config.yaml

For Beta TestNet:

op item get 3treknedz5q47rgwdbreluwffu --fields notesPlain --format json | jq -r '.value' > ./local/path/.config.yaml

2. Comment out unused config sections

In ./local/path/.config.yaml:

  1. Comment out the owned_apps_private_keys_hex you're not using for testing.

  2. Comment out the data_reporter_config section:

    sed -i '' \
    -e 's/^[[:space:]]*data_reporter_config:/# data_reporter_config:/' \
    -e 's/^[[:space:]]*"target_url":/# "target_url":/' \
    local/path/.config.yaml

3. Download the guard .values.yaml

op item get fkltz2wb7fegpumntqyo3w5qau --fields notesPlain --format json | jq -r '.value' > ./local/path/.values.yaml

4. Skip to Section 4

Skip to Section 4: Run PATH

Are you coming from dev.poktroll.com?

Table of Contents

0. Prerequisites

⚠️ Complete the Getting Started guide.

1. Protocol Account Setup (Applications & Gateway)

You will need:

  1. Gateway: Facilitates relays and ensures QoS
  2. Application: Sends and pays for relays

1.1 Account Creation

Choose one of the following flows to setup your accounts:

  1. Recommended Setup: Follow the App & PATH Gateway Cheat Sheet for complete setup.

  2. Quick Setup for first-time users:

    Copy-pasta to stake onchain Application & Gateway

    Create gateway stake config:

    cat <<EOF > /tmp/stake_gateway_config.yaml
    stake_amount: 1000000upokt
    EOF

    Create application stake config:

    cat <<EOF > /tmp/stake_app_config.yaml
    stake_amount: 100000000upokt
    service_ids:
    - "anvil"
    EOF

    Create accounts:

    pocketd keys add gateway
    pocketd keys add application

    Fund accounts: Use faucet links here.

    Grove employees only

    Fund using pkd_beta_tx helper (instructions):

    pkd_beta_tx bank send faucet_beta $(pocketd keys show -a application --keyring-backend=test) 6900000000042upokt
    pkd_beta_tx bank send faucet_beta $(pocketd keys show -a gateway --keyring-backend=test) 6900000000042upokt

    Stake gateway:

    pocketd tx gateway stake-gateway \
    --config=/tmp/stake_gateway_config.yaml \
    --from=gateway --gas=auto --gas-prices=200upokt --gas-adjustment=1.5 --chain-id=pocket-beta \
    --node=https://shannon-grove-rpc.mainnet.poktroll.com \
    --keyring-backend=test \
    --yes

    Stake application:

    pocketd tx application stake-application \
    --config=/tmp/stake_app_config.yaml \
    --from=application --gas=auto --gas-prices=200upokt --gas-adjustment=1.5 --chain-id=pocket-beta \
    --node=https://shannon-grove-rpc.mainnet.poktroll.com \
    --keyring-backend=test \
    --yes

    Delegate application to gateway:

    pocketd tx application delegate-to-gateway $(pocketd keys show -a gateway --keyring-backend=test) \
    --from=application --gas=auto --gas-prices=200upokt --gas-adjustment=1.5 --chain-id=pocket-beta \
    --node=https://shannon-grove-rpc.mainnet.poktroll.com \
    --keyring-backend=test \
    --yes

1.2 Account Validation

Verify the keys are in your keyring:

# All accounts
pocketd keys list --keyring-backend=test

# Gateway only
pocketd keys show -a gateway --keyring-backend=test

# Application only
pocketd keys show -a application --keyring-backend=test

2. PATH Protocol Configuration (.config.yaml)

2.1 Generate Shannon Config

Generate config at local/path/.config.yaml:

make config_shannon_populate
Environment variables

Override defaults if needed:

  • POCKETD_HOME: Path to pocketd home (default $HOME/.pocketd)
  • POCKETD_KEYRING_BACKEND: Keyring backend (default test)

2.2 Verify Shannon Configuration

Check config:

cat local/path/.config.yaml

Expected format:

shannon_config:
full_node_config:
rpc_url: https://shannon-grove-rpc.mainnet.poktroll.com
grpc_config:
host_port: shannon-grove-grpc.mainnet.poktroll.com:443
lazy_mode: false
gateway_config:
gateway_mode: "centralized"
gateway_address: pokt1... # Your gateway address
gateway_private_key_hex: "0x..." # Your gateway private key
owned_apps_private_keys_hex:
- "0x..." # Your application private key

2.3 Verify onchain configuration matches

Verify service configuration for each application:

pocketd query application show-application \
$(pocketd keys show -a application --keyring-backend=test) \
--node=https://shannon-grove-rpc.mainnet.poktroll.com

:::

3. PATH Envoy Configuration (.values.yaml)

More details about configs

You can learn more about various configurations at Auth Configs or Helm Docs. It covers auth, rate limiting, etc...

3.1 Copy the template config

Run the following command to create local/path/.values.yaml:

make configs_copy_values_yaml

And check the contents of local/path/.values.yaml:

cat local/path/.values.yaml

3.2 Update the services

Update this section with the services you want to support. For example:

guard:
services:
- serviceId: eth
- serviceId: svc1
- serviceId: sv2

Make sure this reflects both of the following:

  1. What your onchain application is configured to support.
  2. What your gateway .config.yaml is configured for

4. Run PATH Stack Locally

4.1 Run & Monitor PATH

Run the following command and wait 1-2 minutes:

make path_up

Your terminal should display the following:

Terminal

Visit the Tilt dashboard at localhost:10350 and make sure everything is 🟢.

Tilt Dashboard

4.2 Check configured services

curl http://localhost:3070/healthz | jq

4.3 Example Relays

See Example Relays.

5. Stop PATH

When you're finished testing:

make path_down