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

Example .service Files

Templates for systemd service files that work with Tellor

Tellor requires two separate services that use two different binaries: layerd and reporterd.

For running the layer node client (layerd):

[Unit]
Description=Layer Node Client
After=network-online.target

[Service]
User=USERNAME
Group=USERNAME
WorkingDirectory=/home/USERNAME/layer
ExecStart=/home/USERNAME/path/to/layerd start --home /home/USERNAME/.layer --keyring-backend="test" --key-name=ACCOUNT_NAME  --api.enable --api.swagger
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

For running the reporter daemon (reporterd):

[Unit]
Description=Layer Reporter
After=network-online.target

[Service]
User=USERNAME
Group=USERNAME
WorkingDirectory=/home/USERNAME/layer/binaries/reporter
ExecStart=/home/USERNAME/layer/binaries/reporter/reporterd
Restart=always
RestartSec=10
# Reporter identity
Environment="LAYER_HOME=/home/USERNAME/.layer"
Environment="FROM=ACCOUNT_NAME"
Environment="KEYRING_BACKEND=test"
# Environment="KEYRING_PASSWORD_FILE=/etc/layer-daemons/reporter-keyring-password"  # required when KEYRING_BACKEND=file
Environment="RPC_NODES=tcp://127.0.0.1:26657"
Environment="GRPC_NODES=127.0.0.1:9090"
Environment="BRIDGE_CHAIN_RPC_NODES=https://sepolia.infura.io/v3/YOUR_INFURA_API_KEY,https://eth-sepolia.g.alchemy.com/v2/YOUR_ALCHEMY_API_KEY"
Environment="ETH_MAINNET_RPC_NODES=https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY,https://eth-mainnet.g.alchemy.com/v2/YOUR_ALCHEMY_API_KEY"
Environment="REPORTERS_VALIDATOR_ADDRESS=tellorvaloper1_your_address"
Environment="WITHDRAW_FREQUENCY=43200"
Environment="CMC_PRO_API_KEY=YOUR_COINMARKETCAP_API_KEY"
Environment="CGPRO_API_KEY=YOUR_COINGECKO_PRO_API_KEY"
Environment="SUBGRAPH_API_KEY=YOUR_GRAPH_API_KEY"
Environment="INFURA_API_KEY=YOUR_INFURA_API_KEY"
Environment="ALCHEMY_API_KEY=YOUR_ALCHEMY_API_KEY"
# Optional settings:
# Environment="REMOTE_SIGNER_ADDR=127.0.0.1:9191"
# Environment="REMOTE_SIGNER_CA_CERT=/etc/layer-daemons/remote-signer-ca.pem"
# Environment="REMOTE_SIGNER_CLIENT_CERT=/etc/layer-daemons/remote-signer-client.pem"
# Environment="REMOTE_SIGNER_CLIENT_KEY=/etc/layer-daemons/remote-signer-client-key.pem"
# Environment="DISPUTE_MONITOR_ENABLED=false"
# Environment="API_URLS=http://localhost:1317"
# Environment="CUSTOM_QUERY_CACHE_TTL=3s"

[Install]
WantedBy=multi-user.target

When using KEYRING_BACKEND=file, also set KEYRING_PASSWORD_FILE to a password file readable only by the service user. See the layer-daemons README for setup details.

Alternatively, you can load all reporter settings from a file:

For running a layer validator with cosmovisor:

Last updated

Was this helpful?