Configuration reference

Telliot tweaks and settings to keep your rig running smoothly.

CLI reference

Telliot commands and config file options are as the following:

Required Flags

  • --config (path to your config file.)

Telliot Commands

  • --logConfig (location of logging config file; default path is current directory)

  • mine (indicates to run the miner)

  • mine -r (indicates to mine utilizing a remote server)

  • dataserver (indicates to run the dataServer (no mining))

  • transfer (AMOUNT) (TOADDRESS) (indicates transfer, toAddress is Ethereum address and amount is number of Tributes (eg. transfer 10 0xea... (this transfers 10 tokens)))

  • approve (AMOUNT) (TOADDRESS) (ammount to approve the toaddress to send this amount of tokens

  • stake deposit (indicates to deposit tokens in the contract)

  • stake request (indicates you wish to withdraw your stake)

  • stake withdraw (withdraws your stake, run 1 week after request)

  • stake status (shows your staking balance)

  • balance (shows your balance)

.env file options:

  • NODE_URL (required) - node URL (e.g or https://localhost:8545 if own node)

  • ETH_PRIVATE_KEY (required) - privateKey for your address

  • $PSR$_KEY - API key for getting a specific indexes.json api (required if you use authenticated API's)

Config file options:

  • contractAddress (required) - address of TellorContract

  • databaseURL (required) - where you are reading from for the server database (if hosted)

  • publicAddress (required) - public address for your miner (note, no 0x)

  • ethClientTimeout (required) - timeout for making requests from your node

  • trackerCycle (required) - how often your database updates (in seconds)

  • trackers (required) - which pieces of the database you update

  • dbFile (required) - where you want to store your local database (if self-hosting)

  • serverHost (required) - location to host server

  • serverWhitelist (required) - whitelists which publicAddress can access the data server

  • fetchTimeout - timeout for requesting data from an API

  • requestData - sets wether your miner request data if challenge is 0. If yes, then you will addTip() to this number. Enter a uint number representing request id to be requested (e.g. 2)

  • requestDataInterval - min frequency at which to request data at (in seconds, default 30)

  • gasMultiplier - Multiplies the submitted gasPrice (e.g. 2 will double gas costs)

  • gasMax - a max for the gas price in gwei (note: this max comes BEFORE the gas multiplier. So a max gas cost of 10 gwei, can have gas prices up to 20 if gasMultiplier is 2)

  • heartbeat - an integer that controls how frequently the miner process should report the hashrate (larger is less frequent, try 1000000 to start)

  • numProcessors - an integer number of CPU cores/threads to use for mining. (cpu mining is disabled if there is a suitable GPU is found

  • disputeTimeDelta - how far back to store values for min/max range - default 5 (in minutes)

  • disputeThreshold - percentage of acceptable range outside min/max for dispute checking - default

  • psrFolder - folder location holding your psr.json file, default working directory


If you have one or more GPUs, they will be used for mining by default. Currently only Nvidia cards are supported, and the default behavior will work well for miners.

You can configure your GPUs as you wish by adding / editing the following lines in your config.json file:


If you have multiple GPUs connected, you can specify different config settings for each card in the following format:


Replace "GPUName1" with system name for each card. On most systems you can get a list of GPUs with nvidia-smi -l

You may edit the variables to try to improve hashrate for your GPU model:

  • disabled: boolean on whether or not to disable a specific GPU

  • groupSize - number of groups to split work into

  • groups - number of groups of work submitted to the gpu at once

  • count: number of hashes each thread executes in one pass

Edit these variables at your own risk! Reach out to the community if you're unsure.

LogConfig file options

The logging.config file consists of two fields: * component * level

The component is the package.component combination.

E.G. the Runner component in the tracker package would be: tracker.Runner

To turn on logging, add the component and the according level. Note the default level is "INFO", so to turn down the number of logs, enter "WARN" or "ERROR"

DEBUG - logs everything in INFO and additional developer logs

INFO - logs most information about the mining operation

WARN - logs all warnings and errors

ERROR - logs only serious errors