Reporting With Telliot

Learn how to automatically report data using a command line tool.

Reporting a Price

You can start reporting through Telliot by running the following Telliot command:

telliot report -a myacct1 -qt pls-usd-spot --fetch-flex -ncr

This will make a PLS/USD price report (without checking for 'tips') with the liquidity weighted average price (LWAP) default configuration:

Note: When using the report command, Telliot will automatically attempt to stake the minimum required to report. Use the Fetch Dashboard to check the current minimum stake amount.

Always confirm the correct settings when prompted and read chain-specific usage sections before setting up your reporter!

Always include --fetch-flex on the CLI for reporting to FetchFlex contract.

There are also additional flags you can pass to use a specific strategy for calculating maxFeePerGas and maxPriorityFeePerGas for EIP-1559 transactions. To learn more, view the Fees Estimation section of this documentation.

Help Flag

Use the help flag to view all available commands and option flags:

$ telliot --help

For details on all available ENV configurations available in Telliot, please review the Appendix.

Always make config changes using the .env file in the ~/fetchoracle/disputable-values-monitor/ if you installed from the installation script.

If you installed -core and -feeds as standalones, change the .env in their respective folders.

Reporting Options

This section covers the various ways to report using Telliot.

Basic Report

The basic command line to report is:

telliot report -a <acc name> -qt <query to report> -ncr --fetch-flex

You can use the -ncr 'no check rewards' option to submit anytime. Otherwise, it will not report unless there are tips available for the QueryID you want to report. A full command line would look like this:

telliot report -a myacct1 -qt pls-usd-spot -ncr --fetch-flex

By default, Telliot will try to report to your chosen query every 7 seconds.

Custom Staking for Reporting

When reporting to Fetch Oracle, reporters can stake multiple times. The minimum value for each stake will be given by the minimum stake amount as configured in the Oracle contract.

You can find the current minimum stake amount for reporting to Fetch Oracle on the Fetch Dashboard.

The reporter will automatically attempt to stake the required amount, but if you'd like to stake more than the current minimum you can use the --stake/-s flag like so:

telliot report -a myacct1 -qt pls-usd-spot -ncr --fetch-flex -s 500000

In the above example, Telliot will try to stake 500,000 FETCH tokens and then report immediately afterwards. If you just want to stake the tokens, press ctrl + c right after the stake is confirmed.

NOTE: If the reporter account's actual stake is reduced after a dispute, the reporter will attempt to stake the difference in FETCH to return to the original desired stake amount.

To avoid this, run it without the -s flag. It will stop reporting when it detects a deduction in stake amount, which may mean it got disputed.

To continue reporting when disputed use the --continue-reporting-on-dispute flag.

It is not possible to unstake FETCH using the Telliot command line. Instead you can use the Fetch Dashboard to unstake your FETCH at any time after the initial 7-day period.

Single Report

To submit a simple single report, add the --submit-once flag, like this:

telliot report -a myacct1 -qt pls-usd-spot -ncr --fetch-flex --submit-once

After one value is submitted to Fetch Oracle, the Telliot process will terminate.

Reporting in Intervals

To stop trying to report every 7 seconds, we can use the -wp option and specify what interval, in seconds, we want Telliot to try to submit a report. Here' how:

telliot report -a myacct1 -qt pls-usd-spot -ncr --fetch-flex -wp 3600

Here, Telliot will submit the first report and then wait 3,600 seconds (1 hour) to try to submit the next one. If you are out of lock period it will succeed, otherwise, it will try again 3,600 seconds later.

Last updated