# Environment variables

The client's configuration is managed through the `.env` file. Generally, you will need to configure the **BTC\_RPC\_URL**, which can be set either through the [client's menu](/guides-of-data-consensus/others/operation-references/common-operations/set-btc-rpc-node.md) or by directly editing the `.env` file.

* **Synchronizer**: Requires a Bitcoin full node.
* **Validator**: Both Bitcoin full node and light node works.

Other configurations can be adjusted as needed.

```
# network configurations mainnet or testnet
NETWORK=mainnet

# Logger configurations
# Maximum size for each log file (30 MB)
# LOGGER_MAX_SIZE=30m

# Directory where log files are stored
# LOGGER_DIR=logs

# Maximum age for log files (30 days)
# LOGGER_MAX_FILES=30d

# ExSat RPC URLs configurations
# You can leave it empty to use the default exSat configuration.
# Configure this as an array, with the best-performing URL as the first element to serve as the primary node.
# For testnet use: ["https://chain-tst3.exactsat.io"]
# For mainnet use: ["https://rpc-us.exsat.network", "https://rpc-sg.exsat.network"], or other custom nodes.
EXSAT_RPC_URLS=[]

# Bitcoin RPC URL
BTC_RPC_URL=

# Bitcoin RPC username
BTC_RPC_USERNAME=

# Bitcoin RPC password
BTC_RPC_PASSWORD=

################################################################################

# Synchronizer configurations(is required only for the synchronizer)
# Size of each upload chunk (256 KB). Be careful! Modifying this configuration may cause block uploading failure. It must not be less than 100 KB.
# CHUNK_SIZE=262144

# Scheduler for block upload jobs (every second)
# SYNCHRONIZER_JOBS_BLOCK_UPLOAD=*/1 * * * * *

# Scheduler for block verify jobs (every second)
# SYNCHRONIZER_JOBS_BLOCK_VERIFY=*/1 * * * * *

# Scheduler for block parse jobs (every 5 seconds)
# SYNCHRONIZER_JOBS_BLOCK_PARSE=*/5 * * * * *

# File path to the synchronizer's keystore
SYNCHRONIZER_KEYSTORE_FILE=

# Password for the synchronizer's keystore
SYNCHRONIZER_KEYSTORE_PASSWORD=

################################################################################

# Validator configurations(is required only for the validator)
# Scheduler for endorsement jobs (every second)
# VALIDATOR_JOBS_ENDORSE=*/1 * * * * *

# Scheduler for endorsement check jobs (every 1 minute)
# VALIDATOR_JOBS_ENDORSE_CHECK=0 * * * * *

# File path to the validator's keystore
VALIDATOR_KEYSTORE_FILE=

# Password for the validator's keystore
VALIDATOR_KEYSTORE_PASSWORD=

################################################################################

# Enable prometheus
PROMETHEUS=false

# Prometheus listen address
PROMETHEUS_ADDRESS=0.0.0.0:9900

################################################################################
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.exsat.network/guides-of-data-consensus/others/operation-references/common-operations/environment-variables.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
