Supplier & RelayMiner Cheat Sheet (~25 minutes)

πŸ–¨ 🍝 with Scripted Abstractions 🍝 πŸ–¨

Stake an onchain Supplier and run an offchain RelayMiner in less than an hour, without deep explanations.


High Level Architecture Diagram

πŸŒ€ Pocket Network (Onchain)

Network State

RPC Request/Response

References

References

Signed Relay Request/Response

Suppliers

Supplier Node 1

Supplier Private Key

Supplier Node N

Supplier Private Key

🌿 Grove Gateway (Offchain)

Shannon SDK

PATH SDK

PATH Config File

Gateway Private Key

App Private Key(s)

User

Application Registry

Gateway Registry

Supplier Registry

App Config 1

App Config N

Gateway Config

20 Minute Video Walkthrough

Prerequisites

Optional Vultr Setup

The instructions on this page assume you have experience maintaining backend services.

You can reference the Vultr Playbook for a quick guide on how to set up a server with Vultr.

What will you do in this cheatsheet?

1

Stake a Supplier (onchain record)

Stake a Supplier.

2

Deploy a RelayMiner (offchain coprocessor)

Deploy a RelayMiner.

3

Serve relays

Serve relays.

4

Claim rewards

Claim rewards.

5

Submit proofs

Submit proofs.

6

Earn rewards for onchain services

Earn rewards for onchain services.

Account Setup

1

Create Supplier account

2

Prepare your environment

Create the following environment variables:

And source them in your shell:

3

Fund the Supplier account

Retrieve your Supplier address:

Fund your account by going to Shannon Beta TestNet faucet or running:

Check balance:

Supplier Configuration

For more details on supplier configurations, see the full supplier config docs.

1

Get your public URL

Retrieve your external IP:

Pick a public port to open (e.g. 8545):

Your supplier will be accessible at:

2

Configure your Supplier

Prepare the stake supplier config:

Replace service_id.

The example uses service_id: anvil. Use your own service_id or create a new one.

Revenue Share Update Permissions (Operator-Only Updates)

Revenue share addresses and percentages CAN ONLY be updated by the OPERATOR account.

In this example, both owner_address and operator_address are the same (custodial staking). This means the same account can update both stake amounts and revenue share configurations. For non-custodial staking, only the operator can modify revenue share settings.

3

Stake your Supplier

Submit the staking transaction:

And check the status onchain:

4

Suppliers staked on behalf of Owners (must read)

Make sure to read this section if your supplier WAS NOT staked by the operator.

Additional requirements for suppliers staked on behalf of owners:

Problem: Suppliers WITHOUT onchain public keys for their operators CANNOT sign Relay Responses and will be sanctioned by PATH.

Root Cause: A supplier operator may have an onchain account, but it does not necessarily mean it has an onchain public key until it signs its first onchain transaction.

Solution: Submit any onchain transaction where --from is the operator address.

Any transaction will work. For example, a small transfer:

How to check if you have an onchain account

Account without public key:

Account with public key:

RelayMiner Configuration

See RelayMiner config docs for all options.

1

(Optional) Start the anvil node

If using service_id: anvil, run a local Anvil node:

Test:

2

Configure the RelayMiner

Prepare the RelayMiner (offchain co-processor) config:

3

Ensure the RelayMiner is funded with an onchain public key

Supplier Public Key Issue Fix

Problem: New suppliers without public keys on-chain can't validate relay responses during their first session, even after delivering claims.

Root Cause: Igniter allows staking without operator signatures, leaving suppliers without required public keys.

Solution:

  • Ensure operators sign at least one transaction before staking

  • First claim submission will set the public key on-chain

  • Monitor for suppliers missing public keys

Consequences: Session-long relay validation failures until public key is established.

Status: Fleet re-staked, monitoring solution in development.

4

Start the RelayMiner

Start the RelayMiner (offchain co-processor) server:

5

Test the RelayMiner

After following the instructions in the Gateway cheatsheet, you will need a staked Application to send a relay request to your supplier assuming it is staked for the same service.

Example relay request to an Anvil (EVM) node:

Specifying a supplier: The request will fail if the specified supplier is not in the session at the time of the relay.

tl;dr example staking an application for anvil

Create an application:

Fund it (faucet or other).

Prepare the stake config:

Stake it:

Check the staking status:

Last updated

Was this helpful?