☑️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 recompileApplications

DATABASE_URL

Variable to define the Postgres Database endpoint.

(empty)

all

API, Indexer

TEST_DATABASE_URL

Variable to define the endpoint of the Postgres Database that is used during testing. Implemented in #9662.

(empty)

v6.6.0+

API, Indexer

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

API, Indexer

ETHEREUM_JSONRPC_HTTP_URL

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

localhost:8545

all

API, Indexer

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

API

TEST_DATABASE_READ_ONLY_API_URL

Variable to define the endpoint of the Postgres Database read-only replica that is used during testing. If it is provided, most of the read queries from API v2 and UI would go through this endpoint. Implemented in #9662.

(empty)

v6.6.0+

API

DATABASE_QUEUE_TARGET

Management of DB queue target. Implemented in #8991.

50ms

v5.4.0+

API, Indexer

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

API, Indexer

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

Indexer

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+

API, Indexer

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+

API, Indexer

ETHEREUM_JSONRPC_HTTP_TIMEOUT

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

60

v5.1.2+

API, Indexer

ETHEREUM_JSONRPC_USER

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

(empty)

v5.1.2+

API, Indexer

ETHEREUM_JSONRPC_PASSWORD

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

(empty)

v5.1.2+

API, Indexer

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+

API, Indexer

ETHEREUM_JSONRPC_FALLBACK_HTTP_URL

Fallback JSON RPC HTTP url. Implemented in #7246

(empty)

v5.1.4+

API, Indexer

ETHEREUM_JSONRPC_FALLBACK_TRACE_URL

Fallback JSON RPC trace url. Implemented in #7246

(empty)

v5.1.4+

API, Indexer

ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URL

Fallback JSON RPC eth_call url. Implemented in #9511

(empty)

v6.3.0+

API, Indexer

ETHEREUM_JSONRPC_WAIT_PER_TIMEOUT

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

20s

v5.2.3+

API, Indexer

ETHEREUM_JSONRPC_ETH_CALL_URL

JSON RPC url for eth_call method. Implemented in #9112

(empty)

v6.0.0+

API, Indexer

NETWORK

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

POA

all

API

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

API

IPC_PATH

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

(empty)

v2.1.1+

API, Indexer

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

API

BLOCKSCOUT_HOST

Host for API endpoint examples.

localhost

v2.1.0+

API

BLOCKSCOUT_PROTOCOL

Url scheme for blockscout.

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

v2.1.0+

API

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

API

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

API

PORT

Default port the application runs on is 4000.

4000

all

API

COIN

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

POA

all

API, Indexer

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+

API

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+

API, Indexer

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+

API, Indexer

PRECOMPILED_CONTRACTS_CONFIG_PATH

Precompiled contracts description path (absolute file system path or URL) to import ABI and source code of the precompiled contracts.

(empty) or /app/config/assets/precompiles-arbitrum.json for arbitrum chaintype

v6.5.0+

API, Indexer

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

API, Indexer

POOL_SIZE

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

50

all

API, Indexer

POOL_SIZE_API

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

50

v4.1.0+

API

ECTO_USE_SSL

Production environment variable to use SSL on Ecto queries.

true

all

API, Indexer

HEART_BEAT_TIMEOUT

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

30

all

API, Indexer

HEART_COMMAND

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

(empty)

all

API, Indexer

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

API, Indexer

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, Indexer

API_V1_READ_METHODS_DISABLED

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

false

v5.1.5+

API

API_V1_WRITE_METHODS_DISABLED

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

false

v5.1.5+

API

DISABLE_API

If true, endpoint is not started. Set this if you want to use an indexer-only setup. Implemented in #10032

false

v6.6.0+

API, Indexer

WEBAPP_URL

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

(empty)

v2.0.3+

API

API_URL

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

(empty)

v2.0.3+

API

API_V2_ENABLED

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

true

v5.3.2+

API

API_SENSITIVE_ENDPOINTS_KEY

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

(empty)

v5.1.5+

API

CHECKSUM_ADDRESS_HASHES

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

true

v3.1.0+

API

CHECKSUM_FUNCTION

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

eth

v2.0.1+

API

RESTRICTED_LIST

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

(empty)

v3.3.3+

API

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+

API

CHAIN_TYPE

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

default

v5.3.0+

API, Indexer

CHAIN_ID

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

(empty)

v3.7.0+

API, Indexer

JSON_RPC

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

(empty)

v4.1.0+

API, Indexer

HEALTHY_BLOCKS_PERIOD

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

5 m

v2.0.2+

API, Indexer

NEW_TAGS

Add public tag labels. More info in #6316

(empty)

v5.0.0+

API

CUSTOM_CONTRACT_ADDRESSES_${tag_name}

Specify addresses for some label. More info in #6316

(empty)

v5.0.0+

API

SESSION_COOKIE_DOMAIN

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

(empty)

v5.0.0+

API

DECODE_NOT_A_CONTRACT_CALLS

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

false

v5.1.0+

API

EIP_1559_ELASTICITY_MULTIPLIER

EIP-1559 elasticity multiplier. Implemented in #7253

2

v5.1.3+

API

EIP_1559_BASE_FEE_MAX_CHANGE_DENOMINATOR

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

8

v6.2.0+

API

TOKEN_INSTANCE_OWNER_MIGRATION_CONCURRENCY

Concurrency of new fields backfiller implemented in #8386

5

v5.3.0+

API, Indexer

TOKEN_INSTANCE_OWNER_MIGRATION_BATCH_SIZE

Batch size of new fields backfiller implemented in #8386

50

v5.3.0+

API, Indexer

TOKEN_INSTANCE_OWNER_MIGRATION_ENABLED

Enable of backfiller from #8386 implemented in #8752

false

v5.3.2+

API, Indexer

TOKEN_ID_MIGRATION_FIRST_BLOCK

Bottom block for token id migration. Implemented in #6391

0

v5.0.0+

API, Indexer

TOKEN_ID_MIGRATION_CONCURRENCY

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

1

v5.0.0+

API, Indexer

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+

API, Indexer

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+

API

API_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+

API

DATABASE_EVENT_URL

Variable to define the Postgres Database endpoint that will be used by event listener process. Applicable for separate indexer and API setup. More info in related PR. Implemented in #10164.

(empty)

v6.7.0+

API

Indexer management

VariableRequiredDescriptionDefaultVersionApplication

BLOCK_TRANSFORMER

Transformer for blocks: base or clique.

base

v1.3.4+

Indexer

DISABLE_INDEXER

If true, indexer application doesn't run.

false

v2.0.3+

API, Indexer

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+

API

INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER

If true, pending transactions fetcher is disabled.

false

v4.1.2+

Indexer

INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER

If true, internal transactions fetcher is disabled.

false

v4.1.2+

Indexer

INDEXER_DISABLE_BLOCK_REWARD_FETCHER

if true, block rewards fetcher is disabled.

false

v4.1.3+

Indexer

INDEXER_DISABLE_ADDRESS_COIN_BALANCE_FETCHER

If true, coin balances fetcher is disabled.

false

v4.1.3+

Indexer

INDEXER_DISABLE_CATALOGED_TOKEN_UPDATER_FETCHER

If true, cataloged tokens metadata fetcher is disabled.

false

v4.1.3+

Indexer

INDEXER_MEMORY_LIMIT

Memory soft limit for the indexer.

1Gb

v4.1.3+

API, Indexer

INDEXER_EMPTY_BLOCKS_SANITIZER_BATCH_SIZE

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

100

v4.1.3+

Indexer

INDEXER_CATCHUP_BLOCKS_BATCH_SIZE

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

10

v5.0.0+

Indexer

INDEXER_CATCHUP_BLOCKS_CONCURRENCY

Concurrency for blocks catchup fetcher. Implemented in #6196.

10

v5.0.0+

Indexer

INDEXER_DISABLE_EMPTY_BLOCKS_SANITIZER

Empty blocks sanitizer is disabled if true

false

v5.1.2+

Indexer

DISABLE_REALTIME_INDEXER

If true, realtime fetcher doesn't run

false

v4.1.6+

Indexer

FIRST_BLOCK

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

0

v1.3.8+

API, Indexer

LAST_BLOCK

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

(empty)

v2.0.3+

Indexer

TRACE_FIRST_BLOCK

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

0

v4.1.0+

API, Indexer

TRACE_LAST_BLOCK

The block number, where indexing of internal transactions stops.

(empty)

v4.1.0+

API, Indexer

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+

Indexer

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+

Indexer

IPFS_GATEWAY_URL

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

https://ipfs.io/ipfs

v5.3.0+

Indexer

IPFS_GATEWAY_URL_PARAM_KEY

The key of the parameter to add to IPFS gateway url. Implemented in #9898.

(empty))

v6.5.0+

Indexer

IPFS_GATEWAY_URL_PARAM_VALUE

The value of the parameter to add to IPFS gateway url. Implemented in #9898.

(empty))

v6.5.0+

Indexer

IPFS_GATEWAY_URL_PARAM_LOCATION

Whether to add extra params: to query string or to the headers. Available values: query/header. Implemented in #9898.

(empty))

v6.5.0+

Indexer

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+

Indexer

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+

API, Indexer

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

INDEXER_INTERNAL_TRANSACTIONS_BATCH_SIZE

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

10

v5.0.0+

Indexer

INDEXER_INTERNAL_TRANSACTIONS_CONCURRENCY

Concurrency for internal transactions fetcher. Implemented in #6450.

4

v5.0.0+

Indexer

INDEXER_BLOCK_REWARD_BATCH_SIZE

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

10

v5.1.2+

Indexer

INDEXER_BLOCK_REWARD_CONCURRENCY

Concurrency for block reward fetcher. Implemented in #6952.

4

v5.1.2+

Indexer

INDEXER_RECEIPTS_BATCH_SIZE

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

250

v5.0.0+

Indexer

INDEXER_RECEIPTS_CONCURRENCY

Concurrency for transaction receipts fetcher. Implemented in #6454.

10

v5.0.0+

Indexer

INDEXER_COIN_BALANCES_BATCH_SIZE

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

100

v5.0.0+

Indexer

INDEXER_COIN_BALANCES_CONCURRENCY

Concurrency for coin balances fetcher. Implemented in #6454.

4

v5.0.0+

Indexer

INDEXER_TOKEN_CONCURRENCY

Concurrency for token fetcher. Implemented in #8167.

10

v5.2.2

Indexer

INDEXER_TOKEN_BALANCES_BATCH_SIZE

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

100

v5.1.5+

Indexer

INDEXER_TOKEN_BALANCES_CONCURRENCY

Concurrency for token balances fetcher. Implemented in #8167.

10

v5.2.2

Indexer

INDEXER_TX_ACTIONS_ENABLE

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

false

v5.1.0+

Indexer

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

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

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

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

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

INDEXER_TX_ACTIONS_UNISWAP_V3_FACTORY_CONTRACT

UniswapV3Factory contract address. Implemented in #7312.

0x1F98431c8aD98523631AE4a59f267346ea31F984

v5.1.4+

Indexer

INDEXER_TX_ACTIONS_UNISWAP_V3_NFT_POSITION_MANAGER_CONTRACT

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

0xC36442b4a4522E871399CD717aBDD847Ab11FE88

v5.1.4+

Indexer

INDEXER_CATCHUP_MISSING_RANGES_BATCH_SIZE

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

100000

v5.0.0+

Indexer

MIN_MISSING_BLOCK_NUMBER_BATCH_SIZE

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

100000

v5.0.0+

API, Indexer

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

INDEXER_TOKEN_INSTANCE_RETRY_MAX_REFETCH_INTERVAL

Maximum interval between attempts to fetch token instance metadata. Time format. Implemented in #10027.

168h

v6.7.0+

Indexer

INDEXER_TOKEN_INSTANCE_RETRY_EXPONENTIAL_TIMEOUT_BASE

Base to calculate exponential timeout. Implemented in #10027.

2

v6.7.0+

Indexer

INDEXER_TOKEN_INSTANCE_RETRY_EXPONENTIAL_TIMEOUT_COEFF

Coefficient to calculate exponential timeout. Implemented in #10027.

100

v6.7.0+

Indexer

INDEXER_TOKEN_INSTANCE_RETRY_CONCURRENCY

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

10

v5.1.4+

Indexer

INDEXER_TOKEN_INSTANCE_REALTIME_CONCURRENCY

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

10

v5.1.4+

Indexer

INDEXER_TOKEN_INSTANCE_SANITIZE_CONCURRENCY

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

10

v5.1.4+

Indexer

INDEXER_DISABLE_TOKEN_INSTANCE_RETRY_FETCHER

If true, retry token instance fetcher doesn't run

false

v5.1.4+

Indexer

INDEXER_DISABLE_TOKEN_INSTANCE_REALTIME_FETCHER

If true, realtime token instance fetcher doesn't run

false

v5.1.4+

Indexer

INDEXER_TOKEN_INSTANCE_REALTIME_RETRY_ENABLED

If true, realtime token instance fetcher will retry once on 404 and 500 error. Implemented in #10036.

false

v6.6.0+

Indexer

INDEXER_TOKEN_INSTANCE_REALTIME_RETRY_TIMEOUT

Timeout for retry set by INDEXER_TOKEN_INSTANCE_REALTIME_RETRY_ENABLED. Time format. Implemented in #10036.

5s

v6.6.0+

Indexer

INDEXER_DISABLE_TOKEN_INSTANCE_SANITIZE_FETCHER

If true, sanitize token instance fetcher doesn't run

false

v5.1.4+

Indexer

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

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

INDEXER_DISABLE_WITHDRAWALS_FETCHER

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

true

v5.1.5+

Indexer

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

INDEXER_CATCHUP_BLOCK_INTERVAL

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

5s

v5.1.5+

Indexer

INDEXER_FETCHER_INIT_QUERY_LIMIT

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

100

v5.2.0+

Indexer

INDEXER_TOKEN_INSTANCE_RETRY_BATCH_SIZE

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

10

v5.2.3+

Indexer

INDEXER_TOKEN_INSTANCE_REALTIME_BATCH_SIZE

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

1

v5.2.3+

Indexer

INDEXER_TOKEN_INSTANCE_SANITIZE_BATCH_SIZE

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

10

v5.2.3+

Indexer

INDEXER_TOKEN_BALANCES_FETCHER_INIT_QUERY_LIMIT

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

100000

v5.2.3+

Indexer

INDEXER_COIN_BALANCES_FETCHER_INIT_QUERY_LIMIT

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

2000

v5.3.0+

Indexer

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

INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_CONCURRENCY

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

2

v5.4.0+

Indexer

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

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

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

INDEXER_TOKEN_INSTANCE_ERC_1155_SANITIZE_CONCURRENCY

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

2

v6.2.0+

Indexer

INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_CONCURRENCY

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

2

v6.2.0+

Indexer

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

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

INDEXER_EMPTY_BLOCKS_SANITIZER_INTERVAL

Interval for empty block sanitizer. Implemented in #8658

5m

v5.3.0+

Indexer

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+

API, Indexer

DISABLE_CATCHUP_INDEXER

If true, catchup fetcher doesn't run

false

v5.3.2+

Indexer

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+

API, Indexer

ETHEREUM_JSONRPC_GETH_TRACE_BY_BLOCK

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

false

v6.1.0+

Indexer

INDEXER_GRACEFUL_SHUTDOWN_PERIOD

Time that will be given to the block fetchers when stopping the application before they are killed. Implemented in #9729

5m

v6.5.0+

Indexer

MISSING_BALANCE_OF_TOKENS_WINDOW_SIZE

Minimal blocks count until the next token balance request will be executed for tokens that doesn't implement balanceOf function. Implemented in #10142

100

v6.7.0+

Indexer

ETHEREUM_JSONRPC_GETH_ALLOW_EMPTY_TRACES

Allow transactions to not have internal transactions. Implemented in #10200

false

v6.7.0+

Indexer

Denormalization management

VariableRequiredDescriptionDefaultVersionApplication

DENORMALIZATION_MIGRATION_BATCH_SIZE

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

500

v6.0.0-beta

API, Indexer

DENORMALIZATION_MIGRATION_CONCURRENCY

Number of parallel denormalization transaction batches processing.

10

v6.0.0-beta

API, Indexer

TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_BATCH_SIZE

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

100

v6.3.0+

API, Indexer

TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_CONCURRENCY

Number of parallel denormalization token transfer batches processing.

1

v6.3.0+

API, Indexer

SANITIZE_INCORRECT_NFT_BATCH_SIZE

Number of token transfers to sanitize in the batch.

100

v6.3.0+

API, Indexer

SANITIZE_INCORRECT_NFT_CONCURRENCY

Number of parallel sanitizing token transfer batches processing.

1

v6.3.0+

API, Indexer

Sanitizers management

VariableRequiredDescriptionDefaultVersionApplication

SANITIZE_INCORRECT_WETH_BATCH_SIZE

Number of token transfers to sanitize in the batch. Implemented in #10134

100

v6.7.0+

API, Indexer

SANITIZE_INCORRECT_WETH_CONCURRENCY

Number of parallel sanitizing token transfer batches processing. Implemented in #10134

1

v6.7.0+

API, Indexer

Ethereum Management

VariableRequiredDescriptionDefaultVersionApplication

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

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

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

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

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

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

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+

Indexer

Polygon Edge Management

VariableRequiredDescriptionDefaultVersionApplication

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

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

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

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

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

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

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

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

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

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+

Indexer

Rootstock management

VariableRequiredDescriptionDefaultVersionApplication

ROOTSTOCK_REMASC_ADDRESS

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

v5.3.0+

API

ROOTSTOCK_BRIDGE_ADDRESS

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

v5.3.0+

API

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

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

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

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

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+

Indexer

Shibarium Management

VariableRequiredDescriptionDefaultVersionApplication

INDEXER_SHIBARIUM_L1_RPC

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

(empty)

v6.1.0+

Indexer

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

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

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

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

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

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

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

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

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

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

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+

Indexer

Polygon zkEVM Rollup management

VariableRequiredDescriptionDefaultVersionApplication

INDEXER_POLYGON_ZKEVM_BATCHES_ENABLED

Enables Polygon zkEVM batches fetcher. Implemented in #7584.

false

v5.3.1+

Indexer

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

INDEXER_POLYGON_ZKEVM_BATCHES_RECHECK_INTERVAL

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

60

v5.3.1+

Indexer

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

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

INDEXER_POLYGON_ZKEVM_L1_BRIDGE_CONTRACT

The address of PolygonZkEVMBridgeV2 contract on L1 used to fetch L1 bridge events. Required for L1 bridge events indexing. Implemented in #9098.

v6.2.0+

Indexer

INDEXER_POLYGON_ZKEVM_L1_BRIDGE_NETWORK_ID

L1 Network ID in terms of Polygon zkEVM bridge (0 = Ethereum Mainnet, 1 = Polygon zkEVM, 2 = Astar zkEVM, etc.). Required if INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK or INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK is defined. Implemented in #9637.

v6.4.0+

Indexer

INDEXER_POLYGON_ZKEVM_L1_BRIDGE_ROLLUP_INDEX

L1 Rollup index in terms of Polygon zkEVM bridge (0 = Polygon zkEVM, 1 = Astar zkEVM, etc.). Not defined if L1 is Ethereum Mainnet. Required if L1 is not Ethereum Mainnet and INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK or INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK is defined. Implemented in #9637.

v6.4.0+

Indexer

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

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

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

INDEXER_POLYGON_ZKEVM_L2_BRIDGE_CONTRACT

The address of PolygonZkEVMBridgeV2 contract on L2 used to fetch L2 bridge events. Required for L2 bridge events indexing. Implemented in #9098.

v6.2.0+

Indexer

INDEXER_POLYGON_ZKEVM_L2_BRIDGE_NETWORK_ID

L2 Network ID in terms of Polygon zkEVM bridge (1 = Polygon zkEVM, 2 = Astar zkEVM, etc.). Required if INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK or INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK is defined. Implemented in #9637.

v6.4.0+

Indexer

INDEXER_POLYGON_ZKEVM_L2_BRIDGE_ROLLUP_INDEX

L2 Rollup index in terms of Polygon zkEVM bridge (0 = Polygon zkEVM, 1 = Astar zkEVM, etc.). Required if INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK or INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK is defined. Implemented in #9637.

v6.4.0+

Indexer

Optimism Rollup Management

Please note that these Optimism-related variables are only supported together with setting CHAIN_TYPE=optimism.

VariableRequiredDescriptionDefaultVersionApplication

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

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

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

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

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

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

INDEXER_OPTIMISM_L1_BATCH_BLOCKS_CHUNK_SIZE

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

4

v6.3.0+

Indexer

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

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

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

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

INDEXER_OPTIMISM_L1_DEPOSITS_BATCH_SIZE

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

500

v6.3.0+

Indexer

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

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

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+

Indexer

zkSync Rollup Management

Please note that these zkSync-related variables are only supported together with setting CHAIN_TYPE=zksync.

VariableRequiredDescriptionDefaultVersionApplication

INDEXER_ZKSYNC_BATCHES_ENABLED

Enables Polygon zkEVM batches fetcher. Implemented in #9080.

false

v6.3.0+

Indexer

INDEXER_ZKSYNC_BATCHES_CHUNK_SIZE

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

50

v6.3.0+

Indexer

INDEXER_ZKSYNC_NEW_BATCHES_MAX_RANGE

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

50

v6.3.0+

Indexer

INDEXER_ZKSYNC_NEW_BATCHES_RECHECK_INTERVAL

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

60

v6.3.0+

Indexer

INDEXER_ZKSYNC_L1_RPC

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

(empty)

v6.3.0+

Indexer

INDEXER_ZKSYNC_BATCHES_STATUS_RECHECK_INTERVAL

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

60

v6.3.0+

Indexer

Arbitrum Rollup Management

Please note that these Arbitrum-related variables are only supported together with setting CHAIN_TYPE=arbitrum.

VariableRequiredDescriptionDefaultVersion

INDEXER_ARBITRUM_ARBSYS_CONTRACT

The address of ArbSys contract on the rollup. Implemented in #9312.

0x0000000000000000000000000000000000000064

INDEXER_ARBITRUM_L1_RPC

The RPC endpoint for L1 used to fetch transaction batches, block confirmations, and cross-chain messages. Implemented in #9312.

INDEXER_ARBITRUM_L1_RPC_CHUNK_SIZE

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

20

INDEXER_ARBITRUM_L1_RPC_HISTORICAL_BLOCKS_RANGE

The block range size for the eth_getLogs request. Implemented in #9312.

1000

INDEXER_ARBITRUM_L1_ROLLUP_CONTRACT

The Arbitrum Rollup contract address on L1. Implemented in #9312.

INDEXER_ARBITRUM_L1_ROLLUP_INIT_BLOCK

The block number where the Arbitrum rollup contract has been deployed. Implemented in #9312.

1

INDEXER_ARBITRUM_L1_COMMON_START_BLOCK

The block number at which synchronization will commence. It will proceed in both directions: discovering new batches up to the chain head, and historical batches until INDEXER_ARBITRUM_L1_ROLLUP_INIT_BLOCK. If omitted, the sychronization starts from the latest block. Implemented in #9312.

latest block

INDEXER_ARBITRUM_ROLLUP_CHUNK_SIZE

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

20

INDEXER_ARBITRUM_BRIDGE_MESSAGES_TRACKING_ENABLED

Enables monitoring on L1 of cross-chain messages directed to L2 and catchup on L2 of historical cross-chain messages. Implemented in #9312.

INDEXER_ARBITRUM_MISSED_MESSAGES_RECHECK_INTERVAL

Interval to re-check on the rollup historical messages directed to and from the rollup, in seconds. Implemented in #9312.

3600

INDEXER_ARBITRUM_MISSED_MESSAGES_TO_L2_BLOCK_DEPTH

Amount of L2 blocks to revisit to identify historical L1-to-L2 messages in the messages catchup task by handling block transactions. Implemented in #9312.

50

INDEXER_ARBITRUM_MISSED_MESSAGES_TO_L1_BLOCK_DEPTH

Amount of L2 blocks to revisit to identify historical L2-to-L1 messages in the messages catchup task by handling logs in receipts. Implemented in #9312.

1000

INDEXER_ARBITRUM_TRACKING_MESSAGES_ON_L1_RECHECK_INTERVAL

Interval to re-check on L1 new messages directed to the rollup, in seconds. Implemented in #9312.

20

INDEXER_ARBITRUM_BATCHES_TRACKING_ENABLED

Enables monitoring of transaction batches, block confirmations, and L2-to-L1 messages executions. Implemented in #9312.

INDEXER_ARBITRUM_BATCHES_TRACKING_RECHECK_INTERVAL

Interval to re-check on L1 new and historical batches, confirmations, and executions, in seconds. Implemented in #9312.

20

INDEXER_ARBITRUM_BATCHES_TRACKING_L1_FINALIZATION_CHECK_ENABLED

Whether L1 transactions related to batches, confirmations, and executions need to be monitored for finalization or not. Implemented in #9312.

false

INDEXER_ARBITRUM_BATCHES_TRACKING_MESSAGES_TO_BLOCKS_SHIFT

Difference between the message count and actual rollup block numbers in the SequencerBatchDelivered event on L1. Applicable for ArbitrumOne only. Implemented in #9312.

0

INDEXER_ARBITRUM_CONFIRMATIONS_TRACKING_FINALIZED

Whether to choose safe (true) or latest (false) block to discover new confirmations. This setting is required to reduce latency between the actual confirmation transaction and its discovery. Recommended to have true on rollups which use Ethereum Mainnet as L1. Determines how fast new confirmations will be discovered. Implemented in #9312.

true

INDEXER_ARBITRUM_NEW_BATCHES_LIMIT

The number of batches to be handled and imported at once. This is applicable for cases when dozens of batches are found in one discovery iteration, and it is necessary to import them in chunks to avoid the entire process being aborted if any errors occur. Implemented in #9312.

10

Exchange rates management

VariableRequiredDescriptionDefaultVersionApplication

DISABLE_EXCHANGE_RATES

Disables or enables fetching of coin price from Coingecko API.

false

v3.1.2+

API, Indexer

EXCHANGE_RATES_MARKET_CAP_SOURCE

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

coin_gecko

v5.2.3+

API, Indexer

EXCHANGE_RATES_TVL_SOURCE

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

(empty)

v5.3.0+

API, Indexer

EXCHANGE_RATES_PRICE_SOURCE

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

crypto_compare

v5.2.3+

API, Indexer

EXCHANGE_RATES_MOBULA_COIN_ID

Explicitly set Mobula coin ID.

(empty)

v6.7.0+

API, Indexer

EXCHANGE_RATES_MOBULA_SECONDARY_COIN_ID

Explicitly set Mobula coin ID for secondary coin market chart.

(empty)

v6.7.0+

API, Indexer

EXCHANGE_RATES_MOBULA_API_KEY

Mobula API key.

(empty)

v6.7.0+

API, Indexer

EXCHANGE_RATES_MOBULA_CHAIN_ID

Mobula chain id for which token prices are fetched, see full list in the Documentation.

ethereum

v6.7.0+

API, Indexer

EXCHANGE_RATES_COINGECKO_COIN_ID

Explicitly set CoinGecko coin ID.

(empty)

v4.1.4+

API, Indexer

EXCHANGE_RATES_COINGECKO_SECONDARY_COIN_ID

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

(empty)

v6.3.0+

API, Indexer

EXCHANGE_RATES_COINGECKO_API_KEY

CoinGecko API key.

(empty)

v4.1.4+

API, Indexer

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+

API, Indexer

EXCHANGE_RATES_COINMARKETCAP_COIN_ID

CoinMarketCap coin id.

(empty)

v5.2.1+

API, Indexer

EXCHANGE_RATES_COINMARKETCAP_SECONDARY_COIN_ID

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

(empty)

v6.3.0+

API, Indexer

EXCHANGE_RATES_DEFILLAMA_COIN_ID

DefiLlama coin id.

(empty)

v5.3.0+

API, Indexer

EXCHANGE_RATES_FETCH_BTC_VALUE

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

(empty)

v4.1.5+

API, Indexer

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+

API, Indexer

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+

API, Indexer

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+

API, Indexer

TOKEN_EXCHANGE_RATE_MAX_BATCH_SIZE

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

150

v5.1.2+

API, Indexer

DISABLE_TOKEN_EXCHANGE_RATE

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

true

v5.1.2+

API, Indexer

EXCHANGE_RATES_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL

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

(empty)

v6.3.0+

API, Indexer

EXCHANGE_RATES_COINGECKO_BASE_URL

If set, overrides the Coingecko base URL. Implemented in #9679.

true

v6.4.0+

API, Indexer

EXCHANGE_RATES_COINGECKO_BASE_PRO_URL

If set, overrides the Coingecko Pro base URL. Implemented in #9679.

true

v6.4.0+

API, Indexer

EXCHANGE_RATES_COINMARKETCAP_BASE_URL

If set, overrides the CoinMarketCap base URL (Free and Pro). Implemented in #9679.

true

v6.4.0+

API, Indexer

Cache management

VariableRequiredDescriptionDefaultVersionNeed recompileApplication

CACHE_TXS_COUNT_PERIOD

Time interval to restart the task, which calculates the total txs count. Starting from release v6.7.0, if the value is not set, ttl value gradually increases until the default value with growth of the block numbers. Time format.

2h

v4.1.3+

API, Indexer

CACHE_ADDRESS_SUM_PERIOD

Time to live of addresses sum (except burn address) cache. Time format. Starting from release v6.7.0, if the value is not set, ttl value gradually increases until the default value with growth of the block numbers. Introduced in #2862.

1h

v4.1.3+

API, Indexer

CACHE_TOTAL_GAS_USAGE_PERIOD

Interval to restart the task, which calculates the total gas usage. Starting from release v6.7.0, if the value is not set, ttl value gradually increases until the default value with growth of the block numbers. Time format.

2h

v4.1.3+

API, Indexer

CACHE_PBO_COUNT_PERIOD

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

20m

v5.2.0+

API, Indexer

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+

API, Indexer

CACHE_TOKEN_HOLDERS_COUNTER_PERIOD

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

1h

v4.1.3+

API, Indexer

CACHE_TOKEN_TRANSFERS_COUNTER_PERIOD

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

1h

v4.1.3+

API, Indexer

CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVAL

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

30m

v4.1.3+

API, Indexer

TOKEN_METADATA_UPDATE_INTERVAL

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

48h

v2.0.1+

API, Indexer

CACHE_AVERAGE_BLOCK_PERIOD

Update of average block period cache. Time format.

30m

v4.1.3+

API, Indexer

CACHE_MARKET_HISTORY_PERIOD

Update of market history cache. Time format.

6h

v4.1.3+

API, Indexer

CACHE_ADDRESS_TRANSACTIONS_COUNTER_PERIOD

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

1h

v3.4.0+

API, Indexer

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+

API, Indexer

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+

API, Indexer

TOKEN_BALANCE_ON_DEMAND_FETCHER_THRESHOLD

A threshold to invalidate token balance cache. Time format.

1h

v5.1.2+

API, Indexer

COIN_BALANCE_ON_DEMAND_FETCHER_THRESHOLD

A threshold to invalidate coin balance cache. Time format.

1h

v5.1.2+

API, Indexer

CONTRACT_CODE_ON_DEMAND_FETCHER_THRESHOLD

An initial threshold (for exponential backoff) to fetch smart-contract bytecode on-demand. Time format. Implemented in #9708.

5s

v6.4.0+

API, Indexer

TOKEN_INSTANCE_METADATA_REFETCH_ON_DEMAND_FETCHER_THRESHOLD

An initial threshold (for exponential backoff) to re-fetch token instance's metadata on-demand. Time format. Implemented in #10097.

5s

v6.7.0+

API, Indexer

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+

API, Indexer

CACHE_BLOCK_COUNT_PERIOD

Time to live of blocks with consensus count cache. Starting from release v6.7.0, if the value is not set, ttl value gradually increases until the default value with growth of the block numbers. Time format. Introduced in #1876.

2h

v4.1.3+

API, Indexer

CACHE_TOTAL_GAS_USAGE_COUNTER_ENABLED

if true, enables cache for total gas usage counter.

false

v5.1.3+

API, Indexer

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+

API, Indexer

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+

API, Indexer

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+

API, Indexer

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+

API, Indexer

Gas price oracle management

VariableRequiredDescriptionDefaultVersionApplication

GAS_PRICE_ORACLE_NUM_OF_BLOCKS

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

200

v4.1.4+

API, Indexer

GAS_PRICE_ORACLE_SAFELOW_PERCENTILE

Gas price oracle: safelow percentile

35

v4.1.4+

API, Indexer

GAS_PRICE_ORACLE_AVERAGE_PERCENTILE

Gas price oracle: average percentile

60

v4.1.4+

API, Indexer

GAS_PRICE_ORACLE_FAST_PERCENTILE

Gas price oracle: fast percentile

90

v4.1.4+

API, Indexer

GAS_PRICE_ORACLE_CACHE_PERIOD

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

30s

v4.1.4+

API, Indexer

GAS_PRICE_ORACLE_SIMPLE_TRANSACTION_GAS

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

21000

v6.0.0+

API, Indexer

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