☑️ENV Variables

The following are backend variables only.

Frontend ENVs are available here.

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:

$ export ETHEREUM_JSONRPC_VARIANT=nethermind
$ export COIN=POA
$ export NETWORK=POA

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

General

VariableRequiredDescriptionDefaultVersionNeed recompile

DATABASE_URL

Variable to define the Postgres Database endpoint.

(empty)

all

ETHEREUM_JSONRPC_VARIANT

Tells the application which RPC Client the node is using (i.e. erigon, geth, nethermind, besu, filecoin, or ganache) (See Client Settings for more info)

ganache

all

ETHEREUM_JSONRPC_HTTP_URL

The RPC endpoint used to fetch blocks, transactions, receipts, tokens.

localhost:8545

all

DATABASE_READ_ONLY_API_URL

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

DATABASE_QUEUE_TARGET

Management of DB queue target. Implemented in #8991.

50ms

v5.4.0+

ETHEREUM_JSONRPC_TRACE_URL

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

ETHEREUM_JSONRPC_WS_URL

The WebSockets RPC endpoint used to subscribe to the newHeads subscription alerting the indexer to fetch new blocks.

ws://localhost:8546

all

ETHEREUM_JSONRPC_TRANSPORT

Specifies the transport for Blockscout to connect to the Ethereum Node. Available transports are http and ipc. If ipc is selected, also set IPC_PATH variable.

http

v3.1.0+

ETHEREUM_JSONRPC_HTTP_INSECURE

If true is set, allows insecure HTTP connections to the archive node. For instance, it allows to bypass expired SSL certificate at the archive node endpoint. Implemented in #6573

(empty)

v5.0.0+

ETHEREUM_JSONRPC_HTTP_TIMEOUT

Timeout for ethereum json rpc http requests in seconds. Implemented in #7089

60

v5.1.2+

ETHEREUM_JSONRPC_USER

User in basic auth for JSON RPC endpoint. Implemented in #6897

(empty)

v5.1.2+

ETHEREUM_JSONRPC_PASSWORD

Password in basic auth for JSON RPC endpoint. Implemented in #6897

(empty)

v5.1.2+

ETHEREUM_JSONRPC_HTTP_HEADERS

Custom headers for JSON RPC endpoint in form of json object, example: {"x-api-key": "nbvkhadvnbkdfav", "x-id": "ndjkfvndfkjv"}. Implemented in #7898

(empty)

v5.2.1+

ETHEREUM_JSONRPC_FALLBACK_HTTP_URL

Fallback JSON RPC HTTP url. Implemented in #7246

(empty)

v5.1.4+

ETHEREUM_JSONRPC_FALLBACK_TRACE_URL

Fallback JSON RPC trace url. Implemented in #7246

(empty)

v5.1.4+

ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URL

Fallback JSON RPC eth_call url. Implemented in #9511

(empty)

v6.3.0+

ETHEREUM_JSONRPC_WAIT_PER_TIMEOUT

Wait time for each recent timeout from node. Implemented in #8292

20s

v5.2.3+

ETHEREUM_JSONRPC_ETH_CALL_URL

JSON RPC url for eth_call method. Implemented in #9112

(empty)

v6.0.0+

NETWORK

Environment variable for the main EVM network such as Ethereum or POA.

POA

all

SUBNETWORK

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

IPC_PATH

Path to the IPC file of the running node if IPC transport is chosen.

(empty)

v2.1.1+

NETWORK_PATH

Used to set a network path other than what is displayed in the root directory. An example would be to add /eth/mainnet/ to the root directory.

/

all

BLOCKSCOUT_HOST

Host for API endpoint examples.

localhost

v2.1.0+

BLOCKSCOUT_PROTOCOL

Url scheme for blockscout.

in prod env https is used, in dev env http is used

v2.1.0+

SECRET_KEY_BASE

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

CHECK_ORIGIN

Used to check the origin of requests when the origin header is present. It defaults to false. In case of true, it will check against the host value.

false

all

PORT

Default port the application runs on is 4000.

4000

all

COIN

The coin here is checked via the CoinGecko API to obtain USD prices on graphs and other areas of the UI.

POA

all

COIN_NAME

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+

EMISSION_FORMAT

Should be set to POA if you have block emission identical to POA Network. This env var is used only if CHAIN_SPEC_PATH is set.

DEFAULT

v2.0.4+

CHAIN_SPEC_PATH

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+

SUPPLY_MODULE

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 RSK

(empty)

all

POOL_SIZE

Variable to define the number of database connections allowed excluding read-only API endpoints requests.

50

all

POOL_SIZE_API

Variable to define the number of database connections allowed for read-only API endpoints requests.

50

v4.1.0+

ECTO_USE_SSL

Production environment variable to use SSL on Ecto queries.

true

all

HEART_BEAT_TIMEOUT

Production environment variable to restart the application in the event of a crash.

30

all

HEART_COMMAND

Production environment variable to restart the application in the event of a crash.

(empty)

all

ELIXIR_VERSION

Elixir version to install on the node before Blockscout deploy. It is used in bash script in Terraform / Ansible deployment script

(empty)

all

GRAPHIQL_TRANSACTION

Default transaction hash in a sample query to GraphiQL.

(empty)

v1.2.0+

DISABLE_WEBAPP

If true, endpoints to webapp are hidden (compile-time). Also, enabling it makes notifications go through db_notify

false

v2.0.3+

API_V1_READ_METHODS_DISABLED

If true, read-only endpoints to API v1 are hidden (compile-time).

false

v5.1.5+

API_V1_WRITE_METHODS_DISABLED

If true, write endpoints to API v1 are hidden (compile-time).

false

v5.1.5+

WEBAPP_URL

Link to web application instance, e.g. protocol://host/path

(empty)

v2.0.3+

API_URL

Link to API instance, e.g. protocol://host/path

(empty)

v2.0.3+

API_V2_ENABLED

Enable API V2. Implemented in #6361 (v5.0.0+), default true since #8802

true

v5.3.2+

API_SENSITIVE_ENDPOINTS_KEY

API key to protect some sensitive endpoints. Implemented in #7355

(empty)

v5.1.5+

CHECKSUM_ADDRESS_HASHES

If set to true, redirects to checksummed version of address hashes.

true

v3.1.0+

CHECKSUM_FUNCTION

Defines checksum address function. 2 available values: rsk, eth

eth

v2.0.1+

RESTRICTED_LIST

A comma-separated list of addresses to enable restricted access to them.

(empty)

v3.3.3+

RESTRICTED_LIST_KEY

A key to access addresses listed inRESTRICTED_LIST variable. Can be passed via query param to the page's URL: ?key=...

(empty)

v3.3.3+

CHAIN_TYPE

Specifies the model of data, enables fetchers, specific to the chain. Available values are ethereum, polygon_edge, polygon_zkevm, rsk, shibarium, stability, suave, zetachain, filecoin, default.

default

v5.3.0+

CHAIN_ID

Chain ID of the network. For instance, 100 in the case of xDai chain.

(empty)

v3.7.0+

JSON_RPC

JSON RPC endpoint of the chain for the WalletConnect integration. Implemented in #4931

(empty)

v4.1.0+

HEALTHY_BLOCKS_PERIOD

New blocks indexed max delay in /health API endpoint. Time format. Implemented in #2294

5 m

v2.0.2+

NEW_TAGS

Add public tag labels. More info in #6316

(empty)

v5.0.0+

CUSTOM_CONTRACT_ADDRESSES_${tag_name}

Specify addresses for some label. More info in #6316

(empty)

v5.0.0+

SESSION_COOKIE_DOMAIN

Value of this env will be added to domain of session cookie. Implemented in #6544

(empty)

v5.0.0+

DECODE_NOT_A_CONTRACT_CALLS

Allows to decode contract calls directed to addresses which are not contracts. Implemented in #6541

false

v5.1.0+

EIP_1559_ELASTICITY_MULTIPLIER

EIP-1559 elasticity multiplier. Implemented in #7253

2

v5.1.3+

EIP_1559_BASE_FEE_MAX_CHANGE_DENOMINATOR

EIP-1559 base fee max change denominator. Implemented in #9202

8

v6.2.0+

TOKEN_INSTANCE_OWNER_MIGRATION_CONCURRENCY

Concurrency of new fields backfiller implemented in #8386

5

v5.3.0+

TOKEN_INSTANCE_OWNER_MIGRATION_BATCH_SIZE

Batch size of new fields backfiller implemented in #8386

50

v5.3.0+

TOKEN_INSTANCE_OWNER_MIGRATION_ENABLED

Enable of backfiller from #8386 implemented in #8752

false

v5.3.2+

TOKEN_ID_MIGRATION_FIRST_BLOCK

Bottom block for token id migration. Implemented in #6391

0

v5.0.0+

TOKEN_ID_MIGRATION_CONCURRENCY

Number of workers performing the token id migration. Implemented in #6391

1

v5.0.0+

TOKEN_ID_MIGRATION_BATCH_SIZE

Interval of token transfer block numbers processed by a token id migration worker at a time. Implemented in #6391

500

v5.0.0+

ADDRESSES_TABS_COUNTERS_TTL

TTL for cached tabs counters (works only for counters which are < 51, if counter >= 51, then ttl == :infinity). Implemented in #8512

10m

v5.3.0+

Indexer management

VariableRequiredDescriptionDefaultVersion

BLOCK_TRANSFORMER

Transformer for blocks: base or clique.

base

v1.3.4+

DISABLE_INDEXER

If true, indexer application doesn't run.

false

v2.0.3+

INDEXER_HIDE_INDEXING_PROGRESS_ALERT

If true, indexer progress alert will be disabled even if initial catchup indexing is still in place. Implemented in #7360.

false

v5.1.5+

INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER

If true, pending transactions fetcher is disabled.

false

v4.1.2+

INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER

If true, internal transactions fetcher is disabled.

false

v4.1.2+

INDEXER_DISABLE_BLOCK_REWARD_FETCHER

if true, block rewards fetcher is disabled.

false

v4.1.3+

INDEXER_DISABLE_ADDRESS_COIN_BALANCE_FETCHER

If true, coin balances fetcher is disabled.

false

v4.1.3+

INDEXER_DISABLE_CATALOGED_TOKEN_UPDATER_FETCHER

If true, cataloged tokens metadata fetcher is disabled.

false

v4.1.3+

INDEXER_MEMORY_LIMIT

Memory soft limit for the indexer.

1Gb

v4.1.3+

INDEXER_EMPTY_BLOCKS_SANITIZER_BATCH_SIZE

Batch size for empty block sanitizer (re-fetcher).

100

v4.1.3+

INDEXER_CATCHUP_BLOCKS_BATCH_SIZE

Batch size for blocks catchup fetcher. Implemented in #6196.

10

v5.0.0+

INDEXER_CATCHUP_BLOCKS_CONCURRENCY

Concurrency for blocks catchup fetcher. Implemented in #6196.

10

v5.0.0+

INDEXER_DISABLE_EMPTY_BLOCKS_SANITIZER

Empty blocks sanitizer is disabled if true

false

v5.1.2+

DISABLE_REALTIME_INDEXER

If true, realtime fetcher doesn't run

false

v4.1.6+

FIRST_BLOCK

The block number, where import of blocks by catchup fetcher begins from.

0

v1.3.8+

LAST_BLOCK

The block number, where import of blocks by catchup fetcher stops.

(empty)

v2.0.3+

TRACE_FIRST_BLOCK

The block number, where indexing of internal transactions begins from.

0

v4.1.0+

TRACE_LAST_BLOCK

The block number, where indexing of internal transactions stops.

(empty)

v4.1.0+

BLOCK_RANGES

Block ranges to import by catchup fetcher. Example: BLOCK_RANGES="1..3,123..500,30..50,500..latest". Implemented in #5783

v4.1.7+

FETCH_REWARDS_WAY

Tells the application how to calculate block rewards, by fetching via json_rpc (trace_block) or manual by block params (manual).

trace_block

v4.1.4+

IPFS_GATEWAY_URL

IPFS gateway url for fetching token instances metadata from IPFS including token instance icon.

https://ipfs.io/ipfs

v5.3.0+

ETHEREUM_JSONRPC_DEBUG_TRACE_TRANSACTION_TIMEOUT

Timeout for debug_traceTransaction/debug_traceBlockByNumber JSON RPC method requests in case of geth archive node. Supported time formats: https://pkg.go.dev/time#ParseDuration. Introduced in #5505

5s

v4.1.3+

ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES

If true, all the requests with the method eth_getBalance with any block as parameter but latest are ignored. Implemented in #6001

false

v5.0.0+

ETHEREUM_JSONRPC_PENDING_TRANSACTIONS_TYPE

Defines which method will be used for fetching pending transactions: default - default method for fetching internal transactions for current ETHEREUM_JSONRPC_VARIANT, geth - txpool_content method will be used, parity - parity_pendingTransactions will be used. Implemented in #6001

default

v5.0.0+

INDEXER_INTERNAL_TRANSACTIONS_BATCH_SIZE

Batch size for internal transactions fetcher. Implemented in #6450.

10

v5.0.0+

INDEXER_INTERNAL_TRANSACTIONS_CONCURRENCY

Concurrency for internal transactions fetcher. Implemented in #6450.

4

v5.0.0+

INDEXER_INTERNAL_TRANSACTIONS_INDEXING_FINISHED_THRESHOLD

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+

INDEXER_BLOCK_REWARD_BATCH_SIZE

Batch size for block reward fetcher. Implemented in #6952.

10

v5.1.2+

INDEXER_BLOCK_REWARD_CONCURRENCY

Concurrency for block reward fetcher. Implemented in #6952.

4

v5.1.2+

INDEXER_RECEIPTS_BATCH_SIZE

Batch size for transaction receipts fetcher. Implemented in #6454.

250

v5.0.0+

INDEXER_RECEIPTS_CONCURRENCY

Concurrency for transaction receipts fetcher. Implemented in #6454.

10

v5.0.0+

INDEXER_COIN_BALANCES_BATCH_SIZE

Batch size for coin balances fetcher. Implemented in #6454.

100

v5.0.0+

INDEXER_COIN_BALANCES_CONCURRENCY

Concurrency for coin balances fetcher. Implemented in #6454.

4

v5.0.0+

INDEXER_TOKEN_CONCURRENCY

Concurrency for token fetcher. Implemented in #8167.

10

v5.2.2

INDEXER_TOKEN_BALANCES_BATCH_SIZE

Batch size for token balances fetcher. Implemented in #7439.

100

v5.1.5+

INDEXER_TOKEN_BALANCES_CONCURRENCY

Concurrency for token balances fetcher. Implemented in #8167.

10

v5.2.2

INDEXER_TX_ACTIONS_ENABLE

If true, transaction action indexer is active. Implemented in #6582.

false

v5.1.0+

INDEXER_TX_ACTIONS_MAX_TOKEN_CACHE_SIZE

Maximum number of items in an internal cache of tx actions indexing process (to limit memory consumption). Implemented in #6582.

100000

v5.1.0+

INDEXER_TX_ACTIONS_REINDEX_FIRST_BLOCK

The first block of a block range for historical indexing or reindexing of tx actions. Implemented in #6582.

(empty)

v5.1.0+

INDEXER_TX_ACTIONS_REINDEX_LAST_BLOCK

The last block of a block range for historical indexing or reindexing of tx actions. Implemented in #6582.

(empty)

v5.1.0+

INDEXER_TX_ACTIONS_REINDEX_PROTOCOLS

Comma-separated names of protocols which should be indexed or reindexed on historical blocks defined by the range. Example: uniswap_v3,zkbob - only these protocols will be indexed or reindexed for the defined block range. If the value is empty string (or not defined), all supported protocols will be indexed/reindexed. This option is not applicable to realtime and catchup fetchers (it always indexes all supported protocols). Implemented in #6582.

(empty)

v5.1.0+

INDEXER_TX_ACTIONS_AAVE_V3_POOL_CONTRACT

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+

INDEXER_TX_ACTIONS_UNISWAP_V3_FACTORY_CONTRACT

UniswapV3Factory contract address. Implemented in #7312.

0x1F98431c8aD98523631AE4a59f267346ea31F984

v5.1.4+

INDEXER_TX_ACTIONS_UNISWAP_V3_NFT_POSITION_MANAGER_CONTRACT

NonfungiblePositionManager contract address for Uniswap v3. Implemented in #7312.

0xC36442b4a4522E871399CD717aBDD847Ab11FE88

v5.1.4+

INDEXER_CATCHUP_MISSING_RANGES_BATCH_SIZE

Batch size for missing ranges collector. Implemented in #6583.

100000

v5.0.0+

MIN_MISSING_BLOCK_NUMBER_BATCH_SIZE

Batch size for min missing block number updater. Implemented in #6583.

100000

v5.0.0+

INDEXER_INTERNAL_TRANSACTIONS_TRACER_TYPE

Tracer type for debug_traceTransaction/debug_traceBlockByNumber requests for geth-like nodes. Possible values are: js to use custom Blockscout js tracer, call_tracer to use built-in callTracer geth tracer, opcode to use built-in Struct/opcode logger geth tracer, polygon_edge to work with Polygon edge nodes. Implemented in #6721, #7513

call_tracer

v5.1.0+

INDEXER_TOKEN_INSTANCE_RETRY_REFETCH_INTERVAL

Interval between attempts to fetch token instance metadata. Time format. Implemented in #7286.

24h

v5.1.4+

INDEXER_TOKEN_INSTANCE_RETRY_CONCURRENCY

Concurrency for retry token instance fetcher. Implemented in #7286.

10

v5.1.4+

INDEXER_TOKEN_INSTANCE_REALTIME_CONCURRENCY

Concurrency for realtime token instance fetcher. Implemented in #7286.

10

v5.1.4+

INDEXER_TOKEN_INSTANCE_SANITIZE_CONCURRENCY

Concurrency for sanitize token instance fetcher. Implemented in #7286.

10

v5.1.4+

INDEXER_DISABLE_TOKEN_INSTANCE_RETRY_FETCHER

If true, retry token instance fetcher doesn't run

false

v5.1.4+

INDEXER_DISABLE_TOKEN_INSTANCE_REALTIME_FETCHER

If true, realtime token instance fetcher doesn't run

false

v5.1.4+

INDEXER_DISABLE_TOKEN_INSTANCE_SANITIZE_FETCHER

If true, sanitize token instance fetcher doesn't run

false

v5.1.4+

INDEXER_TOKEN_INSTANCE_USE_BASE_URI_RETRY

If true, and request to tokenURI(tokenId) failed with VM execution error, Blockscout will make request to baseURI and try to request metadata from baseURI + tokenId

false

v6.2.0+

INDEXER_REALTIME_FETCHER_MAX_GAP

Max gap between consecutive latest blocks that will be filled by realtime fetcher. Implemented in #7393

1000

v5.1.5+

INDEXER_DISABLE_WITHDRAWALS_FETCHER

If true, withdrawals fetcher is disabled. Implemented in #6694.

true

v5.1.5+

WITHDRAWALS_FIRST_BLOCK

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+

INDEXER_CATCHUP_BLOCK_INTERVAL

Interval between blocks catchup fetcher tasks. Implemented in #7489.

5s

v5.1.5+

INDEXER_FETCHER_INIT_QUERY_LIMIT

Limit for all fetchers init queries. Implemented in #7697.

100

v5.2.0+

INDEXER_TOKEN_INSTANCE_RETRY_BATCH_SIZE

Batch size for retry token instance fetcher. Implemented in #8313

10

v5.2.3+

INDEXER_TOKEN_INSTANCE_REALTIME_BATCH_SIZE

Batch size for realtime token instance fetcher. Implemented in #8313.

1

v5.2.3+

INDEXER_TOKEN_INSTANCE_SANITIZE_BATCH_SIZE

Batch size for sanitize token instance fetcher. Implemented in #8313.

10

v5.2.3+

INDEXER_TOKEN_BALANCES_FETCHER_INIT_QUERY_LIMIT

Limit for token balance fetcher init queries. Implemented in #8459.

100000

v5.2.3+

INDEXER_COIN_BALANCES_FETCHER_INIT_QUERY_LIMIT

Limit for coin balance fetcher init queries. Implemented in #7996.

2000

v5.3.0+

INDEXER_DISABLE_TOKEN_INSTANCE_LEGACY_SANITIZE_FETCHER

If true, legacy sanitize token instance fetcher doesn't run. Appeared in #8386

true

v5.3.0+

INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_CONCURRENCY

Concurrency for legacy sanitize token instance fetcher doesn't run. Appeared in #8386

2

v5.4.0+

INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_BATCH_SIZE

Batch size for legacy sanitize token instance fetcher doesn't run. Appeared in #8386

10

v5.3.0+

INDEXER_DISABLE_TOKEN_INSTANCE_ERC_1155_SANITIZE_FETCHER

If true, erc-1155-sanitize token instance fetcher doesn't run. Implemented in #9226.

false

v6.2.0+

INDEXER_DISABLE_TOKEN_INSTANCE_ERC_721_SANITIZE_FETCHER

If true, erc-721-sanitize token instance fetcher doesn't run. Implemented in #9226.

false

v6.2.0+

INDEXER_TOKEN_INSTANCE_ERC_1155_SANITIZE_CONCURRENCY

Concurrency for erc-1155-sanitize token instance fetcher. Implemented in #9226.

2

v6.2.0+

INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_CONCURRENCY

Concurrency for erc-721-sanitize token instance fetcher. Implemented in #9226.

2

v6.2.0+

INDEXER_TOKEN_INSTANCE_ERC_1155_SANITIZE_BATCH_SIZE

Batch size for erc-1155-sanitize token instance fetcher. Implemented in #9226.

10

v6.2.0+

INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_BATCH_SIZE

Batch size for erc-721-sanitize token instance fetcher. Implemented in #9226.

10

v6.2.0+

INDEXER_EMPTY_BLOCKS_SANITIZER_INTERVAL

Interval for empty block sanitizer. Implemented in #8658

5m

v5.3.0+

ETHEREUM_JSONRPC_ARCHIVE_BALANCES_WINDOW

Max block number gap from latest for which balances requests can be processed when ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES env var is set to true. Implemented in #8673

200

v5.3.1+

DISABLE_CATCHUP_INDEXER

If true, catchup fetcher doesn't run

false

v5.3.2+

TRACE_BLOCK_RANGES

Block ranges for traceable blocks. Example: TRACE_BLOCK_RANGES="1..3,123..500,30..50,500..latest". Implemented in #8960

(empty)

v5.4.0+

ETHEREUM_JSONRPC_GETH_TRACE_BY_BLOCK

Enable tracing by block for geth variant. Implemented in #9072

false

v6.1.0+

Denormalization management

VariableRequiredDescriptionDefaultVersion

DENORMALIZATION_MIGRATION_BATCH_SIZE

Number of transactions to denormalize (add block timestamp and consensus) in the batch.

500

v6.0.0-beta

DENORMALIZATION_MIGRATION_CONCURRENCY

Number of parallel denormalization transaction batches processing.

10

v6.0.0-beta

TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_BATCH_SIZE

Number of token transfers to denormalize (add token_type) in the batch.

100

v6.3.0+

TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_CONCURRENCY

Number of parallel denormalization token transfer batches processing.

1

v6.3.0+

SANITIZE_INCORRECT_NFT_BATCH_SIZE

Number of token transfers to sanitize in the batch.

100

v6.3.0+

SANITIZE_INCORRECT_NFT_CONCURRENCY

Number of parallel sanitizing token transfer batches processing.

1

v6.3.0+

Ethereum Management

VariableRequiredDescriptionDefaultVersion

INDEXER_BEACON_RPC_URL

The Beacon Chain RPC endpoint used to fetch blob sidecars. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is not empty. Implemented in #9168.

http://localhost:5052

v6.2.0+

INDEXER_DISABLE_BEACON_BLOB_FETCHER

If true the fetcher of Beacon data blobs won't be started, new transaction and block fields still will be extracted. Implemented in #9168.

false

v6.2.0+

INDEXER_BEACON_BLOB_FETCHER_SLOT_DURATION

Slot duration in the Beacon Chain in seconds. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is not empty. Implemented in #9168.

12

v6.2.0+

INDEXER_BEACON_BLOB_FETCHER_REFERENCE_SLOT

Any past finalized Beacon Chain slot number. Used as reference for blob inclusion slot calculations. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is not empty. Implemented in #9168.

8000000

v6.2.0+

INDEXER_BEACON_BLOB_FETCHER_REFERENCE_TIMESTAMP

UTC timestamp of the Beacon Chain slot specified in INDEXER_BEACON_BLOB_FETCHER_REFERENCE_SLOT. Used as reference for blob inclusion slot calculations. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is not empty. Implemented in #9168.

1702824023

v6.2.0+

INDEXER_BEACON_BLOB_FETCHER_START_BLOCK

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+

INDEXER_BEACON_BLOB_FETCHER_END_BLOCK

Beacon Chain blob fetcher end block. On start-up, indexer will only look for missed blobs before this block number. If set to 0, then all recent till latest will be traversed. Implemented in #9168.

0

v6.2.0+

Polygon Edge Management

VariableRequiredDescriptionDefaultVersion

INDEXER_POLYGON_EDGE_L1_RPC

The RPC endpoint for L1 used to fetch deposit or withdrawal events. Implemented in #8180.

(empty)

v5.3.0+

INDEXER_POLYGON_EDGE_L1_EXIT_HELPER_CONTRACT

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+

INDEXER_POLYGON_EDGE_L1_WITHDRAWALS_START_BLOCK

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+

INDEXER_POLYGON_EDGE_L1_STATE_SENDER_CONTRACT

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+

INDEXER_POLYGON_EDGE_L1_DEPOSITS_START_BLOCK

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+

INDEXER_POLYGON_EDGE_L2_STATE_SENDER_CONTRACT

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+

INDEXER_POLYGON_EDGE_L2_WITHDRAWALS_START_BLOCK

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+

INDEXER_POLYGON_EDGE_L2_STATE_RECEIVER_CONTRACT

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+

INDEXER_POLYGON_EDGE_L2_DEPOSITS_START_BLOCK

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+

INDEXER_POLYGON_EDGE_ETH_GET_LOGS_RANGE_SIZE

Block range size for eth_getLogs request in Polygon Edge indexer modules. Implemented in #8180.

(empty)

v5.3.0+

Rootstock management

VariableRequiredDescriptionDefaultVersion

ROOTSTOCK_REMASC_ADDRESS

The address hash of remasc address on Rootstock chain. Implemented in #8542.

v5.3.0+

ROOTSTOCK_BRIDGE_ADDRESS

The address hash of bridge address on Rootstock chain. Implemented in #8542.

v5.3.0+

INDEXER_DISABLE_ROOTSTOCK_DATA_FETCHER

If true the fethcer of Rootstock specific fields for blocks that are already in the database won't be started, fields from new blocks will be extracted. Implemented in #8742.

v5.3.2+

INDEXER_ROOTSTOCK_DATA_FETCHER_INTERVAL

The interval between fetching the next INDEXER_ROOTSTOCK_DATA_FETCHER_DB_BATCH_SIZE blocks from the database and the node, used to configure the load on the database and JSON-RPC node. Implemented in #8742.

v5.3.2+

INDEXER_ROOTSTOCK_DATA_FETCHER_BATCH_SIZE

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+

INDEXER_ROOTSTOCK_DATA_FETCHER_CONCURRENCY

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+

INDEXER_ROOTSTOCK_DATA_FETCHER_DB_BATCH_SIZE

The number of blocks that are fetched from the database in one database query. Implemented in #8742.

v5.3.2+

Shibarium Management

VariableRequiredDescriptionDefaultVersion

INDEXER_SHIBARIUM_L1_RPC

The RPC endpoint for L1 used to fetch deposit or withdrawal events. Implemented in #8929.

(empty)

v6.1.0+

INDEXER_SHIBARIUM_L1_START_BLOCK

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+

INDEXER_SHIBARIUM_L1_DEPOSIT_MANAGER_CONTRACT

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+

INDEXER_SHIBARIUM_L1_ETHER_PREDICATE_CONTRACT

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+

INDEXER_SHIBARIUM_L1_ERC20_PREDICATE_CONTRACT

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+

INDEXER_SHIBARIUM_L1_ERC721_PREDICATE_CONTRACT

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+

INDEXER_SHIBARIUM_L1_ERC1155_PREDICATE_CONTRACT

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+

INDEXER_SHIBARIUM_L1_WITHDRAW_MANAGER_CONTRACT

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+

INDEXER_SHIBARIUM_L2_START_BLOCK

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+

INDEXER_SHIBARIUM_L2_CHILD_CHAIN_CONTRACT

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+

INDEXER_SHIBARIUM_L2_WETH_CONTRACT

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+

INDEXER_SHIBARIUM_L2_BONE_WITHDRAW_CONTRACT

The address of a contract which emits Withdraw event on L2. Used to fetch BONE token withdrawals. Required for L2 events indexing. Implemented in #8929.

(empty)

v6.1.0+

Polygon zkEVM Rollup management

VariableRequiredDescriptionDefaultVersion

INDEXER_POLYGON_ZKEVM_BATCHES_ENABLED

Enables Polygon zkEVM batches fetcher. Implemented in #7584.

false

v5.3.1+

INDEXER_POLYGON_ZKEVM_BATCHES_CHUNK_SIZE

The number of Polygon zkEVM batches in one chunk when reading them from RPC. Implemented in #7584.

20

v5.3.1+

INDEXER_POLYGON_ZKEVM_BATCHES_RECHECK_INTERVAL

The latest batch rechecking interval, seconds. Implemented in #7584.

60

v5.3.1+

INDEXER_POLYGON_ZKEVM_L1_RPC

The RPC endpoint for L1 used to fetch Deposit or Withdrawal bridge events. Implemented in #9098.

v6.2.0+

INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK

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+

INDEXER_POLYGON_ZKEVM_L1_BRIDGE_CONTRACT

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+

INDEXER_POLYGON_ZKEVM_L1_BRIDGE_NATIVE_SYMBOL

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+

INDEXER_POLYGON_ZKEVM_L1_BRIDGE_NATIVE_DECIMALS

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+

INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK

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+

INDEXER_POLYGON_ZKEVM_L2_BRIDGE_CONTRACT

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.

VariableRequiredDescriptionDefaultVersion

INDEXER_OPTIMISM_L1_RPC

The RPC endpoint for L1 used to fetch transaction batches, output roots, deposits, or withdrawal events. Implemented in #6980.

(empty)

v6.3.0+

INDEXER_OPTIMISM_L1_PORTAL_CONTRACT

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+

INDEXER_OPTIMISM_L1_BATCH_START_BLOCK

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+

INDEXER_OPTIMISM_L1_BATCH_INBOX

The inbox address to index transaction batches on L1. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is not empty. Implemented in #6980.

(empty)

v6.3.0+

INDEXER_OPTIMISM_L1_BATCH_SUBMITTER

The batch submitter address to index transaction batches on L1. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is not empty. Implemented in #6980.

(empty)

v6.3.0+

INDEXER_OPTIMISM_L1_BATCH_BLOCKSCOUT_BLOBS_API_URL

Defines a URL to Blockscout Blobs API to retrieve L1 blobs from that. Example for Sepolia: https://eth-sepolia.blockscout.com/api/v2/blobs. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is not empty. Implemented in #9571.

(empty)

v6.3.0+

INDEXER_OPTIMISM_L1_BATCH_BLOCKS_CHUNK_SIZE

Blocks chunk size to send batch RPC requests. Implemented in #6980.

4

v6.3.0+

INDEXER_OPTIMISM_L2_BATCH_GENESIS_BLOCK_NUMBER

L2 genesis block number for Optimism chain. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is defined. The block number can be found at superchain registry. Example. Implemented in #9260.

(empty)

v6.3.0+

INDEXER_OPTIMISM_L1_OUTPUT_ROOTS_START_BLOCK

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+

INDEXER_OPTIMISM_L1_OUTPUT_ORACLE_CONTRACT

The address of OutputOracle contract on L1 used to fetch output roots. Required for output roots indexing when INDEXER_OPTIMISM_L1_OUTPUT_ROOTS_START_BLOCK is not empty. Implemented in #6980.

(empty)

v6.3.0+

INDEXER_OPTIMISM_L1_DEPOSITS_START_BLOCK

The number of the L1 block from which deposits will be fetched. Implemented in #6993.

(empty)

v6.3.0+

INDEXER_OPTIMISM_L1_DEPOSITS_BATCH_SIZE

Number of blocks in a single eth_getLogs request. Implemented in #6993.

500

v6.3.0+

INDEXER_OPTIMISM_L1_WITHDRAWALS_START_BLOCK

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+

INDEXER_OPTIMISM_L2_WITHDRAWALS_START_BLOCK

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+

INDEXER_OPTIMISM_L2_MESSAGE_PASSER_CONTRACT

The address of L2ToL1MessagePasser contract to index withdrawals. Required if INDEXER_OPTIMISM_L2_WITHDRAWALS_START_BLOCK is not empty. Implemented in #6980.

(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.

VariableRequiredDescriptionDefaultVersion

INDEXER_ZKSYNC_BATCHES_ENABLED

Enables Polygon zkEVM batches fetcher. Implemented in #9080.

false

production-zksync

INDEXER_ZKSYNC_BATCHES_CHUNK_SIZE

The number of RPC calls in one request when reading data from RPC. Implemented in #9080.

50

production-zksync

INDEXER_ZKSYNC_NEW_BATCHES_MAX_RANGE

Maximum amount of batches requested if Blockscout does not have all batches synced. Implemented in #9080.

50

production-zksync

INDEXER_ZKSYNC_NEW_BATCHES_RECHECK_INTERVAL

The latest batch rechecking interval, seconds. Implemented in #9080.

60

production-zksync

INDEXER_ZKSYNC_L1_RPC

The RPC endpoint for L1 used to fetch status of batches. Implemented in #9080.

(empty)

production-zksync

INDEXER_ZKSYNC_BATCHES_STATUS_RECHECK_INTERVAL

The batches status rechecking interval, seconds. Implemented in #9080.

60

production-zksync

Exchange rates management

VariableRequiredDescriptionDefaultVersion

DISABLE_EXCHANGE_RATES

Disables or enables fetching of coin price from Coingecko API.

false

v3.1.2+

EXCHANGE_RATES_MARKET_CAP_SOURCE

This environment variable is used to set source for market cap fetching. Available values coin_gecko, coin_market_cap.

coin_gecko

v5.2.3+

EXCHANGE_RATES_TVL_SOURCE

This environment variable is used to set source for TVL fetching. Available value is defillama.

(empty)

v5.3.0+

EXCHANGE_RATES_PRICE_SOURCE

This environment variable is used to set source for price fetching. Available values are also crypto_compare, coin_gecko and coin_market_cap.

crypto_compare

v5.2.3+

EXCHANGE_RATES_COINGECKO_COIN_ID

Explicitly set CoinGecko coin ID.

(empty)

v4.1.4+

EXCHANGE_RATES_COINGECKO_SECONDARY_COIN_ID

Explicitly set CoinGecko coin ID for secondary coin market chart. Implemented in #9483.

(empty)

v6.3.0+

EXCHANGE_RATES_COINGECKO_API_KEY

CoinGecko API key.

(empty)

v4.1.4+

EXCHANGE_RATES_COINMARKETCAP_API_KEY

CoinMarketCap API key. Required, if EXCHANGE_RATES_MARKET_CAP_SOURCE, EXCHANGE_RATES_PRICE_SOURCE is set to coin_market_cap.

(empty)

v4.1.4+

EXCHANGE_RATES_COINMARKETCAP_COIN_ID

CoinMarketCap coin id.

(empty)

v5.2.1+

EXCHANGE_RATES_COINMARKETCAP_SECONDARY_COIN_ID

CoinMarketCap coin id for secondary coin market chart. Implemented in #9483.

(empty)

v6.3.0+

EXCHANGE_RATES_DEFILLAMA_COIN_ID

DefiLlama coin id.

(empty)

v5.3.0+

EXCHANGE_RATES_FETCH_BTC_VALUE

if true explorer application will fetch btc_value for token exchange rates. Implemented in #5671.

(empty)

v4.1.5+

EXCHANGE_RATES_COINGECKO_PLATFORM_ID

CoinGecko platform id for which token prices are fetched, see full list in /asset_platforms endpoint. Implemented in #6925.

ethereum

v5.1.2+

TOKEN_EXCHANGE_RATE_INTERVAL

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+

TOKEN_EXCHANGE_RATE_REFETCH_INTERVAL

Interval between refetching token prices, responsible for the relevance of prices. Time format. Implemented in #6925.

1 hour

v5.1.2+

TOKEN_EXCHANGE_RATE_MAX_BATCH_SIZE

Batch size of a single token price request. Implemented in #6925.

150

v5.1.2+

DISABLE_TOKEN_EXCHANGE_RATE

If true disables fetching of token price. Implemented in #6925.

true

v5.1.2+

EXCHANGE_RATES_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL

CryptoCompare coin symbol for secondary coin market chart. Implemented in #9483.

(empty)

v6.3.0+

Cache management

VariableRequiredDescriptionDefaultVersionNeed recompile

CACHE_TXS_COUNT_PERIOD

Time interval to restart the task, which calculates the total txs count. Time format.

2h

v4.1.3+

CACHE_ADDRESS_SUM_PERIOD

Time to live of addresses sum (except burn address) cache. Time format. Introduced in #2862.

1h

v4.1.3+

CACHE_TOTAL_GAS_USAGE_PERIOD

Interval to restart the task, which calculates the total gas usage. Time format.

2h

v4.1.3+

CACHE_PBO_COUNT_PERIOD

Time interval to restart the task, which calculates the total pending_block_operations count. Time format.

20m

v5.2.0+

CACHE_ADDRESS_TRANSACTIONS_GAS_USAGE_COUNTER_PERIOD

Interval to restart the task, which calculates gas usage at the address. Time format.

30m

v4.1.3+

CACHE_TOKEN_HOLDERS_COUNTER_PERIOD

Interval to restart the task, which calculates holders count of the token. Time format.

1h

v4.1.3+

CACHE_TOKEN_TRANSFERS_COUNTER_PERIOD

Interval to restart the task, which calculates transfers count of the token. Time format.

1h

v4.1.3+

CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVAL

Interval to restart the task, which calculates addresses with balances. Time format.

30m

v4.1.3+

TOKEN_METADATA_UPDATE_INTERVAL

Interval to restart the task which updates token metadata. Time format.

48h

v2.0.1+

CACHE_AVERAGE_BLOCK_PERIOD

Update of average block period cache. Time format.

30m

v4.1.3+

CACHE_MARKET_HISTORY_PERIOD

Update of market history cache. Time format.

6h

v4.1.3+

CACHE_ADDRESS_TRANSACTIONS_COUNTER_PERIOD

Time to live of address' transactions counter. Time format. Introduced in #3330.

1h

v3.4.0+

CACHE_ADDRESS_TOKENS_USD_SUM_PERIOD

Managing of cache invalidation period for the sum of USD value of tokens per tokens' holder address. Time format.

1h

v3.5.0+

CACHE_EXCHANGE_RATES_PERIOD

Value which is to tune the time to live of exchange rates. Time format. Implemented in #5671.

10m

v4.1.5+

TOKEN_BALANCE_ON_DEMAND_FETCHER_THRESHOLD

A threshold to invalidate token balance cache. Time format.

1h

v5.1.2+

COIN_BALANCE_ON_DEMAND_FETCHER_THRESHOLD

A threshold to invalidate coin balance cache. Time format.

1h

v5.1.2+

CACHE_ADDRESS_TOKEN_TRANSFERS_COUNTER_PERIOD

Interval to restart the task, which calculates the number of token transfers at the address. Time format. Implemented in #4699.

1h

v4.0.0+

CACHE_BLOCK_COUNT_PERIOD

Time to live of blocks with consensus count cache. Time format. Introduced in #1876.

2h

v4.1.3+

CACHE_TOTAL_GAS_USAGE_COUNTER_ENABLED

if true, enables cache for total gas usage counter.

false

v5.1.3+

MARKET_HISTORY_FETCH_INTERVAL

Interval to update data for the last day in Market History table. Time format. Introduced in #9197.

1h

v6.1.0+

CACHE_TRANSACTIONS_24H_STATS_PERIOD

Interval to update data for the last 24 hours transactions stats. Time format. Introduced in #9483.

1h

v6.3.0+

CACHE_FRESH_PENDING_TRANSACTIONS_COUNTER_PERIOD

Interval to update count of pending transactions that appeared less than half an hour ago. Time format. Introduced in #9483.

5m

v6.3.0+

CACHE_OPTIMISM_LAST_OUTPUT_ROOT_SIZE_COUNTER_PERIOD

Interval to update data for the last output root size counter. Time format. Introduced in #9532.

5m

v6.3.0+

Gas price oracle management

VariableRequiredDescriptionDefaultVersion

GAS_PRICE_ORACLE_NUM_OF_BLOCKS

Gas price oracle: number of blocks to calculate average gas price from

200

v4.1.4+

GAS_PRICE_ORACLE_SAFELOW_PERCENTILE

Gas price oracle: safelow percentile

35

v4.1.4+

GAS_PRICE_ORACLE_AVERAGE_PERCENTILE

Gas price oracle: average percentile

60

v4.1.4+

GAS_PRICE_ORACLE_FAST_PERCENTILE

Gas price oracle: fast percentile

90

v4.1.4+

GAS_PRICE_ORACLE_CACHE_PERIOD

Gas price oracle: period of gas prices update. Time format.

30s

v4.1.4+

GAS_PRICE_ORACLE_SIMPLE_TRANSACTION_GAS

Gas price oracle: amount of gas for a simple coin transfer. Introduced in #9044.

21000

v6.0.0+

GAS_PRICE_ORACLE_SAFELOW_TIME_COEFFICIENT

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+

GAS_PRICE_ORACLE_AVERAGE_TIME_COEFFICIENT

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+

GAS_PRICE_ORACLE_FAST_TIME_COEFFICIENT

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

VariableRequiredDescriptionDefaultVersion

GAS_PRICE

Gas price in Gwei. If the variable is present, gas price displays on the main page.

(empty)

v3.3.2+

TXS_STATS_ENABLED

Disables or enables txs per day stats gathering.

true

v5.1.3+

SHOW_PRICE_CHART

Disables or enables price and market cap of coin charts on the main page.

false

v3.1.2+

SHOW_PRICE_CHART_LEGEND

Allows to show price and market cap values under the chart even if price chart is not enabled via SHOW_PRICE_CHART env variable.

false

v5.1.4+

SHOW_TXS_CHART

Disables or enables txs count per day chart on the main page.

true

v3.1.2+

TXS_HISTORIAN_INIT_LAG

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+

TXS_STATS_DAYS_TO_COMPILE_AT_INIT

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

VariableRequiredDescriptionDefaultVersion

LOGO

Environment variable for the header logo image location. The logo files names for different chains can be found here.

/images/blockscout_logo.svg

all

SHOW_TESTNET_LABEL

Enables testnet label right after logo in the navigation panel. Implemented in #5732

(empty)

v4.1.6+

TESTNET_LABEL_TEXT

The text inside the test label. Implemented in #5732

Testnet

v4.1.6+

SUPPORTED_CHAINS

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+

APPS_MENU

true/false. If true, the Apps navigation menu item appears.

false

v3.3.1+

APPS

An array of embedded/external apps to display in Apps menu item. This var was introduced in this PR #3184 and looks like an array of JSON objects. An example of embedded link is described here #

(empty)

v5.0.0+

VariableRequiredDescriptionDefaultVersion

FOOTER_LOGO

Environment variable for the footer logo image location. The logo files names for different chains can be found here.

/images/blockscout_logo.svg

RELEASE_LINK

The link to Blockscout release notes in the footer.

https: //github.com/poanetwork/ blockscout/releases/ tag/${BLOCKSCOUT_VERSION}

v1.3.5+

BLOCKSCOUT_VERSION

Added to the footer to signify the current BlockScout version.

(empty)

v1.3.4+

FOOTER_CHAT_LINK

Link in Chat menu item in the footer. Implemented in #5719.

https://discord.gg/3CtNAqVMRV

v4.1.6+

FOOTER_FORUM_LINK_ENABLED

Enable forum menu item in the footer.

false

v5.1.3+

FOOTER_FORUM_LINK

Link in Forum menu item in the footer. Implemented in #5719

https://forum.poa.network/c/blockscout

v4.1.6+

FOOTER_TELEGRAM_LINK_ENABLED

Enable Telegram menu item in the footer. Implemented in #7345.

false

v5.1.4+

FOOTER_TELEGRAM_LINK

Link in Telegram menu item in the footer. Implemented in #7345.

v5.1.4+

FOOTER_GITHUB_LINK

Github repository. Implemented in #5719.

https://github.com/blockscout/blockscout

v4.1.6+

FOOTER_LINK_TO_OTHER_EXPLORERS

true/false. If true, links to other explorers are added in the footer.

(empty)

v5.1.3+

FOOTER_OTHER_EXPLORERS

The list of alternative explorers.

(empty)

v5.1.3+

Contract management

VariableRequiredDescriptionDefaultVersion

CONTRACT_VERIFICATION_ALLOWED_SOLIDITY_EVM_VERSIONS

the comma-separated list of allowed EVM versions for Solidity contract verification. This var was introduced in #1964, updated in #7614.

"homestead,tangerineWhistle,spuriousDragon,byzantium,constantinople,petersburg,istanbul,berlin,london,paris,shanghai,default"

v5.2.0+

CONTRACT_VERIFICATION_ALLOWED_VYPER_EVM_VERSIONS

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+

CONTRACT_VERIFICATION_MAX_LIBRARIES

Max amount of libraries to consider in smart-contract verification from flat/multi-part file(s). Implemented in #6204.

(empty)

v5.0.0+

CONTRACT_MAX_STRING_LENGTH_WITHOUT_TRIMMING

Hide long contract method data. For more details: #4667

2040

v4.0.0+

CONTRACT_DISABLE_INTERACTION

If true, contract interactions via "Write contract" or "Write proxy contract" tabs are disabled. Introduced in #7088.

(empty)

v5.1.2+

CONTRACT_PROXY_IMPLEMENTATION_TTL_VIA_AVG_BLOCK_TIME

If false, proxy contract implementation will be re-fetched immediately once someone opend proxy page bypassing average block time calculation. Implemented in #9155.

true

v6.1.0+

CONTRACT_AUDIT_REPORTS_AIRTABLE_URL

URL of AirTable to store audit reports from users. Implemented in #9120

(empty)

v6.1.0+

CONTRACT_AUDIT_REPORTS_AIRTABLE_API_KEY

Access token for CONTRACT_AUDIT_REPORTS_AIRTABLE_URL. Implemented in #9120

(empty)

v6.1.0+

Bridged tokens

VariableRequiredDescriptionDefaultVersionNeed recompile

BRIDGED_TOKENS_ENABLED

Variable to enabled bridged tokens functionality. Introduced in #9169

(empty)

v6.1.0+

BRIDGED_TOKENS_ETH_OMNI_BRIDGE_MEDIATOR

OMNI bridge mediator for ETH tokens. Introduced in #9169

(empty)

v6.1.0+

BRIDGED_TOKENS_BSC_OMNI_BRIDGE_MEDIATOR

OMNI bridge mediator for BSC tokens. Introduced in #9169

(empty)

v6.1.0+

BRIDGED_TOKENS_POA_OMNI_BRIDGE_MEDIATOR

OMNI bridge mediator for POA tokens. Introduced in #9169

(empty)

v6.1.0+

BRIDGED_TOKENS_AMB_BRIDGE_MEDIATORS

AMB bridge mediator. Introduced in #9169

(empty)

v6.1.0+

BRIDGED_TOKENS_FOREIGN_JSON_RPC

Ethereum mainnet JSON RPC. Introduced in #9169

(empty)

v6.1.0+

Misc UI management

VariableRequiredDescriptionDefaultVersionNeed recompile

SHOW_ADDRESS_MARKETCAP_PERCENTAGE

Configures market cap percentage column on the top accounts page.

true

v2.1.1+

SHOW_MAINTENANCE_ALERT

Disables/enables announcement at the top of the explorer.

false

v3.6.0+

MAINTENANCE_ALERT_MESSAGE

Message text of the announcement at the top of the explorer.

(empty)

v3.6.0+

HIDE_BLOCK_MINER

Hides miner/validator/sequencer on block page and tiles if the value is `true` Implemented in #4611

(empty)

v4.0.0+

DISPLAY_TOKEN_ICONS

Displays token icons from TrustWallet assets repository if true. Implemented in #4596

(empty)

v4.0.0+

UNCLES_IN_AVERAGE_BLOCK_TIME

Include or exclude non-consensus blocks in avg block time calculation. Exclude if false.

false

v2.0.1+

COIN_BALANCE_HISTORY_DAYS

Number of days to consider at coin balance history chart.

10

v3.1.3+

ADMIN_PANEL_ENABLED

if true admin/* routes are available. Implemented in #5208

(empty)

v4.1.2+

DISABLE_ADD_TO_MM_BUTTON

If true, "Add chain to MM" button doesn't appear. Implemented in #6843

(empty)

v5.1.0+

PERMANENT_DARK_MODE_ENABLED

If true, permanent dark mode is enabled. Dark mode switcher is hidden in this case. Implemented in #6763

(empty)

v5.1.0+

PERMANENT_LIGHT_MODE_ENABLED

If true, permanent light mode is enabled. Dark mode switcher is hidden. Implemented in #6838

(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.

VariableRequiredDescriptionDefaultVersion

RE_CAPTCHA_SECRET_KEY

Google reCAPTCHA v2 secret key. Used by advanced CSV export. Implemented in #4747

(empty)

v4.0.0+

RE_CAPTCHA_CLIENT_KEY

Google reCAPTCHA v2 client key. Used by advanced CSV export. Implemented in #4747

(empty)

v4.0.0+

RE_CAPTCHA_V3_SECRET_KEY

Google reCAPTCHA v3 secret key. Used by advanced CSV export. Implemented in #7273

(empty)

v5.1.4+

RE_CAPTCHA_V3_CLIENT_KEY

Google reCAPTCHA v3 client key. Used by advanced CSV export. Implemented in #7273

(empty)

v5.1.4+

RE_CAPTCHA_DISABLED

Disable reCAPTCHA. Implemented in #7416

false

v5.1.5+

API rate limit management

VariableRequiredDescriptionDefaultVersionNeed recompile

API_RATE_LIMIT

A global API rate limit: number or requests per second for all users. Implemented in #5030

50 req/sec

v4.1.1+

API_RATE_LIMIT_BY_KEY

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+

API_RATE_LIMIT_WHITELISTED_IPS

Comma-separated whitelisted IPs list with dedicated rate limit. Implemented in #5090

(empty)

v4.1.1+

API_RATE_LIMIT_STATIC_API_KEY

Static API key with dedicated API rate limit. Implemented in #5080

(empty)

v4.1.1+

API_RATE_LIMIT_DISABLED

If true, any type of rate limit is ignored. Implemented in #6908

(empty)

v5.1.0+

API_RATE_LIMIT_IS_BLOCKSCOUT_BEHIND_PROXY

If true, then IP address of a client will be derived from proxy's headers (like X-Forwarded-For) using RemoteIp library. Implemented in #7148

false

v5.1.3+

API_RATE_LIMIT_BY_WHITELISTED_IP

A dedicated API rate limit for whitelisted IPs. Implemented in #5090

50 req/sec

v5.1.3+

API_RATE_LIMIT_BY_IP

Global rate limit for an IP address for API v2 requests sent from UI. #7148

3000

v5.1.3+

API_RATE_LIMIT_HAMMER_REDIS_URL

Redis DB URL for Hammer rate limit library. Implemented in #7148

(empty)

v5.1.3+

API_RATE_LIMIT_UI_V2_WITH_TOKEN

Rate limit after submitting correct CAPTCHA. Implemented in #7148

5

v5.1.3+

API_RATE_LIMIT_TIME_INTERVAL

Time interval of rate limit. Time format. Implemented in #7148

1s

v5.1.3+

API_RATE_LIMIT_BY_IP_TIME_INTERVAL

Time interval of rate limit set by API_RATE_LIMIT_BY_IP. Time format. Implemented in #7148

5m

v5.1.3+

API_RATE_LIMIT_UI_V2_TOKEN_TTL_IN_SECONDS

TTL for token issued after submitting correct CAPTCHA for an API v2 requests from UI. In seconds. Implemented in #7148

18000

v5.1.3+

ETH_JSON_RPC_MAX_BATCH_SIZE

Max batch size for Eth JSON RPC requests. Implemented in #9409

5

v6.3.0+

Specific smart-contracts

VariableRequiredDescriptionDefaultVersion

METADATA_CONTRACT

This environment variable is specifically used by POA Network to obtain Validators information to display in the UI.

(empty)

all

VALIDATORS_CONTRACT

This environment variable is specifically used by POA Network to obtain the list of current validators.

(empty)

all

KEYS_MANAGER_CONTRACT

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+

REWARDS_CONTRACT

Emission rewards contract address. This env var is used only if EMISSION_FORMAT is set to POA

0xeca443e8e1ab29971a45a9c57a6a9875701698a5

v2.0.4+

TOKEN_BRIDGE_CONTRACT

Token bridge proxy contract. For `TokenBridge` supply module.

0x7301CFA0e1756B71869E93d4e4Dca5c7d0eb0AA6

v1.3.2+

VariableRequiredDescriptionDefaultVersion

ACCOUNT_ENABLED

Turn on/off account functionality. If value istrue, account functionality is enabled.

(empty)

5.0.0

ACCOUNT_DATABASE_URL

Account DB connection string

value from DATABASE_URL

5.0.0

ACCOUNT_REDIS_URL

Account Redis connection string (for session storing configuration)

(empty)

5.0.0

ACCOUNT_POOL_SIZE

Account DB pool_size

50

5.0.0

ACCOUNT_AUTH0_DOMAIN

Domain for Ueberauth Auth0

(empty)

5.0.0

ACCOUNT_AUTH0_CLIENT_ID

Auth0 client ID Ueberauth Auth0

(empty)

5.0.0

ACCOUNT_AUTH0_CLIENT_SECRET

Auth0 client secret Ueberauth Auth0

(empty)

5.0.0

ACCOUNT_PUBLIC_TAGS_AIRTABLE_URL

Airtable URL for public tag requests functionality

(empty)

5.0.0

ACCOUNT_PUBLIC_TAGS_AIRTABLE_API_KEY

Airtable API key for public tag requests functionality

(empty)

5.0.0

ACCOUNT_SENDGRID_API_KEY

Sendgrid API key for watchlist notifications functionality

(empty)

5.0.0

ACCOUNT_SENDGRID_SENDER

Sendgrid sender email for watchlist notifications functionality

(empty)

5.0.0

ACCOUNT_SENDGRID_TEMPLATE

Sendgrid email template for watchlist notifications functionality

(empty)

5.0.0

ACCOUNT_CLOAK_KEY

Account DB encryption key. Instruction how to generate

(empty)

5.0.0

ACCOUNT_VERIFICATION_EMAIL_RESEND_INTERVAL

Time before resending confirmation email. Implemented in #7298. Time format

5m

v5.1.5+

ACCOUNT_PRIVATE_TAGS_LIMIT

Limit for address & transaction tags. Implemented in #8528.

2000

v5.3.1+

ACCOUNT_WATCHLIST_ADDRESSES_LIMIT

Limit for watch list addresses. Implemented in #8528.

15

v5.3.1+

ACCOUNT_WATCHLIST_NOTIFICATIONS_LIMIT_FOR_30_DAYS

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

VariableRequiredDescriptionDefaultVersion

MICROSERVICE_SC_VERIFIER_ENABLED

If true, integration with Rust smart-contract verifier is enabled. Implemented in #5860

(empty)

v5.1.3+

MICROSERVICE_SC_VERIFIER_URL

URL of Rust smart-contract verifier. Implemented in #5860

(empty)

v5.1.3+

MICROSERVICE_ETH_BYTECODE_DB_INTERVAL_BETWEEN_LOOKUPS

Minimal time after unsuccessful check of smart contract's sources in Eth Bytecode DB. Implemented in #7187. Time format

10m

v5.1.3+

MICROSERVICE_SC_VERIFIER_TYPE

Type of smart contract microservice could be either eth_bytecode_db or sc_verifier. Implemented in #7187

eth_bytecode_db

v5.1.3+

MICROSERVICE_ETH_BYTECODE_DB_MAX_LOOKUPS_CONCURRENCY

Maximum amount of concurrent requests for fetching smart contract's sources in Eth Bytecode DB. Implemented in #8472

10

v5.3.0+

MICROSERVICE_SC_VERIFIER_API_KEY

API key for verification that metadata sent to verifier microservice from a trusted source. Implemented in #8750

(empty)

v5.3.2+

Sol2Uml

VariableRequiredDescriptionDefaultVersion

MICROSERVICE_VISUALIZE_SOL2UML_ENABLED

If true, integration with Rust sol2uml visualizer is enabled. Implemented in #6401

(empty)

v5.1.3+

MICROSERVICE_VISUALIZE_SOL2UML_URL

URL of Rust visualizer. Implemented in #6401

(empty)

v5.1.3+

Sig-provider

VariableRequiredDescriptionDefaultVersion

MICROSERVICE_SIG_PROVIDER_ENABLED

If true, integration with Rust sig-provider service is enabled. Implemented in #6541

(empty)

v5.1.3+

MICROSERVICE_SIG_PROVIDER_URL

URL of Rust sig-provider service. Implemented in #6541

(empty)

v5.1.3+

Blockscout ENS

VariableRequiredDescriptionDefaultVersion

MICROSERVICE_BENS_ENABLED

If true, integration with Blockscout ENS service is enabled. Implemented in #8972

(empty)

v5.4.0+

MICROSERVICE_BENS_URL

URL of Blockscout ENS service. Implemented in #8972

(empty)

v5.4.0+

Blockscout Account Abstraction

VariableRequiredDescriptionDefaultVersion

MICROSERVICE_ACCOUNT_ABSTRACTION_ENABLED

If true, integration with Blockscout Account Abstraction service is enabled. Implemented in #9145

(empty)

v6.1.0+

MICROSERVICE_ACCOUNT_ABSTRACTION_URL

URL of Blockscout ENS service. Implemented in #9145

(empty)

v6.1.0+

Tx Interpreter (Summary) Service

VariableRequiredDescriptionDefaultVersion

MICROSERVICE_TRANSACTION_INTERPRETATION_URL

If true, integration with Tx Interpreter Service is enabled. Implemented in #8957

(empty)

v5.4.0+

MICROSERVICE_TRANSACTION_INTERPRETATION_ENABLED

URL of Tx Interpreter Service. Implemented in #8957

(empty)

v5.4.0+

Sourcify

VariableRequiredDescriptionDefaultVersion

SOURCIFY_INTEGRATION_ENABLED

Enables or disables verification of contracts through Sourcify.

false

v5.1.3+

SOURCIFY_SERVER_URL

URL to Sourcify backend.

v3.7.0+

SOURCIFY_REPO_URL

URL to Sourcify repository with fully verified contracts.

v3.7.0+

Tenderly

VariableRequiredDescriptionDefaultVersion

SHOW_TENDERLY_LINK

if true, "Open in Tenderly" button is displayed on the transaction page. Implemented in #4656

(empty)

v4.0.0+

TENDERLY_CHAIN_PATH

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 TENDERLY_CHAIN_PATH =/xdai. Implemented in #4656

(empty)

v4.0.0+

Datadog

VariableRequiredDescriptionDefaultVersion

DATADOG_HOST

Host configuration setting for Datadog integration.

(empty)

all

DATADOG_PORT

Port configuration setting for Datadog integration.

(empty}

all

Spandex

VariableRequiredDescriptionDefaultVersion

SPANDEX_BATCH_SIZE

Spandex and Datadog configuration setting.

(empty)

all

SPANDEX_SYNC_THRESHOLD

Spandex and Datadog configuration setting.

(empty)

all

Analytics

VariableRequiredDescriptionDefaultVersionNeed recompile

MIXPANEL_TOKEN

Mixpanel project token.

(empty)

v5.0.0+

MIXPANEL_URL

Url to use Mixpanel with proxy (Collection via Proxy).

(empty)

v5.0.0+

AMPLITUDE_API_KEY

Amplitude API key.

(empty)

v5.0.0+

AMPLITUDE_URL

Url to use Amplitude with proxy (Use Domain Proxy to Relay Events).

(empty)

v5.0.0+

Solidityscan

VariableRequiredDescriptionDefaultVersion

SOLIDITYSCAN_CHAIN_ID

Solidityscan Internal chain id in Solidityscan. It may not match with actual chain ID. Implemented in #8908

(empty)

v5.3.3+

SOLIDITYSCAN_API_TOKEN

Solidityscan API token for usage of Solidityscan API.

(empty)

v5.3.3+

Noves.fi

VariableRequiredDescriptionDefaultVersion

NOVES_FI_BASE_API_URL

Noves.fi API base URL. Implemented in #9056.

https://blockscout.noves.fi

v6.1.0+

NOVES_FI_CHAIN_NAME

Noves.fi API chain name. Implemented in #9056.

(empty)

v6.1.0+

NOVES_FI_API_TOKEN

Noves.fi API API token for usage of Noves.fi API. Implemented in #9056. API.

(empty)

v6.1.0+

Last updated