For the complete documentation index, see llms.txt. This page is also available as Markdown.

Run a Data Reporter

Operate a Data Reporter!

Staking

To create a reporter on Tellor Layer, you must first "stake" your address one of two ways. You must either create a validator -OR- delegate to a validator to bond your tokens.

  • Create a Validator: Your account is the KEYNAME account used for your validator.

  • Delegate to a Validator: If your reporter account is not a validator account, you must bond your address to a validator before you may create your reporter.

1) Configure a Reporter on Tellor

Use the layerd cli register and initialize your reporter configuration. Commission-rate and min-tokens-required are shown at safe values, but can be adjusted (now or later) for personal preference:

# create-reporter [commission-rate] [min-tokens-required] [moniker] [flags]
./layerd tx reporter create-reporter 0.05 1000000 REPORTER_MONIKER --from YOUR_ACCOUNT_NAME --chain-id tellor-1 --fees 10loya --yes

Parameters:

  • A (example) commision-rate of 0.05 means that you get 5% of rewards from your selectors.

  • A (example) min-tokens-required value of 1000000 prevents spam by requiring that selectors have at least 1 TRB in their wallet. This can be changed later.

  • Choose a REPORTER_MONIKER that you love! (It does not need to be the same as your validator moniker.)

2) Check if your reporter was created successfully:

./layerd query reporter reporters | grep -A 7 YOUR_TELLOR_ADDRESS

If your reporter was created successfully, this will output your reporter information.

3) Download the latest reporterd binary:

Download reporterd v0.2.8:

4) Create .env

reporterd loads environment variables from a .env file in the current working directory (or from ../.env when run from a subdirectory). You can also set these in a systemd service file instead.

Copy env.example from layer-daemons and edit the values for your setup:

At minimum, set LAYER_HOME, FROM, KEYRING_BACKEND, RPC_NODES, GRPC_NODES, BRIDGE_CHAIN_RPC_NODES, and your custom query API keys. RPC_NODES, GRPC_NODES, BRIDGE_CHAIN_RPC_NODES, and ETH_MAINNET_RPC_NODES accept comma-separated endpoint lists, with the first endpoint used as the primary and later endpoints used as ordered fallbacks.

Most CLI flags can be provided as environment variables by uppercasing the flag name and replacing - or . with _ (for example, --keyring-backend becomes KEYRING_BACKEND). Use LAYER_HOME for the Layer home directory instead of relying on the shell's HOME. When using KEYRING_BACKEND=file, set KEYRING_PASSWORD_FILE to a file that contains the keyring password and is readable only by the service user.

Set ETH_MAINNET_RPC_NODES when your bridge chain RPC endpoints are not Ethereum mainnet, or when you want to provide explicit Ethereum mainnet fallbacks for custom query contract reads. The built-in custom query templates also use CMC_PRO_API_KEY, CGPRO_API_KEY, SUBGRAPH_API_KEY, and, when ETH_MAINNET_RPC_NODES is unset, INFURA_API_KEY and ALCHEMY_API_KEY.

See the layer-daemons README and env.example for all available options, including remote signer, dispute monitor, custom query cache, auto-unbonding, price guard, and auto balance-to-keep bridge settings.

5) Start the reporter:

From the directory containing your .env file:

If you prefer CLI flags instead of .env, you can still pass them explicitly. Environment variables take precedence over matching flags when both are set:

Here is an example start command for a reporter who wants to automatically unbond 2.999 TRB (2999999 loya) per day with a maximum set to 1% of their total stake:

The same auto-unbonding settings can be set in .env:

Congratulations on becoming a Tellor Reporter! 🎉

Last updated

Was this helpful?