☑️ENV Variables
The following are backend variables only.
You will find deprecated ENV vars on the Deprecated ENV Variables page.
Set ENV Variables with CLI
Use the export command to set variables. For example:
Example ENV Variables Set
The following variables are set for the Gnosis Chain Blockscout Instance. Note that some variables are not included as they contain private information which should not be exposed.
Full ENV Variables CSV file
Last updated 4 August, 2023.
Time format
Can be set in format 1h
for 1 hour, 1m
for 1 minute, 1s
or 1
for 1 second, 1ms
for 1 millisecond
Note: Before release 5.1.2, all environment variables of time format supported only integers in seconds (without dimensions) as values.
Available ENV Variables
This table is horizontally scrollable, version information is located in the last column. ENVs are listed by category:
General
Variable | Required | Description | Default | Version | Need recompile |
---|---|---|---|---|---|
| ✅ | Variable to define the Postgres Database endpoint. | (empty) | all | |
| ✅ | Tells the application which RPC Client the node is using (i.e. | ganache | all | |
| ✅ | The RPC endpoint used to fetch blocks, transactions, receipts, tokens. | localhost:8545 | all | |
| ✅ | Variable to define the Postgres Database read-only replica endpoint. If it is provided, most of the read queries from API v2 and UI would go through this endpoint. | (empty) | all | |
| Management of DB queue target. Implemented in #8991. | 50ms | v5.4.0+ | ||
| The RPC endpoint specifically for the Erigon/Geth/Nethermind/Besu client used by trace_block and trace_replayTransaction. This can be used to designate a tracing node. | localhost:8545 | all | ||
| The WebSockets RPC endpoint used to subscribe to the | ws://localhost:8546 | all | ||
| Specifies the transport for Blockscout to connect to the Ethereum Node. Available transports are | http | v3.1.0+ | ||
| If | (empty) | v5.0.0+ | ||
| Timeout for ethereum json rpc http requests in seconds. Implemented in #7089 | 60 | v5.1.2+ | ||
| User in basic auth for JSON RPC endpoint. Implemented in #6897 | (empty) | v5.1.2+ | ||
| Password in basic auth for JSON RPC endpoint. Implemented in #6897 | (empty) | v5.1.2+ | ||
| Custom headers for JSON RPC endpoint in form of json object, example: | (empty) | v5.2.1+ | ||
| Fallback JSON RPC HTTP url. Implemented in #7246 | (empty) | v5.1.4+ | ||
| Fallback JSON RPC trace url. Implemented in #7246 | (empty) | v5.1.4+ | ||
| Fallback JSON RPC | (empty) | v6.3.0+ | ||
| Wait time for each recent timeout from node. Implemented in #8292 | 20s | v5.2.3+ | ||
| JSON RPC url for eth_call method. Implemented in #9112 | (empty) | v6.0.0+ | ||
| Environment variable for the main EVM network such as Ethereum or POA. | POA | all | ||
| Environment variable for the subnetwork such as Core or Sokol Network. This will be displayed as selected in the chains list dropdown. | POA Sokol | all | ||
| Path to the IPC file of the running node if IPC transport is chosen. | (empty) | v2.1.1+ | ||
| Used to set a network path other than what is displayed in the root directory. An example would be to add | / | all | ||
| Host for API endpoint examples. | localhost | v2.1.0+ | ||
| Url scheme for blockscout. | in prod env | v2.1.0+ | ||
| ✅ | The value is used to sign cookies. Use mix phx.gen.secret to generate a new Secret Key Base string to protect production assets. | (empty) | all | |
| Used to check the origin of requests when the origin header is present. It defaults to | false | all | ||
| Default port the application runs on is 4000. | 4000 | all | ||
| The coin here is checked via the CoinGecko API to obtain USD prices on graphs and other areas of the UI. | POA | all | ||
| Displayed name of the coin. Also used for "Add chain to MetaMask" button and for Account functionality as native coin name in the email letters for watch list. | (empty) | v4.1.2+ | ||
| Should be set to |
| v2.0.4+ | ||
| Chain specification path (absolute file system path or URL) to import block emission reward ranges and genesis account balances from. Geth- and OpenEthereum-style specs are supported. | (empty) | v2.0.4+ | ||
| This environment variable is used by the RSK in order to tell the application how to calculate the total supply of the chain. Available values is | (empty) | all | ||
| Variable to define the number of database connections allowed excluding read-only API endpoints requests. | 50 | all | ||
| Variable to define the number of database connections allowed for read-only API endpoints requests. | 50 | v4.1.0+ | ||
| Production environment variable to use SSL on Ecto queries. | true | all | ||
| Production environment variable to restart the application in the event of a crash. | 30 | all | ||
| Production environment variable to restart the application in the event of a crash. | (empty) | all | ||
| Elixir version to install on the node before Blockscout deploy. It is used in bash script in Terraform / Ansible deployment script | (empty) | all | ||
| Default transaction hash in a sample query to GraphiQL. | (empty) | v1.2.0+ | ✅ | |
| If |
| v2.0.3+ | ✅ | |
| If |
| v5.1.5+ | ✅ | |
| If |
| v5.1.5+ | ✅ | |
| Link to web application instance, e.g. | (empty) | v2.0.3+ | ||
| Link to API instance, e.g. | (empty) | v2.0.3+ | ||
|
| v5.3.2+ | |||
| API key to protect some sensitive endpoints. Implemented in #7355 | (empty) | v5.1.5+ | ||
| If set to | true | v3.1.0+ | ||
| Defines checksum address function. 2 available values: | eth | v2.0.1+ | ||
| A comma-separated list of addresses to enable restricted access to them. | (empty) | v3.3.3+ | ||
| A key to access addresses listed in | (empty) | v3.3.3+ | ||
| Specifies the model of data, enables fetchers, specific to the chain. Available values are |
| v5.3.0+ | ✅ | |
| Chain ID of the network. For instance, 100 in the case of xDai chain. | (empty) | v3.7.0+ | ||
| JSON RPC endpoint of the chain for the WalletConnect integration. Implemented in #4931 | (empty) | v4.1.0+ | ||
| New blocks indexed max delay in /health API endpoint. Time format. Implemented in #2294 | 5 m | v2.0.2+ | ||
| Add public tag labels. More info in #6316 | (empty) | v5.0.0+ | ||
| Specify addresses for some label. More info in #6316 | (empty) | v5.0.0+ | ||
| Value of this env will be added to domain of session cookie. Implemented in #6544 | (empty) | v5.0.0+ | ||
| Allows to decode contract calls directed to addresses which are not contracts. Implemented in #6541 |
| v5.1.0+ | ✅ | |
| EIP-1559 elasticity multiplier. Implemented in #7253 | 2 | v5.1.3+ | ||
| EIP-1559 base fee max change denominator. Implemented in #9202 | 8 | v6.2.0+ | ||
| Concurrency of new fields backfiller implemented in #8386 | 5 | v5.3.0+ | ||
| Batch size of new fields backfiller implemented in #8386 | 50 | v5.3.0+ | ||
|
| v5.3.2+ | |||
| Bottom block for token id migration. Implemented in #6391 | 0 | v5.0.0+ | ||
| Number of workers performing the token id migration. Implemented in #6391 | 1 | v5.0.0+ | ||
| Interval of token transfer block numbers processed by a token id migration worker at a time. Implemented in #6391 | 500 | v5.0.0+ | ||
| TTL for cached tabs counters (works only for counters which are < 51, if counter >= 51, then ttl == :infinity). Implemented in #8512 |
| v5.3.0+ |
Indexer management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Transformer for blocks: base or clique. | base | v1.3.4+ | |
| If |
| v2.0.3+ | |
| If |
| v5.1.5+ | |
| If |
| v4.1.2+ | |
| If |
| v4.1.2+ | |
| if |
| v4.1.3+ | |
| If |
| v4.1.3+ | |
| If |
| v4.1.3+ | |
| Memory soft limit for the indexer. | 1Gb | v4.1.3+ | |
| Batch size for empty block sanitizer (re-fetcher). | 100 | v4.1.3+ | |
| Batch size for blocks catchup fetcher. Implemented in #6196. | 10 | v5.0.0+ | |
| Concurrency for blocks catchup fetcher. Implemented in #6196. | 10 | v5.0.0+ | |
| Empty blocks sanitizer is disabled if | false | v5.1.2+ | |
| If |
| v4.1.6+ | |
| The block number, where import of blocks by catchup fetcher begins from. | 0 | v1.3.8+ | |
| The block number, where import of blocks by catchup fetcher stops. | (empty) | v2.0.3+ | |
| The block number, where indexing of internal transactions begins from. | 0 | v4.1.0+ | |
| The block number, where indexing of internal transactions stops. | (empty) | v4.1.0+ | |
| Block ranges to import by catchup fetcher. Example: | v4.1.7+ | ||
| Tells the application how to calculate block rewards, by fetching via json_rpc ( | trace_block | v4.1.4+ | |
| IPFS gateway url for fetching token instances metadata from IPFS including token instance icon. | https://ipfs.io/ipfs | v5.3.0+ | |
| Timeout for | 5s | v4.1.3+ | |
| If |
| v5.0.0+ | |
| Defines which method will be used for fetching pending transactions: |
| v5.0.0+ | |
| Batch size for internal transactions fetcher. Implemented in #6450. | 10 | v5.0.0+ | |
| Concurrency for internal transactions fetcher. Implemented in #6450. | 4 | v5.0.0+ | |
| In the case when the 1st tx in the chain already has internal transactions, If the number of blocks in pending_block_operations is less than the value in this env var, Blockscout will consider, that indexing of internal transactions finished, otherwise, it will consider, that indexing is still taking place and the indexing banner will appear at the top. Implemented in #7576. | 1000 | v5.2.0+ | |
| Batch size for block reward fetcher. Implemented in #6952. | 10 | v5.1.2+ | |
| Concurrency for block reward fetcher. Implemented in #6952. | 4 | v5.1.2+ | |
| Batch size for transaction receipts fetcher. Implemented in #6454. | 250 | v5.0.0+ | |
| Concurrency for transaction receipts fetcher. Implemented in #6454. | 10 | v5.0.0+ | |
| Batch size for coin balances fetcher. Implemented in #6454. | 100 | v5.0.0+ | |
| Concurrency for coin balances fetcher. Implemented in #6454. | 4 | v5.0.0+ | |
| Concurrency for token fetcher. Implemented in #8167. | 10 | v5.2.2 | |
| Batch size for token balances fetcher. Implemented in #7439. | 100 | v5.1.5+ | |
| Concurrency for token balances fetcher. Implemented in #8167. | 10 | v5.2.2 | |
| If | false | v5.1.0+ | |
| Maximum number of items in an internal cache of tx actions indexing process (to limit memory consumption). Implemented in #6582. | 100000 | v5.1.0+ | |
| The first block of a block range for historical indexing or reindexing of tx actions. Implemented in #6582. | (empty) | v5.1.0+ | |
| The last block of a block range for historical indexing or reindexing of tx actions. Implemented in #6582. | (empty) | v5.1.0+ | |
| Comma-separated names of protocols which should be indexed or reindexed on historical blocks defined by the range. Example: | (empty) | v5.1.0+ | |
| Pool contract address for Aave v3 protocol. If not defined, Aave transaction actions are ignored by the indexer. Implemented in #7185. | (empty) | v5.1.3+ | |
| UniswapV3Factory contract address. Implemented in #7312. | 0x1F98431c8aD98523631AE4a59f267346ea31F984 | v5.1.4+ | |
| NonfungiblePositionManager contract address for Uniswap v3. Implemented in #7312. | 0xC36442b4a4522E871399CD717aBDD847Ab11FE88 | v5.1.4+ | |
| Batch size for missing ranges collector. Implemented in #6583. | 100000 | v5.0.0+ | |
| Batch size for min missing block number updater. Implemented in #6583. | 100000 | v5.0.0+ | |
| Tracer type for |
| v5.1.0+ | |
| Interval between attempts to fetch token instance metadata. Time format. Implemented in #7286. |
| v5.1.4+ | |
| Concurrency for | 10 | v5.1.4+ | |
| Concurrency for | 10 | v5.1.4+ | |
| Concurrency for | 10 | v5.1.4+ | |
| If |
| v5.1.4+ | |
| If |
| v5.1.4+ | |
| If |
| v5.1.4+ | |
| If |
| v6.2.0+ | |
| Max gap between consecutive | 1000 | v5.1.5+ | |
| If |
| v5.1.5+ | |
| The block number, where import of withdrawals by catchup fetcher begins from. Should be the block where withdrawals upgrade occured on the chain. Implemented in #6694. | (empty) | v5.1.5+ | |
| Interval between blocks catchup fetcher tasks. Implemented in #7489. |
| v5.1.5+ | |
| Limit for all fetchers init queries. Implemented in #7697. | 100 | v5.2.0+ | |
| Batch size for | 10 | v5.2.3+ | |
| Batch size for | 1 | v5.2.3+ | |
| Batch size for | 10 | v5.2.3+ | |
| Limit for token balance fetcher init queries. Implemented in #8459. | 100000 | v5.2.3+ | |
| Limit for coin balance fetcher init queries. Implemented in #7996. | 2000 | v5.3.0+ | |
| If |
| v5.3.0+ | |
| Concurrency for legacy | 2 | v5.4.0+ | |
| Batch size for legacy | 10 | v5.3.0+ | |
| If |
| v6.2.0+ | |
| If |
| v6.2.0+ | |
| Concurrency for | 2 | v6.2.0+ | |
| Concurrency for | 2 | v6.2.0+ | |
| Batch size for | 10 | v6.2.0+ | |
| Batch size for | 10 | v6.2.0+ | |
| Interval for empty block sanitizer. Implemented in #8658 |
| v5.3.0+ | |
| Max block number gap from latest for which balances requests can be processed when | 200 | v5.3.1+ | |
| If |
| v5.3.2+ | |
| Block ranges for traceable blocks. Example: | (empty) | v5.4.0+ | |
| Enable tracing by block for geth variant. Implemented in #9072 |
| v6.1.0+ |
Denormalization management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Number of transactions to denormalize (add block timestamp and consensus) in the batch. | 500 | v6.0.0-beta | |
| Number of parallel denormalization transaction batches processing. | 10 | v6.0.0-beta | |
| Number of token transfers to denormalize (add token_type) in the batch. | 100 | v6.3.0+ | |
| Number of parallel denormalization token transfer batches processing. | 1 | v6.3.0+ | |
| Number of token transfers to sanitize in the batch. | 100 | v6.3.0+ | |
| Number of parallel sanitizing token transfer batches processing. | 1 | v6.3.0+ |
Ethereum Management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| The Beacon Chain RPC endpoint used to fetch blob sidecars. Required if | http://localhost:5052 | v6.2.0+ | |
| If | false | v6.2.0+ | |
| Slot duration in the Beacon Chain in seconds. Required if | 12 | v6.2.0+ | |
| Any past finalized Beacon Chain slot number. Used as reference for blob inclusion slot calculations. Required if | 8000000 | v6.2.0+ | |
| UTC timestamp of the Beacon Chain slot specified in | 1702824023 | v6.2.0+ | |
| Beacon Chain blob fetcher start block. On start-up, indexer will only look for missed blobs beyond this block number. It's recommended to set this block to the first block after the Dencun hardfork. Implemented in #9168. | 19200000 | v6.2.0+ | |
| Beacon Chain blob fetcher end block. On start-up, indexer will only look for missed blobs before this block number. If set to | 0 | v6.2.0+ |
Polygon Edge Management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| The RPC endpoint for L1 used to fetch deposit or withdrawal events. Implemented in #8180. | (empty) | v5.3.0+ | |
| The address of ExitHelper contract on L1 (root chain) used to fetch withdrawal exits. Required for withdrawal events indexing. Implemented in #8180. | (empty) | v5.3.0+ | |
| The number of start block on L1 (root chain) to index withdrawal exits. If the table of withdrawal exits is not empty, the process will continue indexing from the last indexed message. If empty or not defined, the withdrawal exits are not indexed. Implemented in #8180. | (empty) | v5.3.0+ | |
| The address of StateSender contract on L1 (root chain) used to fetch deposits. Required for deposit events indexing. Implemented in #8180. | (empty) | v5.3.0+ | |
| The number of start block on L1 (root chain) to index deposits. If the table of deposits is not empty, the process will continue indexing from the last indexed message. If empty or not defined, the deposits are not indexed. Implemented in #8180. | (empty) | v5.3.0+ | |
| The address of L2StateSender contract on L2 (child chain) used to fetch withdrawals. Required for withdrawal events indexing. Implemented in #8180. | (empty) | v5.3.0+ | |
| The number of start block on L2 (child chain) to index withdrawals. If the table of withdrawals is not empty, the process will fill gaps and then continue indexing from the last indexed message. If empty or not defined, the withdrawals are not indexed. Implemented in #8180. | (empty) | v5.3.0+ | |
| The address of StateReceiver contract on L2 (child chain) used to fetch deposit executes. Required for deposit events indexing. Implemented in #8180. | (empty) | v5.3.0+ | |
| The number of start block on L2 (child chain) to index deposit executes. If the table of deposit executes is not empty, the process will fill gaps and then continue indexing from the last indexed message. If empty or not defined, the deposit executes are not indexed. Implemented in #8180. | (empty) | v5.3.0+ | |
| Block range size for eth_getLogs request in Polygon Edge indexer modules. Implemented in #8180. | (empty) | v5.3.0+ |
Rootstock management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| The address hash of remasc address on Rootstock chain. Implemented in #8542. | v5.3.0+ | ||
| The address hash of bridge address on Rootstock chain. Implemented in #8542. | v5.3.0+ | ||
| If | v5.3.2+ | ||
| The interval between fetching the next | v5.3.2+ | ||
| The number of requests in one JSON-RPC batch request, used to configure the load or RPS on JSON-RPC node. Implemented in #8742. | v5.3.2+ | ||
| The number of simultaneous requests to the JSON-RPC node, used to configure the load or RPS on JOSN-RPC node. Implemented in #8742. | v5.3.2+ | ||
| The number of blocks that are fetched from the database in one database query. Implemented in #8742. | v5.3.2+ |
Shibarium Management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| The RPC endpoint for L1 used to fetch deposit or withdrawal events. Implemented in #8929. | (empty) | v6.1.0+ | |
| The number of start block on L1 to index L1 events. If the table of bridge operations is not empty, the process will continue indexing from the last indexed L1 event. If empty or not defined, the L1 events are not handled. Implemented in #8929. | (empty) | v6.1.0+ | |
| The address of DepositManagerProxy contract on L1 used to fetch BONE token deposits. Required for L1 events indexing. Implemented in #8929. | (empty) | v6.1.0+ | |
| The address of EtherPredicateProxy contract on L1 used to fetch ETH deposits and withdrawals. Required for L1 events indexing. Implemented in #8929. | (empty) | v6.1.0+ | |
| The address of ERC20PredicateProxy contract on L1 used to fetch ERC20 token deposits and withdrawals. Required for L1 events indexing. Implemented in #8929. | (empty) | v6.1.0+ | |
| The address of ERC721PredicateProxy contract on L1 used to fetch ERC721 token deposits and withdrawals. Optional for L1 events indexing. Implemented in #8929. | (empty) | v6.1.0+ | |
| The address of ERC1155PredicateProxy contract on L1 used to fetch ERC1155 token deposits and withdrawals. Optional for L1 events indexing. Implemented in #8929. | (empty) | v6.1.0+ | |
| The address of WithdrawManagerProxy contract on L1 used to fetch BONE token withdrawals. Required for L1 events indexing. Implemented in #8929. | (empty) | v6.1.0+ | |
| The number of start block on L2 to index L2 events. If the table of bridge operations is not empty, the process will continue indexing from the last indexed L2 event. If empty or not defined, the L2 events are not handled. Implemented in #8929. | (empty) | v6.1.0+ | |
| The address of ChildChain contract on L2 used to fetch BONE token deposits. Required for L2 events indexing. Implemented in #8929. | (empty) | v6.1.0+ | |
| The address of WETH contract on L2 used to fetch ETH deposits and withdrawals. Required for L2 events indexing. Implemented in #8929. | (empty) | v6.1.0+ | |
| The address of a contract which emits | (empty) | v6.1.0+ |
Polygon zkEVM Rollup management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Enables Polygon zkEVM batches fetcher. Implemented in #7584. |
| v5.3.1+ | |
| The number of Polygon zkEVM batches in one chunk when reading them from RPC. Implemented in #7584. | 20 | v5.3.1+ | |
| The latest batch rechecking interval, seconds. Implemented in #7584. | 60 | v5.3.1+ | |
| The RPC endpoint for L1 used to fetch Deposit or Withdrawal bridge events. Implemented in #9098. | v6.2.0+ | ||
| The number of a start block on L1 to index L1 bridge events. If the table of bridge operations is not empty, the process will continue indexing from the last indexed L1 event. If empty or not defined, the L1 events are not handled. Implemented in #9098. | v6.2.0+ | ||
| The address of PolygonZkEVMBridge contract on L1 used to fetch L1 bridge events. Required for L1 bridge events indexing. Implemented in #9098. | v6.2.0+ | ||
| The symbol of the native coin on L1 to display it in the table of the bridge Deposits and Withdrawals on UI. Implemented in #9098. | ETH | v6.2.0+ | |
| The number of decimals to correctly display an amount of native coins for some Deposit or Withdrawal bridge operations on UI. Implemented in #9098. | 18 | v6.2.0+ | |
| The number of a start block on L2 to index L2 bridge events. If the table of bridge operations is not empty, the process will continue indexing from the last indexed L2 event. If empty or not defined, the L2 events are not handled. Implemented in #9098. | v6.2.0+ | ||
| The address of PolygonZkEVMBridge contract on L2 used to fetch L2 bridge events. Required for L2 bridge events indexing. Implemented in #9098. | v6.2.0+ |
Optimism Rollup Management
Please note that these Optimism-related variables are only supported in production-optimism branch or by Docker image from blockscout/blockscout-optimism
DockerHub repository.
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| The RPC endpoint for L1 used to fetch transaction batches, output roots, deposits, or withdrawal events. Implemented in #6980. | (empty) | v6.3.0+ | |
| The address of OptimismPortal contract on L1 used to fetch deposits and withdrawal events. Required for deposits and withdrawal events indexing. Implemented in #6980. | (empty) | v6.3.0+ | |
| The number of start block on L1 to index transaction batches. If the table of batches is not empty, the process will continue indexing from the last indexed batch. Implemented in #6980. | (empty) | v6.3.0+ | |
| The inbox address to index transaction batches on L1. Required if | (empty) | v6.3.0+ | |
| The batch submitter address to index transaction batches on L1. Required if | (empty) | v6.3.0+ | |
| Defines a URL to Blockscout Blobs API to retrieve L1 blobs from that. Example for Sepolia: | (empty) | v6.3.0+ | |
| Blocks chunk size to send batch RPC requests. Implemented in #6980. | 4 | v6.3.0+ | |
| L2 genesis block number for Optimism chain. Required if | (empty) | v6.3.0+ | |
| The number of start block on L1 to index output roots. If the table of output roots is not empty, the process will continue indexing from the last indexed root. Implemented in #6980. | (empty) | v6.3.0+ | |
| The address of OutputOracle contract on L1 used to fetch output roots. Required for output roots indexing when | (empty) | v6.3.0+ | |
| The number of the L1 block from which deposits will be fetched. Implemented in #6993. | (empty) | v6.3.0+ | |
| Number of blocks in a single | 500 | v6.3.0+ | |
| The number of start block on L1 to index withdrawal events. If the table of withdrawal events is not empty, the process will continue indexing from the last indexed withdrawal event. Implemented in #6980. | (empty) | v6.3.0+ | |
| The number of start block on L2 to index withdrawals. If the table of withdrawals is not empty, the process will continue indexing from the last indexed withdrawal. Implemented in #6980. | (empty) | v6.3.0+ | |
| The address of L2ToL1MessagePasser contract to index withdrawals. Required if | (empty) | v6.3.0+ |
zkSync Rollup Management
Please note that these zkSync-related variables are only supported in production-zksync branch or by Docker image from blockscout/blockscout-zksync
DockerHub repository.
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Enables Polygon zkEVM batches fetcher. Implemented in #9080. |
| production-zksync | |
| The number of RPC calls in one request when reading data from RPC. Implemented in #9080. | 50 | production-zksync | |
| Maximum amount of batches requested if Blockscout does not have all batches synced. Implemented in #9080. | 50 | production-zksync | |
| The latest batch rechecking interval, seconds. Implemented in #9080. | 60 | production-zksync | |
| The RPC endpoint for L1 used to fetch status of batches. Implemented in #9080. | (empty) | production-zksync | |
| The batches status rechecking interval, seconds. Implemented in #9080. | 60 | production-zksync |
Exchange rates management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Disables or enables fetching of coin price from Coingecko API. | false | v3.1.2+ | |
| This environment variable is used to set source for market cap fetching. Available values |
| v5.2.3+ | |
| This environment variable is used to set source for TVL fetching. Available value is | (empty) | v5.3.0+ | |
| This environment variable is used to set source for price fetching. Available values are also |
| v5.2.3+ | |
| Explicitly set CoinGecko coin ID. | (empty) | v4.1.4+ | |
| Explicitly set CoinGecko coin ID for secondary coin market chart. Implemented in #9483. | (empty) | v6.3.0+ | |
| CoinGecko API key. | (empty) | v4.1.4+ | |
| CoinMarketCap API key. Required, if | (empty) | v4.1.4+ | |
| CoinMarketCap coin id. | (empty) | v5.2.1+ | |
| CoinMarketCap coin id for secondary coin market chart. Implemented in #9483. | (empty) | v6.3.0+ | |
| DefiLlama coin id. | (empty) | v5.3.0+ | |
| if | (empty) | v4.1.5+ | |
| CoinGecko platform id for which token prices are fetched, see full list in | ethereum | v5.1.2+ | |
| Interval between batch requests of token prices. Can be decreased in order to fetch prices faster if you have pro rate limit. Time format. Implemented in #6925. | 5s | v5.1.2+ | |
| Interval between refetching token prices, responsible for the relevance of prices. Time format. Implemented in #6925. | 1 hour | v5.1.2+ | |
| Batch size of a single token price request. Implemented in #6925. | 150 | v5.1.2+ | |
| If | true | v5.1.2+ | |
| CryptoCompare coin symbol for secondary coin market chart. Implemented in #9483. | (empty) | v6.3.0+ |
Cache management
Variable | Required | Description | Default | Version | Need recompile |
---|---|---|---|---|---|
| Time interval to restart the task, which calculates the total txs count. Time format. | 2h | v4.1.3+ | ||
| Time to live of addresses sum (except burn address) cache. Time format. Introduced in #2862. | 1h | v4.1.3+ | ||
| Interval to restart the task, which calculates the total gas usage. Time format. | 2h | v4.1.3+ | ||
| Time interval to restart the task, which calculates the total pending_block_operations count. Time format. | 20m | v5.2.0+ | ||
| Interval to restart the task, which calculates gas usage at the address. Time format. | 30m | v4.1.3+ | ||
| Interval to restart the task, which calculates holders count of the token. Time format. | 1h | v4.1.3+ | ||
| Interval to restart the task, which calculates transfers count of the token. Time format. | 1h | v4.1.3+ | ||
| Interval to restart the task, which calculates addresses with balances. Time format. | 30m | v4.1.3+ | ✅ | |
| Interval to restart the task which updates token metadata. Time format. | 48h | v2.0.1+ | ||
| Update of average block period cache. Time format. | 30m | v4.1.3+ | ||
| Update of market history cache. Time format. | 6h | v4.1.3+ | ||
| Time to live of address' transactions counter. Time format. Introduced in #3330. | 1h | v3.4.0+ | ||
| Managing of cache invalidation period for the sum of USD value of tokens per tokens' holder address. Time format. | 1h | v3.5.0+ | ||
| Value which is to tune the time to live of exchange rates. Time format. Implemented in #5671. | 10m | v4.1.5+ | ✅ | |
| A threshold to invalidate token balance cache. Time format. | 1h | v5.1.2+ | ||
| A threshold to invalidate coin balance cache. Time format. | 1h | v5.1.2+ | ||
| Interval to restart the task, which calculates the number of token transfers at the address. Time format. Implemented in #4699. | 1h | v4.0.0+ | ||
| Time to live of blocks with consensus count cache. Time format. Introduced in #1876. | 2h | v4.1.3+ | ||
| if |
| v5.1.3+ | ✅ | |
| Interval to update data for the last day in Market History table. Time format. Introduced in #9197. | 1h | v6.1.0+ | ||
| Interval to update data for the last 24 hours transactions stats. Time format. Introduced in #9483. | 1h | v6.3.0+ | ||
| Interval to update count of pending transactions that appeared less than half an hour ago. Time format. Introduced in #9483. | 5m | v6.3.0+ | ||
| Interval to update data for the last output root size counter. Time format. Introduced in #9532. | 5m | v6.3.0+ |
Gas price oracle management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Gas price oracle: number of blocks to calculate average gas price from | 200 | v4.1.4+ | |
| Gas price oracle: safelow percentile | 35 | v4.1.4+ | |
| Gas price oracle: average percentile | 60 | v4.1.4+ | |
| Gas price oracle: fast percentile | 90 | v4.1.4+ | |
| Gas price oracle: period of gas prices update. Time format. | 30s | v4.1.4+ | |
| Gas price oracle: amount of gas for a simple coin transfer. Introduced in #9044. | 21000 | v6.0.0+ | |
| Average block time multiplied by this coefficent for safelow gas price when time from pending transactions is not available. Floats may be used. Introduced in #9582. | 5 | v6.3.0+ | |
| Average block time multiplied by this coefficent for average gas price when time from pending transactions is not available. Floats may be used. Introduced in #9582. | 3 | v6.3.0+ | |
| Average block time multiplied by this coefficent for fast gas price when time from pending transactions is not available. Floats may be used. Introduced in #9582. | 1 | v6.3.0+ |
Main page dashboard management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Gas price in Gwei. If the variable is present, gas price displays on the main page. | (empty) | v3.3.2+ | |
| Disables or enables txs per day stats gathering. | true | v5.1.3+ | |
| Disables or enables price and market cap of coin charts on the main page. | false | v3.1.2+ | |
| Allows to show price and market cap values under the chart even if price chart is not enabled via | false | v5.1.4+ | |
| Disables or enables txs count per day chart on the main page. | true | v3.1.2+ | |
| The initial delay in txs count history fetching in order to display txs count per day history chart on the main page. Time format. | 0 | v3.1.2+ | |
| Number of days for fetching of history of txs count per day in order to display it in txs count per day history chart on the main page. | 40 | v3.1.2+ |
Header management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Environment variable for the header logo image location. The logo files names for different chains can be found here. | /images/blockscout_logo.svg | all | |
| Enables testnet label right after logo in the navigation panel. Implemented in #5732 | (empty) | v4.1.6+ | |
| The text inside the test label. Implemented in #5732 | Testnet | v4.1.6+ | |
| An array of supported chains that display in the footer and in the chains dropdown. This var was introduced in this PR #1900 and looks like an array of JSON objects. | [ { title: "POA", url: "https://blockscout.com/poa/core" }, { title: "Sokol", url: "https://blockscout.com/poa/sokol", test_net?: true }, { title: "Gnosis Chain", url: "https://gnosis.blockscout.com/" }, { title: "Ethereum Classic", url: "https://etc.blockscout.com", other?: true }, { title: "RSK", url: "https://rootstock.blockscout.com", other?: true } ] | v2.0.0+ | |
| true/false. If true, the Apps navigation menu item appears. | false | v3.3.1+ | |
| (empty) | v5.0.0+ |
Footer management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Environment variable for the footer logo image location. The logo files names for different chains can be found here. | /images/blockscout_logo.svg | ||
| The link to Blockscout release notes in the footer. | https: //github.com/poanetwork/ blockscout/releases/ tag/${BLOCKSCOUT_VERSION} | v1.3.5+ | |
| Added to the footer to signify the current BlockScout version. | (empty) | v1.3.4+ | |
| Link in Chat menu item in the footer. Implemented in #5719. | https://discord.gg/3CtNAqVMRV | v4.1.6+ | |
| Enable forum menu item in the footer. | false | v5.1.3+ | |
| Link in Forum menu item in the footer. Implemented in #5719 | https://forum.poa.network/c/blockscout | v4.1.6+ | |
| Enable Telegram menu item in the footer. Implemented in #7345. | false | v5.1.4+ | |
| Link in Telegram menu item in the footer. Implemented in #7345. | v5.1.4+ | ||
| Github repository. Implemented in #5719. | https://github.com/blockscout/blockscout | v4.1.6+ | |
| true/false. If true, links to other explorers are added in the footer. | (empty) | v5.1.3+ | |
| The list of alternative explorers. | (empty) | v5.1.3+ |
Contract management
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| "homestead,tangerineWhistle,spuriousDragon,byzantium,constantinople,petersburg,istanbul,berlin,london,paris,shanghai,default" | v5.2.0+ | ||
| the comma-separated list of allowed EVM versions for Vyper contract verification. This var was introduced in #7614. | "byzantium,constantinople,petersburg,istanbul,berlin,paris,shanghai,default" | v5.2.0+ | |
| Max amount of libraries to consider in smart-contract verification from flat/multi-part file(s). Implemented in #6204. | (empty) | v5.0.0+ | |
| Hide long contract method data. For more details: #4667 | 2040 | v4.0.0+ | |
| If | (empty) | v5.1.2+ | |
| If | true | v6.1.0+ | |
| URL of AirTable to store audit reports from users. Implemented in #9120 | (empty) | v6.1.0+ | |
| Access token for | (empty) | v6.1.0+ |
Bridged tokens
Variable | Required | Description | Default | Version | Need recompile |
---|---|---|---|---|---|
| Variable to enabled bridged tokens functionality. Introduced in #9169 | (empty) | v6.1.0+ | ✅ | |
| OMNI bridge mediator for ETH tokens. Introduced in #9169 | (empty) | v6.1.0+ | ||
| OMNI bridge mediator for BSC tokens. Introduced in #9169 | (empty) | v6.1.0+ | ||
| OMNI bridge mediator for POA tokens. Introduced in #9169 | (empty) | v6.1.0+ | ||
| AMB bridge mediator. Introduced in #9169 | (empty) | v6.1.0+ | ||
| Ethereum mainnet JSON RPC. Introduced in #9169 | (empty) | v6.1.0+ |
Misc UI management
Variable | Required | Description | Default | Version | Need recompile |
---|---|---|---|---|---|
| Configures market cap percentage column on the top accounts page. |
| v2.1.1+ | ||
| Disables/enables announcement at the top of the explorer. | false | v3.6.0+ | ||
| Message text of the announcement at the top of the explorer. | (empty) | v3.6.0+ | ||
| Hides miner/validator/sequencer on block page and tiles if the value is `true` Implemented in #4611 | (empty) | v4.0.0+ | ||
| Displays token icons from TrustWallet assets repository if | (empty) | v4.0.0+ | ||
| Include or exclude non-consensus blocks in avg block time calculation. Exclude if | false | v2.0.1+ | ||
| Number of days to consider at coin balance history chart. | 10 | v3.1.3+ | ||
| if | (empty) | v4.1.2+ | ✅ | |
| If | (empty) | v5.1.0+ | ||
| If | (empty) | v5.1.0+ | ||
| If | (empty) | v5.1.0+ |
CSV export
reCAPTCHA v2 and v3 keys for CSV export page. Do not use both v2/v3 keys. Only one version of reCAPTCHA should be used.
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Google reCAPTCHA v2 secret key. Used by advanced CSV export. Implemented in #4747 | (empty) | v4.0.0+ | |
| Google reCAPTCHA v2 client key. Used by advanced CSV export. Implemented in #4747 | (empty) | v4.0.0+ | |
| Google reCAPTCHA v3 secret key. Used by advanced CSV export. Implemented in #7273 | (empty) | v5.1.4+ | |
| Google reCAPTCHA v3 client key. Used by advanced CSV export. Implemented in #7273 | (empty) | v5.1.4+ | |
| Disable reCAPTCHA. Implemented in #7416 | false | v5.1.5+ |
API rate limit management
Variable | Required | Description | Default | Version | Need recompile |
---|---|---|---|---|---|
| A global API rate limit: number or requests per second for all users. Implemented in #5030 | 50 req/sec | v4.1.1+ | ||
| A dedicated API rate limit per key for every type of API key (static or generated from Account module). Implemented in #5080 | 50 req/sec | v4.1.1+ | ||
| Comma-separated whitelisted IPs list with dedicated rate limit. Implemented in #5090 | (empty) | v4.1.1+ | ||
| Static API key with dedicated API rate limit. Implemented in #5080 | (empty) | v4.1.1+ | ||
| If | (empty) | v5.1.0+ | ||
| false | v5.1.3+ | |||
| A dedicated API rate limit for whitelisted IPs. Implemented in #5090 | 50 req/sec | v5.1.3+ | ||
| Global rate limit for an IP address for API v2 requests sent from UI. #7148 | 3000 | v5.1.3+ | ||
| Redis DB URL for Hammer rate limit library. Implemented in #7148 | (empty) | v5.1.3+ | ✅ | |
| Rate limit after submitting correct CAPTCHA. Implemented in #7148 | 5 | v5.1.3+ | ||
| Time interval of rate limit. Time format. Implemented in #7148 | 1s | v5.1.3+ | ||
| Time interval of rate limit set by | 5m | v5.1.3+ | ||
| TTL for token issued after submitting correct CAPTCHA for an API v2 requests from UI. In seconds. Implemented in #7148 | 18000 | v5.1.3+ | ||
| Max batch size for Eth JSON RPC requests. Implemented in #9409 | 5 | v6.3.0+ |
Specific smart-contracts
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| This environment variable is specifically used by POA Network to obtain Validators information to display in the UI. | (empty) | all | |
| This environment variable is specifically used by POA Network to obtain the list of current validators. | (empty) | all | |
| This environment variable is specifically used by POA Network to set KeysManager proxy contract in order to obtain payout key by mining key. This needs to identify distributed reward to the validator. | (empty) | v3.1.2+ | |
| Emission rewards contract address. This env var is used only if |
| v2.0.4+ | |
| Token bridge proxy contract. For `TokenBridge` supply module. |
| v1.3.2+ |
Account-related ENV variables
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Turn on/off account functionality. If value is | (empty) | 5.0.0 | |
| Account DB connection string | value from | 5.0.0 | |
| Account Redis connection string (for session storing configuration) | (empty) | 5.0.0 | |
| Account DB | 50 | 5.0.0 | |
| Domain for Ueberauth Auth0 | (empty) | 5.0.0 | |
| Auth0 client ID Ueberauth Auth0 | (empty) | 5.0.0 | |
| Auth0 client secret Ueberauth Auth0 | (empty) | 5.0.0 | |
| Airtable URL for public tag requests functionality | (empty) | 5.0.0 | |
| Airtable API key for public tag requests functionality | (empty) | 5.0.0 | |
| Sendgrid API key for watchlist notifications functionality | (empty) | 5.0.0 | |
| Sendgrid sender email for watchlist notifications functionality | (empty) | 5.0.0 | |
| Sendgrid email template for watchlist notifications functionality | (empty) | 5.0.0 | |
| Account DB encryption key. Instruction how to generate | (empty) | 5.0.0 | |
| Time before resending confirmation email. Implemented in #7298. Time format |
| v5.1.5+ | |
| Limit for address & transaction tags. Implemented in #8528. | 2000 | v5.3.1+ | |
| Limit for watch list addresses. Implemented in #8528. | 15 | v5.3.1+ | |
| Per account limit for watch list notifications sent for the last 30 days. Implemented in #8966. | 1000 | v5.3.3+ |
Integrations
Smart-contract verifier / Eth Bytecode DB
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| If | (empty) | v5.1.3+ | |
| URL of Rust smart-contract verifier. Implemented in #5860 | (empty) | v5.1.3+ | |
| Minimal time after unsuccessful check of smart contract's sources in Eth Bytecode DB. Implemented in #7187. Time format | 10m | v5.1.3+ | |
| Type of smart contract microservice could be either |
| v5.1.3+ | |
| Maximum amount of concurrent requests for fetching smart contract's sources in Eth Bytecode DB. Implemented in #8472 | 10 | v5.3.0+ | |
| API key for verification that metadata sent to verifier microservice from a trusted source. Implemented in #8750 | (empty) | v5.3.2+ |
Sol2Uml
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| If | (empty) | v5.1.3+ | |
| URL of Rust visualizer. Implemented in #6401 | (empty) | v5.1.3+ |
Sig-provider
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| If | (empty) | v5.1.3+ | |
| URL of Rust sig-provider service. Implemented in #6541 | (empty) | v5.1.3+ |
Blockscout ENS
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| If | (empty) | v5.4.0+ | |
| URL of Blockscout ENS service. Implemented in #8972 | (empty) | v5.4.0+ |
Blockscout Account Abstraction
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| If | (empty) | v6.1.0+ | |
| URL of Blockscout ENS service. Implemented in #9145 | (empty) | v6.1.0+ |
Tx Interpreter (Summary) Service
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| If | (empty) | v5.4.0+ | |
| URL of Tx Interpreter Service. Implemented in #8957 | (empty) | v5.4.0+ |
Sourcify
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Enables or disables verification of contracts through Sourcify. | false | v5.1.3+ | |
| URL to Sourcify backend. | v3.7.0+ | ||
| URL to Sourcify repository with fully verified contracts. | v3.7.0+ |
Tenderly
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| if | (empty) | v4.0.0+ | |
| Chain path to the transaction in Tenderly. For instance, for transactions in xDai, Tenderly link looks like this https://dashboard.tenderly.co/tx/xdai/0x..., then | (empty) | v4.0.0+ |
Datadog
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Host configuration setting for Datadog integration. | (empty) | all | |
| Port configuration setting for Datadog integration. | (empty} | all |
Spandex
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Spandex and Datadog configuration setting. | (empty) | all | |
| Spandex and Datadog configuration setting. | (empty) | all |
Analytics
Variable | Required | Description | Default | Version | Need recompile |
---|---|---|---|---|---|
| Mixpanel project token. | (empty) | v5.0.0+ | ✅ | |
| Url to use Mixpanel with proxy (Collection via Proxy). | (empty) | v5.0.0+ | ✅ | |
| Amplitude API key. | (empty) | v5.0.0+ | ✅ | |
| Url to use Amplitude with proxy (Use Domain Proxy to Relay Events). | (empty) | v5.0.0+ | ✅ |
Solidityscan
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Solidityscan Internal chain id in Solidityscan. It may not match with actual chain ID. Implemented in #8908 | (empty) | v5.3.3+ | |
| Solidityscan API token for usage of Solidityscan API. | (empty) | v5.3.3+ |
Noves.fi
Variable | Required | Description | Default | Version |
---|---|---|---|---|
| Noves.fi API base URL. Implemented in #9056. | https://blockscout.noves.fi | v6.1.0+ | |
| Noves.fi API chain name. Implemented in #9056. | (empty) | v6.1.0+ | |
| Noves.fi API API token for usage of Noves.fi API. Implemented in #9056. API. | (empty) | v6.1.0+ |
Last updated