Categories

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.

General Management

VariableDescriptionParameters
APPLICATION_MODEDefines the current application mode. Available values are: all, indexer, api. Implemented in #10631.Version: v6.8.0+
Default: all
Applications: API, Indexer
DATABASE_URLDefines the Postgres Database endpoint.Required: ✅
Version: All
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_VARIANTTells the application which RPC Client the node is using (i.e. erigon, geth, nethermind, besu, filecoin, or anvil) (See Client Settings for more info)Required: ✅
Version: All
Default: geth
Applications: API, Indexer
ETHEREUM_JSONRPC_HTTP_URLThe RPC endpoint used to fetch blocks, transactions, receipts, tokens.Required: ✅
Version: All
Default: localhost:8545
Applications: API, Indexer
ETHEREUM_JSONRPC_FALLBACK_HTTP_URLFallback JSON RPC HTTP url. Implemented in #7246Version: v5.1.4+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_HTTP_URLSAnalogue of ETHEREUM_JSONRPC_HTTP_URL for multiple values. Implemented in #10934Version: v6.10.0+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_FALLBACK_HTTP_URLSAnalogue of ETHEREUM_JSONRPC_FALLBACK_HTTP_URL for multiple values. Implemented in #10934Version: v6.10.0+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_TRACE_URLThe 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.Version: All
Default: localhost:8545
Applications: API, Indexer
ETHEREUM_JSONRPC_FALLBACK_TRACE_URLFallback JSON RPC trace url. Implemented in #7246Version: v5.1.4+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_TRACE_URLSAnalogue of ETHEREUM_JSONRPC_TRACE_URL for multiple values. Implemented in #10934Version: v6.10.0+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_FALLBACK_TRACE_URLSAnalogue of ETHEREUM_JSONRPC_FALLBACK_TRACE_URL for multiple values. Implemented in #10934Version: v6.10.0+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_ETH_CALL_URLJSON RPC url for eth_call method. Implemented in #9112Version: v6.0.0+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URLFallback JSON RPC eth_call url. Implemented in #9511Version: v6.3.0+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_ETH_CALL_URLSAnalogue of ETHEREUM_JSONRPC_ETH_CALL_URL for multiple values. Implemented in #10934Version: v6.10.0+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URLSAnalogue of ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URL for multiple values. Implemented in #10934Version: v6.10.0+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_WS_URLThe WebSockets RPC endpoint used to subscribe to the newHeads subscription alerting the indexer to fetch new blocks.Version: All
Default: ws://localhost:8546
Applications: Indexer
ETHEREUM_JSONRPC_FALLBACK_WS_URLThe fallback WebSockets RPC endpoint used to subscribe to the newHeads subscription alerting the indexer to fetch new blocks. Implemented in #10407.Version: v6.8.0+
Default: (empty)
Applications: Indexer
ETHEREUM_JSONRPC_WS_RETRY_INTERVALThe interval between retries of connecting to WebSocket RPC endpoint after the previous attempt is failed. Implemented in #10407.Version: v6.8.0+
Default: 1m
Applications: Indexer
ETHEREUM_JSONRPC_TRANSPORTSpecifies 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.Version: v3.1.0+
Default: http
Applications: API, Indexer
ETHEREUM_JSONRPC_HTTP_INSECUREIf 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 #6573Version: v5.0.0+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_HTTP_TIMEOUTTimeout for ethereum json rpc http requests in seconds. Implemented in #7089Version: v5.1.2+
Default: 60
Applications: API, Indexer
ETHEREUM_JSONRPC_USERUser in basic auth for JSON RPC endpoint. Implemented in #6897Version: v5.1.2+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_PASSWORDPassword in basic auth for JSON RPC endpoint. Implemented in #6897Version: v5.1.2+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_HTTP_HEADERSCustom headers for JSON RPC endpoint in form of json object, example: {"x-api-key": "nbvkhadvnbkdfav", "x-id": "ndjkfvndfkjv"}. Implemented in #7898Version: v5.2.1+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_WAIT_PER_TIMEOUTWait time for each recent timeout from node. Implemented in #8292Version: v5.2.3+
Default: 20s
Applications: API, Indexer
ETHEREUM_JSONRPC_HTTP_GZIP_ENABLEDIf true, then send gzip encoding header and expect encoding in response. Implemented in #11292.Version: v6.10.0+
Default: false
Applications: API, Indexer
TEST_DATABASE_URLDefines the endpoint of the Postgres Database that is used during testing. Implemented in #9662.Version: v6.6.0+
Default: (empty)
Applications: API, Indexer
DATABASE_READ_ONLY_API_URLDefines the Postgres Database read-only replica endpoint. If provided, most of the read queries from API v2 and UI go through this endpoint.Required: ✅
Version: All
Default: (empty)
Applications: API
TEST_DATABASE_READ_ONLY_API_URLDefines the endpoint of the Postgres Database read-only replica used during testing. If provided, most read queries from API v2 and UI go through this endpoint. Implemented in #9662.Version: v6.6.0+
Default: (empty)
Applications: API
REPLICA_MAX_LAGDefines the max lag for read-only replica. If the actual lag is higher than this, replica is considered unavailable and all requests to it are redirected to main DB. Implemented in #11020Version: v6.10.0+
Default: 5m
Applications: API
SECRET_KEY_BASEThe value used to sign cookies. Use mix phx.gen.secret to generate a new Secret Key Base string to protect production assets.Required: ✅
Version: All
Default: (empty)
Applications: API
DATABASE_QUEUE_TARGETManagement of DB queue target. Implemented in #8991.Version: v5.4.0+
Default: 50ms
Applications: API, Indexer
NETWORKEnvironment variable for the main EVM network such as Ethereum or POA.Version: All
Default: POA
Applications: API
SUBNETWORKEnvironment variable for the subnetwork such as Core or Sokol Network. This will be displayed as selected in the chains list dropdown.Version: All
Default: POA Sokol
Applications: API
IPC_PATHPath to the IPC file of the running node if IPC transport is chosen.Version: v2.1.1+
Default: (empty)
Applications: API, Indexer
NETWORK_PATHUsed 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.Version: All
Default: /
Applications: API
BLOCKSCOUT_HOSTHost for API endpoint examples.Version: v2.1.0+
Default: localhost
Applications: API
BLOCKSCOUT_PROTOCOLUrl scheme for blockscout.Version: v2.1.0+
Default: prod env https, dev env http
Applications: API
CHECK_ORIGINUsed 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.Version: All
Default: false
Applications: API
PORTDefault port the application runs on is 4000.Version: All
Default: 4000
Applications: API
COINCoin is checked via the CoinGecko API to obtain USD prices on graphs and other areas of the UI.Version: All
Default: POA
Applications: API, Indexer
COIN_NAMEDisplayed 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.Version: v4.1.2+
Default: (empty)
Applications: API
EMISSION_FORMATShould 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.Version: v2.0.4+
Default: DEFAULT
Applications: API, Indexer
CHAIN_SPEC_PATHChain 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.Version: v2.0.4+
Default: (empty)
Applications: API, Indexer
CHAIN_SPEC_PROCESSING_DELAYChain specification path processing delay. Time format. Implemented in #11874.Version: v7.0.0+
Default: 15s
Applications: API, Indexer
PRECOMPILED_CONTRACTS_CONFIG_PATHPrecompiled contracts description path (absolute file system path or URL) to import ABI and source code of the precompiled contracts.Version: v6.5.0+
Default: (empty) or /app/config/assets/precompiles-arbitrum.json for arbitrum chaintype
Applications: API, Indexer
SUPPLY_MODULEUsed by RSK in order to tell the application how to calculate the total supply of the chain. Available value is RSKVersion: All
Default: (empty)
Applications: API, Indexer
POOL_SIZEDefines the number of database connections allowed excluding read-only API endpoints requests.Version: All
Default: 50
Applications: API, Indexer
POOL_SIZE_APIDefines the number of database connections allowed for read-only API endpoints requests.Version: v4.1.0+
Default: 50
Applications: API
ECTO_USE_SSLProduction environment variable to use SSL on Ecto queries.Version: All
Default: TRUE
Applications: API, Indexer
HEART_BEAT_TIMEOUTProduction environment variable to restart the application in the event of a crash.Version: All
Default: 30
Applications: API, Indexer
HEART_COMMANDProduction environment variable to restart the application in the event of a crash.Version: All
Default: (empty)
Applications: API, Indexer
ELIXIR_VERSIONElixir version to install on the node before Blockscout deploy. It is used in bash script in Terraform / Ansible deployment scriptVersion: All
Default: (empty)
Applications: API, Indexer
DISABLE_WEBAPPIf true endpoints to webapp are hidden. Also, enabling it makes notifications go through db_notifyNeeds Recompile: ☑️ Version: v2.0.3+
Default: false
Applications: API, Indexer
API_V1_READ_METHODS_DISABLEDIf true, read-only endpoints to API v1 are hidden.Needs Recompile: ☑️ Version: v5.1.5+
Default: false
Applications: API
API_V1_WRITE_METHODS_DISABLEDIf true, write endpoints to API v1 are hidden.Needs Recompile: ☑️ Version: v5.1.5+
Default: false
Applications: API
DISABLE_APIIf true, endpoint is not started. Set this if you want to use an indexer-only setup. Implemented in #10032Version: v6.6.0+
Default: false
Applications: API, Indexer
WEBAPP_URLLink to web application instance, e.g. protocol://host/pathVersion: v2.0.3+
Default: (empty)
Applications: API
API_URLLink to API instance, e.g. protocol://host/pathVersion: v2.0.3+
Default: (empty)
Applications: API
API_V2_ENABLEDEnable API V2. Implemented in #6361 (v5.0.0+), default true since #8802Version: v5.3.2+
Default: true
Applications: API
API_SENSITIVE_ENDPOINTS_KEYAPI key to protect some sensitive endpoints. Implemented in #7355Version: v5.1.5+
Default: (empty)
Applications: API
CHECKSUM_ADDRESS_HASHESIf set to true, redirects to checksummed version of address hashes.Version: v3.1.0+
Default: true
Applications: API
CHECKSUM_FUNCTIONDefines checksum address function. 2 available values: rsk, ethVersion: v2.0.1+
Default: eth
Applications: API
RESTRICTED_LISTA comma-separated list of addresses to enable restricted access to them.Version: v3.3.3+
Default: (empty)
Applications: API
RESTRICTED_LIST_KEYA key to access addresses listed inRESTRICTED_LIST variable. Can be passed via query param to the page’s URL: ?key=...Version: v3.3.3+
Default: (empty)
Applications: API
CHAIN_TYPESpecifies the blockchain architecture and enables chain-specific data models and fetchers.Runtime configurable (v8.0.0+): neon, stability, blackfort, shibarium, polygon_edge Needs recompilation: ethereum, optimism, arbitrum, celo, polygon_zkevm, rsk, suave, zetachain, filecoin, zilliqa, and other values prior to v8.0.0 Version: v5.3.0+
Default: default
Applications: API, Indexer
CHAIN_IDChain ID of the network. For instance, 100 in the case of xDai chain.Version: v3.7.0+
Default: (empty)
Applications: API, Indexer
JSON_RPCJSON RPC endpoint of the chain for the WalletConnect integration. Implemented in #4931Version: v4.1.0+
Default: (empty)
Applications: API, Indexer
HEALTH_MONITOR_CHECK_INTERVALInterval between health stats collection. Time format. Implemented in #11888Version: v8.0.0+
Default: 1m
Applications: API, Indexer
HEALTH_MONITOR_BLOCKS_PERIODNew blocks indexed max delay in /health API endpoint. Time format. Implemented in #11888Version: v8.0.0+
Default: 5m
Applications: API, Indexer
HEALTH_MONITOR_BATCHES_PERIODNew batches indexed max delay in /health API endpoint. Time format. Implemented in #11888Version: v8.0.0+
Default: 4h
Applications: API, Indexer
NEW_TAGSAdd public tag labels. More info in #6316Version: v5.0.0+
Default: (empty)
Applications: API
CUSTOM_CONTRACT_ADDRESSES_${tag_name}Specify addresses for some label. More info in #6316Version: v5.0.0+
Default: (empty)
Applications: API
SESSION_COOKIE_DOMAINValue of this env will be added to domain of session cookie. Implemented in #6544Needs Recompile: ☑️
Version: v5.0.0+
Default: (empty)
Applications: API
DECODE_NOT_A_CONTRACT_CALLSAllows decoding of contract calls directed to addresses which are not contracts. Implemented in #6541Needs Recompile: ☑️
Version: v5.1.0+
Default: false
Applications: API
EIP_1559_ELASTICITY_MULTIPLIEREIP-1559 elasticity multiplier. See also INDEXER_OPTIMISM_L2_HOLOCENE_TIMESTAMP. Implemented in #7253Version: v5.1.3+
Default: 2
Applications: API
EIP_1559_BASE_FEE_MAX_CHANGE_DENOMINATOREIP-1559 base fee max change denominator. See also INDEXER_OPTIMISM_L2_HOLOCENE_TIMESTAMP. Implemented in #9202Version: v6.2.0+
Default: 8
Applications: API
EIP_1559_BASE_FEE_LOWER_BOUND_WEIMinimum boundary for base fee calculation in wei. Implemented in #12370.Version: v8.1.0+
Default: 0
Applications: API
ADDRESSES_TABS_COUNTERS_TTLTTL for cached tabs counters (works only for counters which are < 51, if counter >= 51, then ttl == :infinity). Implemented in #8512Version: v5.3.0+
Default: 10m
Applications: API
API_INTERNAL_TRANSACTIONS_INDEXING_FINISHED_THRESHOLDIn 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 is finished, otherwise, it will consider that indexing is still taking place and the indexing banner will appear at the top. Implemented in #7576.Version: v5.2.0+
Default: 1000
Applications: API
DATABASE_EVENT_URLVariable 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.Version: v6.8.0+
Default: (empty)
Applications: API
PUBLIC_METRICS_ENABLEDVariable to enable running queries at /public-metrics endpoint. Implemented in #10469.Version: v6.8.0+
Default: false
Applications: API
PUBLIC_METRICS_UPDATE_PERIOD_HOURSPublic metrics update period in hours at /public-metrics endpoint. Implemented in #10469.Version: v6.8.0+
Default: 24
Applications: API
SHRINK_INTERNAL_TRANSACTIONS_ENABLEDVariable to enable internal transactions shrinking logic. Implemented in #10567.Version: v6.8.0+
Default: false
Applications: API, Indexer
HACKNEY_DEFAULT_POOL_SIZESize of default hackney pool. Implemented in #12406.Version: v8.1.0+
Default: 1000
Applications: API, Indexer
UNIVERSAL_PROXY_CONFIG_URLConfig URL for universal proxy. Implemented in #12442.Version: v8.1.0+
Default: https://raw.githubusercontent.com/blockscout/backend-configs/refs/heads/main/universal-proxy-config.json
Applications: API

Indexer Management

VariableDescriptionParameters
BLOCK_TRANSFORMERTransformer for blocks: base or clique.Version: v1.3.4+
Default: base
Applications: Indexer
DISABLE_INDEXERIf true, indexer application doesn’t run.Version: v2.0.3+
Default: false
Applications: API, Indexer
INDEXER_HIDE_INDEXING_PROGRESS_ALERTIf true, indexer progress alert will be disabled even if initial catchup indexing is still in place. Implemented in #7360.Version: v5.1.5+
Default: false
Applications: API
INDEXER_PENDING_TRANSACTIONS_SANITIZER_INTERVALInterval between pending transactions sanitizing. Implemented in #11601.Version: v6.10.1
Default: 1h
Applications: Indexer
INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHERIf true, pending transactions fetcher is disabled.Version: v4.1.2+
Default: false
Applications: Indexer
INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHERIf true, internal transactions fetcher is disabled.Version: v4.1.2+
Default: false
Applications: Indexer
INDEXER_DISABLE_BLOCK_REWARD_FETCHERif true, block rewards fetcher is disabled.Version: v4.1.3+
Default: false
Applications: Indexer
INDEXER_DISABLE_ADDRESS_COIN_BALANCE_FETCHERIf true, coin balances fetcher is disabled.Version: v4.1.3+
Default: false
Applications: Indexer
INDEXER_DISABLE_CATALOGED_TOKEN_UPDATER_FETCHERIf true, cataloged tokens metadata fetcher is disabled.Version: v4.1.3+
Default: false
Applications: Indexer
INDEXER_MEMORY_LIMITMemory soft limit for the indexer.Version: v4.1.3+
Default: 1Gb
Applications: Indexer
INDEXER_SYSTEM_MEMORY_PERCENTAGEPercentage of total memory available to the VM that an application can use if INDEXER_MEMORY_LIMIT is not set. Implemented in #10697.Version: v6.9.0+
Default: 60
Applications: Indexer
INDEXER_EMPTY_BLOCKS_SANITIZER_BATCH_SIZEBatch size for empty block sanitizer (re-fetcher). Default value changed from 100 to 10 in the release v6.10.1 (#11555)Version: v4.1.3+
Default: 10
Applications: Indexer
INDEXER_CATCHUP_BLOCKS_BATCH_SIZEBatch size for blocks catchup fetcher. Implemented in #6196.Version: v5.0.0+
Default: 10
Applications: Indexer
INDEXER_CATCHUP_BLOCKS_CONCURRENCYConcurrency for blocks catchup fetcher. Implemented in #6196.Version: v5.0.0+
Default: 10
Applications: Indexer
INDEXER_DISABLE_EMPTY_BLOCKS_SANITIZEREmpty blocks sanitizer is disabled if trueVersion: v5.1.2+
Default: false
Applications: Indexer
DISABLE_REALTIME_INDEXERIf true, realtime fetcher doesn’t run.Version: v4.1.6+
Default: false
Applications: Indexer
FIRST_BLOCKThe block number, where import of blocks by catchup fetcher begins from.Version: v1.3.8+
Default: 0
Applications: API, Indexer
LAST_BLOCKThe block number, where import of blocks by catchup fetcher stops.Version: v2.0.3+
Default: (empty)
Applications: Indexer
TRACE_FIRST_BLOCKThe block number, where indexing of internal transactions begins from.Version: v4.1.0+
Default: 0
Applications: API, Indexer
TRACE_LAST_BLOCKThe block number, where indexing of internal transactions stops.Version: v4.1.0+
Default: (empty)
Applications: API, Indexer
BLOCK_RANGESBlock ranges to import by catchup fetcher. Example: BLOCK_RANGES="1..3,123..500,30..50,500..latest". Implemented in #5783Version: v4.1.7+
Default: (empty)
Applications: Indexer
FETCH_REWARDS_WAYTells the application how to calculate block rewards, by fetching via json_rpc (trace_block) or manual by block params (manual).Version: v4.1.4+
Default: trace_block
Applications: Indexer
IPFS_GATEWAY_URLIPFS gateway url for fetching token instance metadata from IPFS including token instance icon.Version: v5.3.0+
Default: https://ipfs.io/ipfs
Applications: Indexer
IPFS_GATEWAY_URL_PARAM_KEYThe key of the parameter to add to IPFS gateway url. Implemented in #9898.Version: v6.5.0+
Default: (empty)
Applications: Indexer
IPFS_GATEWAY_URL_PARAM_VALUEThe value of the parameter to add to IPFS gateway url. Implemented in #9898.Version: v6.5.0+
Default: (empty)
Applications: Indexer
IPFS_GATEWAY_URL_PARAM_LOCATIONWhether to add extra params: to query string or to the headers. Available values: query/header. Implemented in #9898.Version: v6.5.0+
Default: (empty)
Applications: Indexer
IPFS_PUBLIC_GATEWAY_URLIPFS public gateway url which is used by frontend to display IPFS resources such as token instance image.Version: v6.8.0+
Default: https://ipfs.io/ipfs
Applications: API
ETHEREUM_JSONRPC_DEBUG_TRACE_TRANSACTION_TIMEOUTTimeout 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 #5505Version: v4.1.3+
Default: 5s
Applications: Indexer
ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCESIf true, all the requests with the method eth_getBalance with any block as parameter but latest are ignored. Implemented in #6001Version: v5.0.0+
Default: false
Applications: API, Indexer
ETHEREUM_JSONRPC_PENDING_TRANSACTIONS_TYPEDefines 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 #6001Version: v5.0.0+
Default: default
Applications: Indexer
INDEXER_INTERNAL_TRANSACTIONS_BATCH_SIZEBatch size for internal transactions fetcher. Implemented in #6450.Version: v5.0.0+
Default: 10
Applications: Indexer
INDEXER_INTERNAL_TRANSACTIONS_CONCURRENCYConcurrency for internal transactions fetcher. Implemented in #6450.Version: v5.0.0+
Default: 4
Applications: Indexer
INDEXER_BLOCK_REWARD_BATCH_SIZEBatch size for block reward fetcher. Implemented in #6952.Version: v5.1.2+
Default: 10
Applications: Indexer
INDEXER_BLOCK_REWARD_CONCURRENCYConcurrency for block reward fetcher. Implemented in #6952.Version: v5.1.2+
Default: 4
Applications: Indexer
INDEXER_RECEIPTS_BATCH_SIZEBatch size for transaction receipts fetcher. Implemented in #6454.Version: v5.0.0+
Default: 250
Applications: Indexer
INDEXER_RECEIPTS_CONCURRENCYConcurrency for transaction receipts fetcher. Implemented in #6454.Version: v5.0.0+
Default: 10
Applications: Indexer
INDEXER_COIN_BALANCES_BATCH_SIZEBatch size for coin balances fetcher. Implemented in #6454.Version: v5.0.0+
Default: 100
Applications: Indexer
INDEXER_COIN_BALANCES_CONCURRENCYConcurrency for coin balances fetcher. Implemented in #6454.Version: v5.0.0+
Default: 4
Applications: Indexer
INDEXER_TOKEN_CONCURRENCYConcurrency for token fetcher. Implemented in #8167.Version: v5.2.2+
Default: 10
Applications: Indexer
INDEXER_TOKEN_BALANCES_BATCH_SIZEBatch size for token balances fetcher. Implemented in #7439.Version: v5.1.5+
Default: 100
Applications: Indexer
INDEXER_TOKEN_BALANCES_CONCURRENCYConcurrency for token balances fetcher. Implemented in #8167.Version: v5.2.2+
Default: 10
Applications: Indexer
INDEXER_TOKEN_BALANCES_MAX_REFETCH_INTERVALMaximum interval between attempts to fetch address token balance. Time format. Implemented in #10694.Version: v6.8.1+
Default: 168h
Applications: Indexer
INDEXER_TOKEN_BALANCES_EXPONENTIAL_TIMEOUT_COEFFCoefficient to calculate exponential timeout. Implemented in #10694.Version: v6.9.0+
Default: 100
Applications: Indexer
INDEXER_TX_ACTIONS_ENABLEIf true, transaction action indexer is active. Implemented in #6582.Version: v5.1.0+
Default: false
Applications: Indexer
INDEXER_TX_ACTIONS_MAX_TOKEN_CACHE_SIZEMaximum number of items in an internal cache of tx actions indexing process (to limit memory consumption). Implemented in #6582.Version: v5.1.0+
Default: 100000
Applications: Indexer
INDEXER_TX_ACTIONS_REINDEX_FIRST_BLOCKThe first block of a block range for historical indexing or reindexing of tx actions. Implemented in #6582.Version: v5.1.0+
Default: (empty)
Applications: Indexer
INDEXER_TX_ACTIONS_REINDEX_LAST_BLOCKThe last block of a block range for historical indexing or reindexing of tx actions. Implemented in #6582.Version: v5.1.0+
Default: (empty)
Applications: Indexer
INDEXER_TX_ACTIONS_REINDEX_PROTOCOLSComma-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 an 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.Version: v5.1.0+
Default: (empty)
Applications: Indexer
INDEXER_TX_ACTIONS_AAVE_V3_POOL_CONTRACTPool contract address for Aave v3 protocol. If not defined, Aave transaction actions are ignored by the indexer. Implemented in #7185.Version: v5.1.3+
Default: (empty)
Applications: Indexer
INDEXER_TX_ACTIONS_UNISWAP_V3_FACTORY_CONTRACTUniswapV3Factory contract address. Implemented in #7312.Version: v5.1.4+
Default: 0x1F98431c8aD98523631AE4a59f267346ea31F984
Applications: Indexer
INDEXER_TX_ACTIONS_UNISWAP_V3_NFT_POSITION_MANAGER_CONTRACTNonfungiblePositionManager contract address for Uniswap v3. Implemented in #7312.Version: v5.1.4+
Default: 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
Applications: Indexer
INDEXER_CATCHUP_MISSING_RANGES_BATCH_SIZEBatch size for missing ranges collector. Implemented in #6583.Version: v5.0.0+
Default: 100000
Applications: Indexer
MIN_MISSING_BLOCK_NUMBER_BATCH_SIZEBatch size for min missing block number updater. Implemented in #6583.Version: v5.0.0+
Default: 100000
Applications: API, Indexer
INDEXER_INTERNAL_TRANSACTIONS_TRACER_TYPETracer 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, #7513Version: v5.1.0+
Default: call_tracer
Applications: Indexer
INDEXER_TOKEN_INSTANCE_RETRY_MAX_REFETCH_INTERVALMaximum interval between attempts to fetch token instance metadata. Time format. Implemented in #10027.Version: v6.8.0+
Default: 168h
Applications: Indexer
INDEXER_TOKEN_INSTANCE_RETRY_EXPONENTIAL_TIMEOUT_BASEBase to calculate exponential timeout. Implemented in #10027.Version: v6.8.0+
Default: 2
Applications: Indexer
INDEXER_TOKEN_INSTANCE_RETRY_EXPONENTIAL_TIMEOUT_COEFFCoefficient to calculate exponential timeout. Implemented in #10027.Version: v6.8.0+
Default: 100
Applications: Indexer
INDEXER_TOKEN_INSTANCE_RETRY_CONCURRENCYConcurrency for retry token instance fetcher. Implemented in #7286.Version: v5.1.4+
Default: 10
Applications: Indexer
INDEXER_TOKEN_INSTANCE_REALTIME_CONCURRENCYConcurrency for realtime token instance fetcher. Implemented in #7286.Version: v5.1.4+
Default: 10
Applications: Indexer
INDEXER_TOKEN_INSTANCE_SANITIZE_CONCURRENCYConcurrency for sanitize token instance fetcher. Implemented in #7286.Version: v5.1.4+
Default: 10
Applications: Indexer
INDEXER_TOKEN_INSTANCE_REFETCH_CONCURRENCYConcurrency for the Token instance fetcher, which re-fetches NFT collections marked to refetch. Implemented in #10263.Version: v5.1.4+
Default: 10
Applications: Indexer
INDEXER_DISABLE_TOKEN_INSTANCE_RETRY_FETCHERIf true, retry token instance fetcher doesn’t run.Version: v5.1.4+
Default: false
Applications: Indexer
INDEXER_DISABLE_TOKEN_INSTANCE_REALTIME_FETCHERIf true, realtime token instance fetcher doesn’t run.Version: v5.1.4+
Default: false
Applications: Indexer
INDEXER_TOKEN_INSTANCE_REALTIME_RETRY_ENABLEDIf true, realtime token instance fetcher will retry once on 404 and 500 error. Implemented in #10036.Version: v6.6.0+
Default: false
Applications: Indexer
INDEXER_TOKEN_INSTANCE_REALTIME_RETRY_TIMEOUTTimeout for retry set by INDEXER_TOKEN_INSTANCE_REALTIME_RETRY_ENABLED. Time format. Implemented in #10036.Version: v6.6.0+
Default: 5s
Applications: Indexer
INDEXER_DISABLE_TOKEN_INSTANCE_SANITIZE_FETCHERIf true, sanitize token instance fetcher doesn’t runVersion: v5.1.4+
Default: false
Applications: Indexer
INDEXER_DISABLE_TOKEN_INSTANCE_REFETCH_FETCHERIf true, the Token instance fetcher, which re-fetches NFT collections marked to refetch, doesn’t run. Implemented in #10263.Version: v7.0.0+
Default: false
Applications: Indexer
INDEXER_TOKEN_INSTANCE_USE_BASE_URI_RETRYIf true, and request to tokenURI(tokenId) failed with VM execution error, Blockscout will make request to baseURI and try to request metadata from baseURI + tokenIdVersion: v6.2.0+
Default: false
Applications: Indexer
INDEXER_TOKEN_INSTANCE_CIDR_BLACKLISTList of IP addresses in CIDR format to block when fetching token instance metadata. Example: "0.0.0.0/32,192.168.0.0/16". Implemented in #12102.Version: v8.0.0+
Default: (empty)
Applications: Indexer
INDEXER_TOKEN_INSTANCE_HOST_FILTERING_ENABLEDIf false, the URL from which metadata is fetched will not be resolved to an IP address, and the IP address will not be checked against the blacklist. Implemented in #12102.Version: v8.0.0+
Default: true
Applications: Indexer
INDEXER_TOKEN_INSTANCE_ALLOWED_URI_PROTOCOLSList of allowed URI protocols (schemes) for requests when fetching token instance metadata. Implemented in #12102.Version: v8.0.0+
Default: http,https
Applications: Indexer
INDEXER_REALTIME_FETCHER_MAX_GAPMax gap between consecutive latest blocks that will be filled by realtime fetcher. Implemented in #7393Version: v5.1.5+
Default: 1000
Applications: Indexer
INDEXER_REALTIME_FETCHER_POLLING_PERIODPeriod between polling the latest block in realtime fetcher. Time format. Implemented in #11783Version: v7.0.0+
Default: (empty)
Applications: Indexer
INDEXER_DISABLE_WITHDRAWALS_FETCHERIf true, withdrawals fetcher is disabled. Implemented in #6694.Version: v5.1.5+
Default: true
Applications: Indexer
WITHDRAWALS_FIRST_BLOCKThe block number, where import of withdrawals by catchup fetcher begins from. Should be the block where withdrawals upgrade occurred on the chain. Implemented in #6694.Version: v5.1.5+
Default: (empty)
Applications: Indexer
INDEXER_CATCHUP_BLOCK_INTERVALInterval between blocks catchup fetcher tasks. Implemented in #7489.Version: v5.1.5+
Default: 0s
Applications: Indexer
INDEXER_FETCHER_INIT_QUERY_LIMITLimit for all fetchers init queries. Implemented in #7697.Version: v5.2.0+
Default: 100
Applications: Indexer
INDEXER_TOKEN_INSTANCE_RETRY_BATCH_SIZEBatch size for retry token instance fetcher. Implemented in #8313Version: v5.2.3+
Default: 10
Applications: Indexer
INDEXER_TOKEN_INSTANCE_REALTIME_BATCH_SIZEBatch size for realtime token instance fetcher. Implemented in #8313.Version: v5.2.3+
Default: 1
Applications: Indexer
INDEXER_TOKEN_INSTANCE_SANITIZE_BATCH_SIZEBatch size for sanitize token instance fetcher. Implemented in #8313.Version: v5.2.3+
Default: 10
Applications: Indexer
INDEXER_TOKEN_INSTANCE_REFETCH_BATCH_SIZEBatch size for the Token instance fetcher, which re-fetches NFT collections marked to refetch. Implemented in #8313.Version: v5.2.3+
Default: 10
Applications: Indexer
INDEXER_TOKEN_BALANCES_FETCHER_INIT_QUERY_LIMITLimit for token balance fetcher init queries. Implemented in #8459.Version: v5.2.3+
Default: 100000
Applications: Indexer
INDEXER_COIN_BALANCES_FETCHER_INIT_QUERY_LIMITLimit for coin balance fetcher init queries. Implemented in #7996.Version: v5.3.0+
Default: 2000
Applications: Indexer
INDEXER_DISABLE_TOKEN_INSTANCE_ERC_1155_SANITIZE_FETCHERIf true, erc-1155-sanitize token instance fetcher doesn’t run. Implemented in #9226.Version: v6.2.0+
Default: false
Applications: Indexer
INDEXER_DISABLE_TOKEN_INSTANCE_ERC_721_SANITIZE_FETCHERIf true, erc-721-sanitize token instance fetcher doesn’t run. Implemented in #9226.Version: v6.2.0+
Default: false
Applications: Indexer
INDEXER_EMPTY_BLOCKS_SANITIZER_INTERVALInterval for empty block sanitizer. Implemented in #8658Version: v5.3.0+
Default: 5m
Applications: Indexer
ETHEREUM_JSONRPC_ARCHIVE_BALANCES_WINDOWMax 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 #8673Version: v5.3.1+
Default: 200
Applications: API, Indexer
DISABLE_CATCHUP_INDEXERIf true, catchup fetcher doesn’t run.Version: v5.3.2+
Default: false
Applications: Indexer
TRACE_BLOCK_RANGESBlock ranges for traceable blocks. Example: TRACE_BLOCK_RANGES="1..3,123..500,30..50,500..latest". Implemented in #8960Version: v5.4.0+
Default: (empty)
Applications: API, Indexer
ETHEREUM_JSONRPC_GETH_TRACE_BY_BLOCKEnable tracing by block for geth variant. Implemented in #9072Version: v6.1.0+
Default: false
Applications: Indexer
INDEXER_GRACEFUL_SHUTDOWN_PERIODTime that will be given to the block fetchers when stopping the application before they are killed. Implemented in #9729Version: v6.5.0+
Default: 5m
Applications: Indexer
MISSING_BALANCE_OF_TOKENS_WINDOW_SIZEMinimal blocks count until the next token balance request will be executed for tokens that doesn’t implement balanceOf function. Implemented in #10142Version: v6.8.0+
Default: 100
Applications: Indexer
ETHEREUM_JSONRPC_GETH_ALLOW_EMPTY_TRACESAllow transactions to not have internal transactions. Implemented in #10200Version: v6.8.0+
Default: false
Applications: Indexer
INDEXER_DISABLE_REPLACED_TRANSACTION_FETCHERIf true, Indexer.Fetcher.ReplacedTransaction fetcher doesn’t run.Version: v6.8.0+
Default: false
Applications: Indexer
INDEXER_INTERNAL_TRANSACTIONS_FETCH_ORDEROrder of fetching internal transactions from node. Possible values: asc, desc. Implemented in #10912Version: v6.9.0+
Default: asc
Applications: Indexer
INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_ENABLEDIf true, Indexer.Utils.EventNotificationsCleaner process starts. Implemented in #12738Version: master
Default: true
Applications: Indexer
INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_INTERVALInterval between DB event notifications cleanup. Time format. Implemented in #12738Version: master
Default: 2m
Applications: Indexer
INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_MAX_AGEMax age of DB event notifications before they are cleaned up. Time format. Implemented in #12738Version: master
Default: 5m
Applications: Indexer
INDEXER_SIGNED_AUTHORIZATION_STATUS_BATCH_SIZEBatch size (number of blocks) for EIP7702 authorizations status fetcher. Implemented in #12451.Version: master
Default: 10
Applications: Indexer

DB Migrations & Sanitizer Management

VariableDescriptionParameters
MIGRATION_SHRINK_INTERNAL_TRANSACTIONS_BATCH_SIZEBatch size of the shrink internal transactions migration. Note: before release “v6.8.0”, the default value was 1000. Implemented in #10567, changed default value in #10689. Renamed in #11798.Version: v7.0.0+
Default: 100
Applications: API, Indexer
MIGRATION_SHRINK_INTERNAL_TRANSACTIONS_CONCURRENCYConcurrency of the shrink internal transactions migration. Implemented in #10567. Renamed in #11798.Version: v7.0.0+
Default: 10
Applications: API, Indexer
MIGRATION_TOKEN_INSTANCE_OWNER_CONCURRENCYConcurrency of new fields backfiller implemented in #8386. Renamed in #11798.Version: v7.0.0+
Default: 5
Applications: API, Indexer
MIGRATION_TOKEN_INSTANCE_OWNER_BATCH_SIZEBatch size of new fields backfiller implemented in #8386. Renamed in #11798.Version: v7.0.0+
Default: 50
Applications: API, Indexer
MIGRATION_TOKEN_INSTANCE_OWNER_ENABLEDEnable of backfiller from #8386 implemented in #8752. Renamed in #11798.Version: v7.0.0+
Default: false
Applications: API, Indexer
MIGRATION_TRANSACTIONS_TABLE_DENORMALIZATION_BATCH_SIZENumber of transactions to denormalize (add block timestamp and consensus) in the batch. Renamed in #11798.Version: v7.0.0+
Default: 500
Applications: API, Indexer
MIGRATION_TRANSACTIONS_TABLE_DENORMALIZATION_CONCURRENCYNumber of parallel denormalization transaction batches processing. Renamed in #11798.Version: v7.0.0+
Default: 10
Applications: API, Indexer
MIGRATION_TOKEN_TRANSFER_TOKEN_TYPE_BATCH_SIZENumber of token transfers to denormalize (add token_type) in the batch. Renamed in #11798.Version: v7.0.0+
Default: 100
Applications: API, Indexer
MIGRATION_TOKEN_TRANSFER_TOKEN_TYPE_CONCURRENCYNumber of parallel denormalization token transfer batches processing. Renamed in #11798.Version: v7.0.0+
Default: 1
Applications: API, Indexer
MIGRATION_SANITIZE_INCORRECT_NFT_BATCH_SIZENumber of token transfers to sanitize in the batch. Renamed in #11798.Version: v7.0.0+
Default: 100
Applications: API, Indexer
MIGRATION_SANITIZE_INCORRECT_NFT_CONCURRENCYNumber of parallel sanitizing token transfer batches processing. Renamed in #11798.Version: v7.0.0+
Default: 1
Applications: API, Indexer
MIGRATION_SANITIZE_INCORRECT_NFT_TIMEOUTTimeout between sanitizing token transfer batches processing. Implemented in #11358. Renamed in #11798.Version: v7.0.0+
Default: 0
Applications: API, Indexer
MIGRATION_SANITIZE_INCORRECT_WETH_BATCH_SIZENumber of token transfers to sanitize in the batch. Implemented in #10134. Renamed in #11798.Version: v7.0.0+
Default: 100
Applications: API, Indexer
MIGRATION_SANITIZE_INCORRECT_WETH_CONCURRENCYNumber of parallel sanitizing token transfer batches processing. Implemented in #10134. Renamed in #11798.Version: v7.0.0+
Default: 1
Applications: API, Indexer
MIGRATION_SANITIZE_INCORRECT_WETH_TIMEOUTTimeout between sanitizing token transfer batches processing. Implemented in #11358. Renamed in #11798.Version: v7.0.0+
Default: 0
Applications: API, Indexer
MIGRATION_REINDEX_INTERNAL_TRANSACTIONS_STATUS_BATCH_SIZENumber of internal transactions to reindex in the batch. Implemented in #11358. Renamed in #11798.Version: v7.0.0+
Default: 100
Applications: API, Indexer
MIGRATION_REINDEX_INTERNAL_TRANSACTIONS_STATUS_CONCURRENCYNumber of parallel reindexing internal transaction batches processing. Implemented in #11358. Renamed in #11798.Version: v7.0.0+
Default: 1
Applications: API, Indexer
MIGRATION_REINDEX_INTERNAL_TRANSACTIONS_STATUS_TIMEOUTTimeout between reindexing internal transaction batches processing. Implemented in #11358. Renamed in #11798.Version: v7.0.0+
Default: 0
Applications: API, Indexer
MIGRATION_REINDEX_DUPLICATED_INTERNAL_TRANSACTIONS_BATCH_SIZENumber of internal transactions to reindex in the batch. Implemented in #12394.Version: v8.1.0+
Default: 100
Applications: Indexer
MIGRATION_REINDEX_DUPLICATED_INTERNAL_TRANSACTIONS_CONCURRENCYNumber of parallel reindexing internal transaction batches processing. Implemented in #12394.Version: v8.1.0+
Default: 1
Applications: Indexer
MIGRATION_REINDEX_DUPLICATED_INTERNAL_TRANSACTIONS_TIMEOUTTimeout between reindexing internal transaction batches processing. Implemented in #12394.Version: v8.1.0+
Default: 0
Applications: Indexer
MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_BATCH_SIZENumber of blocks to reindex in the batch. Implemented in #12559.Version: master
Default: 10
Applications: Indexer
MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_CONCURRENCYNumber of parallel reindexing block batches processing. Implemented in #12559.Version: master
Default: 1
Applications: Indexer
MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_TIMEOUTTimeout between reindexing block batches processing. Implemented in #12559.Version: master
Default: 0
Applications: Indexer
MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_ENABLEDEnable reindex blocks with missing transactions migration. Implemented in #12559.Version: master
Default: false
Applications: Indexer
MIGRATION_RESTORE_OMITTED_WETH_TOKEN_TRANSFERS_BATCH_SIZENumber of logs to process in the batch. Implemented in #10466Version: v6.8.0+
Default: 50
Applications: API, Indexer
MIGRATION_RESTORE_OMITTED_WETH_TOKEN_TRANSFERS_CONCURRENCYNumber of parallel logs batches processing. Implemented in #10466Version: v6.8.0+
Default: 5
Applications: API, Indexer
MIGRATION_RESTORE_OMITTED_WETH_TOKEN_TRANSFERS_TIMEOUTTime interval between checks if queue is not empty. The same timeout multiplied by 2 used between checks if queue is not full. Implemented in #10466Version: v6.8.0+
Default: 250ms
Applications: API, Indexer
MIGRATION_SANITIZE_DUPLICATED_LOG_INDEX_LOGS_BATCH_SIZENumber of logs to process in the batch. Implemented in #11055Version: v6.9.0+
Default: 500
Applications: API, Indexer
MIGRATION_SANITIZE_DUPLICATED_LOG_INDEX_LOGS_CONCURRENCYNumber of parallel logs batches processing. Implemented in #11055Version: v6.9.0+
Default: 10
Applications: API, Indexer
MIGRATION_REFETCH_CONTRACT_CODES_BATCH_SIZENumber of addresses to process in the batch. Implemented in #11055Version: v6.9.0+
Default: 100
Applications: API, Indexer
MIGRATION_REFETCH_CONTRACT_CODES_CONCURRENCYNumber of parallel addresses batches processing. Implemented in #11055Version: v6.9.0+
Default: 5
Applications: API, Indexer
MIGRATION_SANITIZE_VERIFIED_ADDRESSES_DISABLEDControls whether the migration that sanitizes verified addresses is disabled. If set to true, the migration will not run; if set to false, the migration will proceed. Implemented in #11727.Version: v7.0.0+
Default: false
Applications: API, Indexer
MIGRATION_SANITIZE_VERIFIED_ADDRESSES_BATCH_SIZESpecifies the number of addresses to process in each batch during the sanitize verified addresses migration. Implemented in #11727.Version: v7.0.0+
Default: 500
Applications: API, Indexer
MIGRATION_SANITIZE_VERIFIED_ADDRESSES_CONCURRENCYDetermines how many concurrent processes will be used during the sanitize verified addresses migration. Implemented in #11727.Version: v7.0.0+
Default: 1
Applications: API, Indexer
MIGRATION_SANITIZE_VERIFIED_ADDRESSES_TIMEOUTDefines the timeout before processing each batch in the sanitize verified addresses migration. Follows the time format. Implemented in #11727.Version: v7.0.0+
Default: 0s
Applications: API, Indexer
MIGRATION_HEAVY_INDEX_OPERATIONS_CHECK_INTERVALInterval between status checks of heavy db operation like index creation or dropping. Time format. Implemented in #11604Version: v7.0.0+
Default: 10m
Applications: API, Indexer
MIGRATION_TOKEN_INSTANCE_ERC_1155_SANITIZE_CONCURRENCYConcurrency for erc-1155-sanitize token instance fetcher. Implemented in #9226. Default value and name changed in #11543Version: v7.0.0+
Default: 1
Applications: Indexer
MIGRATION_TOKEN_INSTANCE_ERC_721_SANITIZE_CONCURRENCYConcurrency for erc-721-sanitize token instance fetcher. Implemented in #9226. Name changed in #11543Version: v7.0.0+
Default: 2
Applications: Indexer
MIGRATION_TOKEN_INSTANCE_ERC_1155_SANITIZE_BATCH_SIZEBatch size for erc-1155-sanitize token instance fetcher. Implemented in #9226. Default value and name changed in #11543Version: v7.0.0+
Default: 500
Applications: Indexer
MIGRATION_TOKEN_INSTANCE_ERC_721_SANITIZE_BATCH_SIZEBatch size for erc-721-sanitize token instance fetcher. Implemented in #9226. Default value and name changed in #11543Version: v7.0.0+
Default: 50
Applications: Indexer
MIGRATION_TOKEN_INSTANCE_ERC_721_SANITIZE_TOKENS_BATCH_SIZETokens batch size for erc-721-sanitize token instance fetcher. Implemented in #9226. Name changed in #11543Version: v7.0.0+
Default: 100
Applications: Indexer
MIGRATION_SMART_CONTRACT_LANGUAGE_DISABLEDIf set to true, the migration to the language field in the smart_contracts table will not start. If set to false, the migration proceeds as normal. Implemented in #11813.Version: v8.0.0+
Default: false
Applications: Indexer
MIGRATION_SMART_CONTRACT_LANGUAGE_BATCH_SIZEDefines the number of records to be processed in each batch when migrating the language field in the smart_contracts table. Implemented in #11813.Version: v8.0.0+
Default: 100
Applications: Indexer
MIGRATION_SMART_CONTRACT_LANGUAGE_CONCURRENCYSpecifies how many concurrent processes can handle the language field migration. Implemented in #11813.Version: v8.0.0+
Default: 1
Applications: Indexer
MIGRATION_BACKFILL_METADATA_URL_DISABLEDIf set to true, the backfiller of metadata_url field in the token_instances table will not start. If set to false, the migration proceeds as normal. Implemented in #12102.Version: v8.0.0+
Default: false
Applications: Indexer
MIGRATION_BACKFILL_METADATA_URL_BATCH_SIZEDefines the number of records to be processed in each batch when backfilling the metadata_url field in the token_instances table. Implemented in #12102.Version: v8.0.0+
Default: 100
Applications: Indexer
MIGRATION_BACKFILL_METADATA_URL_CONCURRENCYSpecifies how many concurrent processes can handle the metadata_url field backfilling. Implemented in #12102.Version: v8.0.0+
Default: 5
Applications: Indexer
MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_CONCURRENCYSpecifies how many concurrent processes can handle the recovery WETH token transfers migration. Implemented in #12065.Version: v8.0.0+
Default: 5
Applications: Indexer
MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_BATCH_SIZEDefines the number of records to be processed in each batch when recovery WETH token transfers. Implemented in #12065.Version: v8.0.0+
Default: 50
Applications: Indexer
MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_TIMEOUTDefines the timeout between processing each batch (batch_size * concurrency) in the recovery WETH token transfers migration. Follows the time format. Implemented in #12065.Version: v8.0.0+
Default: 0s
Applications: Indexer
MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_BLOCKS_BATCH_SIZESpecifies the block range size selected for the recovery of WETH token transfer migration. Implemented in #12065.Version: v8.0.0+
Default: 100000
Applications: Indexer
MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_HIGH_VERBOSITYIf set to true, enables high verbosity logging (logs each transaction hash, where missed transfers were restored) during the recovery of WETH token transfer migration. Implemented in #12065.Version: v8.0.0+
Default: true
Applications: Indexer
MIGRATION_MERGE_ADJACENT_MISSING_BLOCK_RANGES_BATCH_SIZESpecifies the missing block range batch size selected for the merge migration. Implemented in #12778.Version: master
Default: 100
Applications: Indexer

Market

VariableDescriptionParameters
DISABLE_MARKETDisables all fetchers and any market data displaying. Setting this to true will disable all market-related functionality. Implemented in #11844.Version: v8.0.0+
Default: false
Applications: API, Indexer
MARKET_NATIVE_COIN_SOURCESource for realtime native coin price fetching. Possible values are: coin_gecko, coin_market_cap, crypto_rank, or mobula. Useful when multiple coin IDs are configured and you want to explicitly select the source. Implemented in #11844.Version: v8.0.0+
Default: coin_gecko
Applications: API
MARKET_SECONDARY_COIN_SOURCESource for realtime secondary coin fetching. Possible values are: coin_gecko, coin_market_cap, crypto_rank, or mobula. Useful when multiple secondary coin IDs are configured. Implemented in #11844.Version: v8.0.0+
Default: coin_gecko
Applications: API
MARKET_TOKENS_SOURCESets the source for tokens price fetching. Available values are coin_gecko, crypto_rank, mobula. Implemented in #11844.Version: v8.0.0+
Default: coin_gecko
Applications: Indexer
MARKET_NATIVE_COIN_HISTORY_SOURCESets the source for price history fetching. Available values are crypto_compare, coin_gecko, mobula, coin_market_cap and crypto_rank. Implemented in #11844.Version: v8.0.0+
Default: crypto_compare
Applications: Indexer
MARKET_SECONDARY_COIN_HISTORY_SOURCESets the source for secondary coin price history fetching. Available values are crypto_compare, coin_gecko, mobula, coin_market_cap and crypto_rank. Implemented in #11844.Version: v8.0.0+
Default: crypto_compare
Applications: Indexer
MARKET_MARKET_CAP_HISTORY_SOURCESets the source for market cap history fetching. Available values are coin_gecko and coin_market_cap. Implemented in #11844.Version: v8.0.0+
Default: coin_gecko
Applications: Indexer
MARKET_TVL_HISTORY_SOURCESets the source for TVL history fetching. Available value is defillama. Implemented in #11844.Version: v8.0.0+
Default: defillama
Applications: Indexer
MARKET_COINGECKO_PLATFORM_IDCoinGecko platform id for which token prices are fetched, see full list in /asset_platforms endpoint. Examples: “ethereum”, “optimistic-ethereum”. Implemented in #11844.Version: v8.0.0+
Default: ethereum
Applications: Indexer
MARKET_COINGECKO_BASE_URLIf set, overrides the Coingecko base URL. Implemented in #11844.Version: v8.0.0+
Default: https://api.coingecko.com/api/v3
Applications: API, Indexer
MARKET_COINGECKO_BASE_PRO_URLIf set, overrides the Coingecko Pro base URL. Implemented in #11844.Version: v8.0.0+
Default: https://pro-api.coingecko.com/api/v3
Applications: API, Indexer
MARKET_COINGECKO_API_KEYCoinGecko API key. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_COINGECKO_COIN_IDSets CoinGecko coin ID. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_COINGECKO_SECONDARY_COIN_IDSets CoinGecko coin ID for secondary coin market chart. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_COINMARKETCAP_BASE_URLIf set, overrides the CoinMarketCap base URL (Free and Pro). Implemented in #11844.Version: v8.0.0+
Default: https://pro-api.coinmarketcap.com/v2
Applications: API, Indexer
MARKET_COINMARKETCAP_API_KEYCoinMarketCap API key. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_COINMARKETCAP_COIN_IDCoinMarketCap coin id. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_COINMARKETCAP_SECONDARY_COIN_IDCoinMarketCap coin id for secondary coin. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_CRYPTOCOMPARE_BASE_URLIf set, overrides the CryptoCompare base URL. Implemented in #11844.Version: v8.0.0+
Default: https://min-api.cryptocompare.com
Applications: API, Indexer
MARKET_CRYPTOCOMPARE_COIN_SYMBOLCryptoCompare coin symbol for native coin (e.g., “OP” for Optimism). CryptoCompare uses symbols instead of IDs. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: Indexer
MARKET_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOLCryptoCompare coin symbol for secondary coin market chart. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: Indexer
MARKET_CRYPTORANK_PLATFORM_IDSets Cryptorank platform ID. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: Indexer
MARKET_CRYPTORANK_BASE_URLIf set, overrides the Cryptorank API url. Implemented in #11844.Version: v8.0.0+
Default: https://api.cryptorank.io/v1/
Applications: API, Indexer
MARKET_CRYPTORANK_API_KEYCryptorank API key. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_CRYPTORANK_COIN_IDSets Cryptorank coin ID. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_CRYPTORANK_SECONDARY_COIN_IDSets Cryptorank coin ID for secondary coin. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_DEFILLAMA_COIN_IDDefiLlama coin id. Use the name field from the /v2/chains endpoint response (e.g., “OP Mainnet” for Optimism). Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: Indexer
MARKET_MOBULA_PLATFORM_IDMobula platform ID. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: Indexer
MARKET_MOBULA_BASE_URLIf set, overrides the Mobula API base URL. Implemented in #11844.Version: v8.0.0+
Default: https://api.mobula.io/api/1
Applications: API, Indexer
MARKET_MOBULA_API_KEYMobula API key. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_MOBULA_COIN_IDSet Mobula coin ID. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_MOBULA_SECONDARY_COIN_IDSet Mobula coin ID for secondary coin. Implemented in #11844.Version: v8.0.0+
Default: (empty)
Applications: API, Indexer
MARKET_COIN_FETCHER_ENABLEDIf false disables fetching of realtime native coin price. Implemented in #11844.Version: v8.0.0+
Default: true
Applications: API
MARKET_COIN_CACHE_PERIODCache period for coin exchange rates. Implemented in #11844.Version: v8.0.0+
Default: 10m
Applications: API
MARKET_TOKENS_FETCHER_ENABLEDIf false disables fetching of token prices. Implemented in #11844.Version: v8.0.0+
Default: true
Applications: Indexer
MARKET_TOKENS_INTERVALInterval 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 #11844.Version: v8.0.0+
Default: 10s
Applications: Indexer
MARKET_TOKENS_REFETCH_INTERVALInterval between refetching token prices, responsible for the relevance of prices. Time format. Implemented in #11844.Version: v8.0.0+
Default: 1h
Applications: Indexer
MARKET_TOKENS_MAX_BATCH_SIZEBatch size of a single token price request. Implemented in #11844.Version: v8.0.0+
Default: 500
Applications: Indexer
MARKET_HISTORY_FETCHER_ENABLEDIf false disables fetching of marked data history. Implemented in #11844.Version: v8.0.0+
Default: true
Applications: Indexer
MARKET_HISTORY_FETCH_INTERVALInterval to update data for the last day in the market history table. Introduced in #9197.Version: v6.1.0+
Default: 1h
Applications: API, Indexer
MARKET_HISTORY_FIRST_FETCH_DAY_COUNTInitial number of days to fetch for market history. Implemented in #11844.Version: v8.0.0+
Default: 365
Applications: Indexer

Cache Management

See the Time format section for more information on variable formatting.
VariableDescriptionParameters
CACHE_TXS_COUNT_PERIODTime interval to restart the task that calculates the total txs count. Starting from release v6.8.0+, if the value is not set, ttl value gradually increases until the default value with growth of the block numbers.Version: v4.1.3+
Default: 2h
Applications: API, Indexer
CACHE_ADDRESS_COUNT_PERIODInterval for restarting the task that calculates the total number of addresses.Version: v8.0.0+
Default: 30m
Applications: API, Indexer
CACHE_ADDRESS_SUM_PERIODTime to live of addresses sum (except burn address) cache. Time format. Starting from release v6.8.0+, if the value is not set, ttl value gradually increases until the default value with growth of the block numbers. Introduced in #2862.Version: v4.1.3+
Default: 1h
Applications: API, Indexer
CACHE_TOTAL_GAS_USAGE_PERIODInterval to restart the task which calculates the total gas usage. Starting from release v6.8.0+, if the value is not set, ttl value gradually increases until the default value with growth of the block numbers.Version: v4.1.3+
Default: 2h
Applications: API, Indexer
CACHE_PBO_COUNT_PERIODTime interval to restart the task which calculates the total pending_block_operations count.Version: v5.2.0+
Default: 20m
Applications: API, Indexer
CACHE_ADDRESS_TRANSACTIONS_GAS_USAGE_COUNTER_PERIODInterval to restart the task which calculates gas usage at the address.Version: v4.1.3+
Default: 30m
Applications: API, Indexer
CACHE_TOKEN_HOLDERS_COUNTER_PERIODInterval to restart the task which calculates holders count of the token.Version: v4.1.3+
Default: 1h
Applications: API, Indexer
CACHE_TOKEN_TRANSFERS_COUNTER_PERIODInterval to restart the task which calculates transfers count of the token.Version: v4.1.3+
Default: 1h
Applications: API, Indexer
TOKEN_METADATA_UPDATE_INTERVALInterval to restart the task which updates token metadata.Version: v2.0.1+
Default: 48h
Applications: API, Indexer
TOKEN_COUNTERS_UPDATE_INTERVALInterval to restart the task which updates token counters (transfers count and holders count).Version: v9.0.0+
Default: 3h
Applications: Indexer
CACHE_AVERAGE_BLOCK_PERIODTime to initiate first calculation and caching of average block period after start/re-start of the application.Version: v4.1.3+
Default: 30m
Applications: API, Indexer
CACHE_MARKET_HISTORY_PERIODUpdate of market history cache.Version: v4.1.3+
Default: 6h
Applications: API, Indexer
CACHE_ADDRESS_TRANSACTIONS_COUNTER_PERIODTime to live of address’ transaction counter. Time format. Introduced in #3330.Version: v3.4.0+
Default: 1h
Applications: API, Indexer
CACHE_ADDRESS_TOKENS_USD_SUM_PERIODManaging of cache invalidation period for the sum of USD value of tokens per tokens’ holder address.Version: v3.5.0+
Default: 1h
Applications: API, Indexer
TOKEN_BALANCE_ON_DEMAND_FETCHER_THRESHOLDA threshold to invalidate token balance cache.Version: v5.1.2+
Default: 1h
Applications: API, Indexer
COIN_BALANCE_ON_DEMAND_FETCHER_THRESHOLDA threshold to invalidate coin balance cache.Version: v5.1.2+
Default: 1h
Applications: API, Indexer
CONTRACT_CODE_ON_DEMAND_FETCHER_THRESHOLDAn initial threshold (for exponential backoff) to fetch smart-contract bytecode on-demand. Implemented in #9708.Version: v6.4.0+
Default: 5s
Applications: API, Indexer
CACHE_ADDRESS_TOKEN_TRANSFERS_COUNTER_PERIODInterval to restart the task, which calculates the number of token transfers at the address. Implemented in #4699.Version: v4.0.0+
Default: 1h
Applications: API, Indexer
CACHE_BLOCK_COUNT_PERIODTime to live of blocks with consensus count cache. Starting from release v6.8.0+, if the value is not set, ttl value gradually increases until the default value with growth of the block numbers. Introduced in #1876.Version: v4.1.3+
Default: 2h
Applications: API, Indexer
CACHE_TOTAL_GAS_USAGE_COUNTER_ENABLEDif true, enables cache for total gas usage counter.Version: v5.1.3+
Default: false
Applications: API, Indexer
CACHE_TRANSACTIONS_24H_STATS_PERIODInterval to update data for the last 24 hours transactions stats. Introduced in #9483.Version: v6.3.0+
Default: 1h
Applications: API, Indexer
CACHE_FRESH_PENDING_TRANSACTIONS_COUNTER_PERIODInterval to update count of pending transactions that appeared less than half an hour ago. Introduced in #9483.Version: v6.3.0+
Default: 5m
Applications: API, Indexer
CACHE_OPTIMISM_LAST_OUTPUT_ROOT_SIZE_COUNTER_PERIODInterval to update data for the last output root size counter. Introduced in #9532.Version: v6.3.0+
Default: 5m
Applications: API, Indexer

Gas Price Oracle

VariableDescriptionParameters
GAS_PRICE_ORACLE_NUM_OF_BLOCKSGas price oracle: number of blocks to calculate average gas price fromVersion: v4.1.4+
Default: 200
Applications: API, Indexer
GAS_PRICE_ORACLE_SAFELOW_PERCENTILEGas price oracle: safelow percentileVersion: v4.1.4+
Default: 35
Applications: API, Indexer
GAS_PRICE_ORACLE_AVERAGE_PERCENTILEGas price oracle: average percentileVersion: v4.1.4+
Default: 60
Applications: API, Indexer
GAS_PRICE_ORACLE_FAST_PERCENTILEGas price oracle: fast percentileVersion: v4.1.4+
Default: 90
Applications: API, Indexer
GAS_PRICE_ORACLE_CACHE_PERIODGas price oracle: period of gas prices update.Version: v4.1.4+
Default: 30s
Applications: API, Indexer
GAS_PRICE_ORACLE_SIMPLE_TRANSACTION_GASGas price oracle: amount of gas for a simple coin transfer. Introduced in #9044.Version: v6.0.0+
Default: 21000
Applications: API, Indexer
GAS_PRICE_ORACLE_SAFELOW_TIME_COEFFICIENTAverage block time multiplied by this coefficient for safelow gas price when time from pending transactions is not available. Floats may be used. Introduced in #9582.Version: v6.3.0+
Default: 5
Applications: API, Indexer
GAS_PRICE_ORACLE_AVERAGE_TIME_COEFFICIENTAverage block time multiplied by this coefficient for average gas price when time from pending transactions is not available. Floats may be used. Introduced in #9582.Version: v6.3.0+
Default: 3
Applications: API, Indexer
GAS_PRICE_ORACLE_FAST_TIME_COEFFICIENTAverage block time multiplied by this coefficient for fast gas price when time from pending transactions is not available. Floats may be used. Introduced in #9582.Version: v6.3.0+
Default: 1
Applications: API, Indexer

Main Page Dashboard

VariableDescriptionParameters
GAS_PRICEGas price in Gwei. If the variable is present, gas price displays on the main page.Version: v3.3.2+
Default: (empty)
Applications: API
TXS_STATS_ENABLEDDisables or enables txs per day stats gathering.Version: v5.1.3+
Default: true
Applications: API
SHOW_PRICE_CHARTDisables or enables price and market cap of coin charts on the main page.Version: v3.1.2+
Default: false
Applications: API
SHOW_PRICE_CHART_LEGENDShowa price and market cap values under the chart even if price chart is not enabled via SHOW_PRICE_CHART env variable.Version: v5.1.4+
Default: false
Applications: API
SHOW_TXS_CHARTDisables or enables txs count per day chart on the main page.Version: v3.1.2+
Default: true
Applications: API
TXS_HISTORIAN_INIT_LAGThe initial delay in txs count history fetching in order to display txs count per day history chart on the main page. Time format.Version: v3.1.2+
Default: 0
Applications: API
TXS_STATS_DAYS_TO_COMPILE_AT_INITNumber 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.Version: v3.1.2+
Default: 40
Applications: API
VariableDescriptionParameters
LOGOEnvironment variable for the header logo image location. The logo files names for different chains can be found here.Version: all
Default: /images/blockscout_logo.svg
Applications: API
SHOW_TESTNET_LABELEnables testnet label right after logo in the navigation panel. Implemented in #5732Version: v4.1.6+
Default: (empty)
Applications: API
TESTNET_LABEL_TEXTThe text inside the test label. Implemented in #5732Version: v4.1.6+
Default: Testnet
Applications: API
SUPPORTED_CHAINSAn array of supported chains displayed in the chains dropdown. This var was introduced in this PR #1900 and looks like an array of JSON objects.Version: v2.0.0+
Default: [ { 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 } ]
Applications: API
APPS_MENUtrue/false. If true, the Apps navigation menu item appears.Version: v3.3.1+
Default: false
Applications: API
APPSAn 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 an embedded link is described here #Version: v5.0.0+
Default: (empty)
Applications: API
VariableDescriptionParameters
FOOTER_LOGOEnvironment variable for the footer logo image location. The logo files names for different chains can be found here.Version: all
Default: /images/blockscout_logo.svg
Applications: API
RELEASE_LINKThe link to Blockscout release notes in the footer.Version: v1.3.5+
Default: https: //github.com/poanetwork/ blockscout/releases/ tag/${BLOCKSCOUT_VERSION}
Applications: API
BLOCKSCOUT_VERSIONAdded to the footer to signify the current BlockScout version.Version: v1.3.4+
Default: (empty)
Applications: API
FOOTER_CHAT_LINKLink to Chat menu item in the footer. Implemented in #5719.Version: v4.1.6+
Default: https://discord.gg/3CtNAqVMRV
Applications: API
FOOTER_FORUM_LINK_ENABLEDEnable forum menu item in the footer.Version: v5.1.3+
Default: false
Applications: API
FOOTER_FORUM_LINKLink in Forum menu item in the footer. Implemented in #5719Version: v4.1.6+
Default: https://forum.poa.network/c/blockscout
Applications: API
FOOTER_TELEGRAM_LINK_ENABLEDEnable Telegram menu item in the footer. Implemented in #7345.Version: v5.1.4+
Default: false
Applications: API
FOOTER_TELEGRAM_LINKLink in Telegram menu item in the footer. Implemented in #7345.Version: v5.1.4+
Default: (empty)
Applications: API
FOOTER_GITHUB_LINKGithub repository. Implemented in #5719.Version: v4.1.6+
Default: https://github.com/blockscout/blockscout
Applications: API
FOOTER_LINK_TO_OTHER_EXPLORERStrue/false. If true, links to other explorers are added in the footer.Version: v5.1.3+
Default: (empty)
Applications: API
FOOTER_OTHER_EXPLORERSThe list of alternative explorers.Version: v5.1.3+
Default: (empty)
Applications: API

Contract Management

VariableDescriptionParameters
CONTRACT_VERIFICATION_ALLOWED_SOLIDITY_EVM_VERSIONSComma-separated list of allowed EVM versions for Solidity contract verification. This var was introduced in #1964, updated in #7614.Version: v5.2.0+
Default: homestead,tangerineWhistle,spuriousDragon,byzantium,constantinople,petersburg,istanbul,berlin,london,paris,shanghai,cancun,prague,default
Applications: API
CONTRACT_VERIFICATION_ALLOWED_VYPER_EVM_VERSIONSComma-separated list of allowed EVM versions for Vyper contract verification. This var was introduced in #7614.Version: v5.2.0+
Default: byzantium,constantinople,petersburg,istanbul,berlin,paris,shanghai,default
Applications: API
CONTRACT_VERIFICATION_MAX_LIBRARIESMax amount of libraries to consider in smart-contract verification from flat/multi-part file(s). Implemented in #6204.Version: v5.0.0+
Default: (empty)
Applications: API
CONTRACT_MAX_STRING_LENGTH_WITHOUT_TRIMMINGHide long contract method data. For more details: #4667Version: v4.0.0+
Default: 2040
Applications: API
CONTRACT_DISABLE_INTERACTIONIf true, contract interactions via “Write contract” or “Write proxy contract” tabs are disabled. Introduced in #7088.”Version: v5.1.2+
Default: (empty)
Applications: API
CONTRACT_PROXY_IMPLEMENTATION_TTL_VIA_AVG_BLOCK_TIMEIf false, proxy contract implementation will be re-fetched immediately once someone opens proxy page bypassing average block time calculation. Implemented in #9155.Version: v6.1.0+
Default: true
Applications: API
CONTRACT_AUDIT_REPORTS_AIRTABLE_URLURL of Airtable to store audit reports from users. Implemented in #9120Version: v6.1.0+
Default: (empty)
Applications: API
CONTRACT_AUDIT_REPORTS_AIRTABLE_API_KEYAccess token for CONTRACT_AUDIT_REPORTS_AIRTABLE_URL. Implemented in #9120Version: v6.1.0+
Default: (empty)
Applications: API
CONTRACT_CERTIFIED_LISTComma-separated list of smart-contract address hashes, to which “certified” flag should be applied. Implemented in #9910Version: v6.5.0+
Default: (empty)
Applications: API
WHITELISTED_WETH_CONTRACTSComma-separated list of smart-contract address hashes of WETH-like tokens which deposit and withdrawal events you’d like to index. Implemented in #10134Version: v6.8.0+
Default: (empty)
Applications: API, Indexer
WETH_TOKEN_TRANSFERS_FILTERING_ENABLEDToggle for WETH token transfers filtering which was introduced in #10134. Implemented in #10208Version: v6.1.0+
Default: false
Applications: API, Indexer
CONTRACT_ENABLE_PARTIAL_REVERIFICATIONToggle for enabling re-verification from partial to partial match. Implemented in #11737Version: v7.0.0+
Default: false
Applications: API

Bridged Tokens

VariableDescriptionParameters
BRIDGED_TOKENS_ENABLEDVariable to enable bridged tokens functionality. Introduced in #9169Needs Recompile: ☑️ Version: v6.1.0+
Default: (empty)
Applications: API, Indexer
BRIDGED_TOKENS_ETH_OMNI_BRIDGE_MEDIATOROMNI bridge mediator for ETH tokens. Introduced in #9169Version: v6.1.0+
Default: (empty)
Applications: API, Indexer
BRIDGED_TOKENS_BSC_OMNI_BRIDGE_MEDIATOROMNI bridge mediator for BSC tokens. Introduced in #9169Version: v6.1.0+
Default: (empty)
Applications: API, Indexer
BRIDGED_TOKENS_POA_OMNI_BRIDGE_MEDIATOROMNI bridge mediator for POA tokens. Introduced in #9169Version: v6.1.0+
Default: (empty)
Applications: API, Indexer
BRIDGED_TOKENS_AMB_BRIDGE_MEDIATORSAMB bridge mediator. Introduced in #9169Version: v6.1.0+
Default: (empty)
Applications: API, Indexer
BRIDGED_TOKENS_FOREIGN_JSON_RPCEthereum mainnet JSON RPC. Introduced in #9169Version: v6.1.0+
Default: (empty)
Applications: API, Indexer

Miscellaneous UI

VariableDescriptionParameters
SHOW_ADDRESS_MARKETCAP_PERCENTAGEConfigures market cap percentage column on the top accounts page.Version: v2.1.1+
Default: true
Applications: API
SHOW_MAINTENANCE_ALERTDisables/enables announcement at the top of the explorer.Version: v3.6.0+
Default: false
Applications: API
MAINTENANCE_ALERT_MESSAGEMessage text of the announcement at the top of the explorer.Version: v3.6.0+
Default: (empty)
Applications: API
HIDE_BLOCK_MINERHides miner/validator/sequencer on block page and tiles if the value is true. Implemented in #4611Version: v4.0.0+
Default: (empty)
Applications: API
HIDE_SCAM_ADDRESSESHides address of EOA/smart-contract/token from search results if the value is true and “scam” badge is assigned to that address. Implemented in #10763Version: v6.9.0+
Default: (empty)
Applications: API
DISPLAY_TOKEN_ICONSDisplays token icons from Trust Wallet assets repository if true. Implemented in #4596Version: v4.0.0+
Default: (empty)
Applications: API
UNCLES_IN_AVERAGE_BLOCK_TIMEInclude or exclude non-consensus blocks in avg block time calculation. Exclude if false.Version: v2.0.1+
Default: false
Applications: API
COIN_BALANCE_HISTORY_DAYSNumber of days to consider for coin balance history chart.Version: v3.1.3+
Default: 10
Applications: API
ADMIN_PANEL_ENABLEDif true admin/* routes are available. Implemented in #5208. NOTE: Only Available for Hosted Clients.Needs Recompile: ☑️ Version: v4.1.2+
Default: (empty)
Applications: API
DISABLE_ADD_TO_MM_BUTTONIf true, “Add chain to MM” button doesn’t appear. Implemented in #6843Version: v5.1.0+
Default: (empty)
Applications: API
PERMANENT_DARK_MODE_ENABLEDIf true, permanent dark mode is enabled. Dark mode switcher is hidden in this case. Implemented in #6763Version: v5.1.0+
Default: (empty)
Applications: API
PERMANENT_LIGHT_MODE_ENABLEDIf true, permanent light mode is enabled. Dark mode switcher is hidden. Implemented in #6838Version: v5.1.0+
Default: (empty)
Applications: API

CSV Export

VariableDescriptionParameters
CSV_EXPORT_LIMITChanges max number of rows in CSV export. Implemented in #10497Version: v6.8.0+
Default: 10000
Applications: API

reCAPTCHA

Use Invisible reCAPTCHA v2 for the latest versions. If using a previous version only choose v2 or v3, do not use both (we recommend v2). reCAPTCHA v3 support may be discontinued in future updates. More info on reCAPTCHA settings available here.
VariableDescriptionParameters
RE_CAPTCHA_SECRET_KEYGoogle reCAPTCHA v2 secret key. Used by advanced CSV export. Implemented in #4747Version: v4.0.0+
Default: (empty)
Applications: API
RE_CAPTCHA_CLIENT_KEYGoogle reCAPTCHA v2 client key. Used by advanced CSV export in the embedded old UI. You don’t need to set it for the new UI. Implemented in #4747Version: v4.0.0+
Default: (empty)
Applications: API
RE_CAPTCHA_V3_SECRET_KEYOnly compatible with frontend version v1.36.x. For later versions, use Invisible reCAPTCHA v2. Google reCAPTCHA v3 secret key. Used by advanced CSV export. Implemented in #7273Version: v5.1.4+
Default: (empty)
Applications: API
RE_CAPTCHA_V3_CLIENT_KEYOnly compatible with frontend version v1.36.x. For later versions, use Invisible reCAPTCHA v2. Google reCAPTCHA v3 client key. Used by advanced CSV export. Implemented in #7273Version: v5.1.4+
Default: (empty)
Applications: API
RE_CAPTCHA_DISABLEDDisable reCAPTCHA. Implemented in #7416Version: v5.1.5+
Default: false
Applications: API
RE_CAPTCHA_CHECK_HOSTNAMEDisable reCAPTCHA hostname check. More details on reCaptcha docs. Implemented in #10706Version: v6.9.0+
Default: true
Applications: API
RE_CAPTCHA_SCORE_THRESHOLDChanges reCAPTCHA score threshold. Implemented in #11182Version: v6.9.1+
Default: 0.5
Applications: API
RE_CAPTCHA_BYPASS_TOKENBypass token that allows to skip reCAPTCHA check. Implemented in #11682Version: v6.10.2+
Default: (empty)
Applications: API
RE_CAPTCHA_TOKEN_INSTANCE_REFETCH_METADATA_SCOPED_BYPASS_TOKENAPI key that allows to skip reCAPTCHA check for requests to /api/v2/tokens/{token_hash}/instances/{token_id}/refetch-metadata endpoint. Implemented in #12147Version: v8.0.0+
Default: (empty)
Applications: API

API Rate Limits

VariableDescriptionParameters
API_RATE_LIMITA global API rate limit: number or requests per second for all users. Implemented in #5030Version: v4.1.1+
Default: 10 req/sec
Applications: API
API_RATE_LIMIT_BY_KEYA dedicated API rate limit per key for every type of API key (static or generated from Account module). Implemented in #5080Version: v4.1.1+
Default: 10 req/sec
Applications: API
API_RATE_LIMIT_WHITELISTED_IPSComma-separated whitelisted IPs list with dedicated rate limit. Implemented in #5090Version: v4.1.1+
Default: (empty)
Applications: API
API_RATE_LIMIT_STATIC_API_KEYStatic API key with dedicated API rate limit. Implemented in #5080Version: v4.1.1+
Default: (empty)
Applications: API
API_NO_RATE_LIMIT_API_KEYAPI key with no rate limit. Implemented in #10515Version: v6.8.0+
Default: (empty)
Applications: API
API_RATE_LIMIT_DISABLEDIf true, any type of rate limit is ignored. Implemented in #6908Version: v5.1.0+
Default: (empty)
Applications: API
API_RATE_LIMIT_IS_BLOCKSCOUT_BEHIND_PROXYIf true, then IP address of a client will be derived from proxy’s headers (like X-Forwarded-For) using RemoteIp library. Implemented in #7148Version: v5.1.3+
Default: false
Applications: API
API_RATE_LIMIT_BY_WHITELISTED_IPA dedicated API rate limit for whitelisted IPs. Implemented in #5090Version: v5.1.3+
Default: 50 req/sec
Applications: API
API_RATE_LIMIT_BY_IPGlobal rate limit for an IP address for API v2 requests sent from UI. #7148Version: v5.1.3+
Default: 3000
Applications: API
API_RATE_LIMIT_HAMMER_REDIS_URLRedis DB URL for Hammer rate limit library. Implemented in #7148Needs Recompile: ☑️ Version: v5.1.3+
Default: (empty)
Applications: API
API_RATE_LIMIT_UI_V2_WITH_TOKENRate limit after submitting correct CAPTCHA. Implemented in #7148Version: v5.1.3+
Default: 5
Applications: API
API_RATE_LIMIT_BY_IP_TIME_INTERVALTime interval of rate limit set by API_RATE_LIMIT_BY_IP. Implemented in #7148Version: v5.1.3+
Default: 5m
Applications: API
API_RATE_LIMIT_UI_V2_TOKEN_TTL_IN_SECONDSTTL for token issued after submitting correct CAPTCHA for an API v2 requests from UI. In seconds. Implemented in #7148Version: v5.1.3+
Default: 1800
Applications: API
ETH_JSON_RPC_MAX_BATCH_SIZEMax batch size for Eth JSON RPC requests. Implemented in #9409Version: v6.3.0+
Default: 5
Applications: API
API_RATE_LIMIT_CONFIG_URLURL to fetch API rate limit configuration from external source. Implemented in #12386Version: master
Default: (empty)
Applications: API
API_RATE_LIMIT_BY_KEY_TIME_INTERVALTime interval for API rate limit by key. Time format. Implemented in #12386Version: master
Default: 1s
Applications: API
API_RATE_LIMIT_BY_WHITELISTED_IP_TIME_INTERVALTime interval for API rate limit by whitelisted IP. Time format. Implemented in #12386Version: master
Default: 1s
Applications: API
API_RATE_LIMIT_UI_V2_WITH_TOKEN_TIME_INTERVALTime interval for API rate limit for UI v2 with token. Time format. Implemented in #12386Version: master
Default: 1s
Applications: API
API_RATE_LIMIT_BY_ACCOUNT_API_KEY_TIME_INTERVALTime interval for API rate limit by account API key. Time format. Implemented in #12386Version: master
Default: 1s
Applications: API

General application rate Limits

VariableDescriptionParameters
RATE_LIMITER_REDIS_URLRedis DB URL for rate limiter. Implemented in #12218Version: v8.0.0+
Default: (empty)
Applications: API
RATE_LIMITER_ON_DEMAND_TIME_INTERVALTime interval of rate limit for on-demand fetchers. Implemented in #12218Version: v8.0.0+
Default: 5s
Applications: API
RATE_LIMITER_ON_DEMAND_LIMIT_BY_IPRate limit for an IP address for on-demand fetcher call. Implemented in #12218Version: v8.0.0+
Default: 100
Applications: API
RATE_LIMITER_ON_DEMAND_EXPONENTIAL_TIMEOUT_COEFFCoefficient to calculate exponential timeout for on-demand rate limit. Implemented in #12218Version: v8.0.0+
Default: 100
Applications: API
RATE_LIMITER_ON_DEMAND_MAX_BAN_INTERVALMax time an IP address can be banned from on-demand fetcher calls. Implemented in #12218Version: v8.0.0+
Default: 1h
Applications: API
RATE_LIMITER_ON_DEMAND_LIMITATION_PERIODTime after which the number of bans for the IP address will be reset. Implemented in #12218Version: v8.0.0+
Default: 1h
Applications: API

GraphQL API

VariableDescriptionParameters
API_GRAPHQL_ENABLEDEnabling/disabling of GraphQL API. Implemented in #9751Version: v6.4.0+
Default: true
Applications: API
API_GRAPHQL_MAX_COMPLEXITYLimits the cost of GraphQL API queries. For more details, see the max_complexity documentation. Implemented in #9751, updated in #11843Needs Recompile: ☑️ Version: v6.4.0+
Default: 100
Applications: API
API_GRAPHQL_TOKEN_LIMITQuery token_limit of Absinthe. Implemented in #9751Needs Recompile: ☑️
Version: v6.4.0+
Default: 1000
Applications: API
API_GRAPHQL_DEFAULT_TRANSACTION_HASHDefault transaction hash in a sample query to GraphiQL. Implemented in #9751.Needs Recompile: ☑️
Version: v6.4.0+
Default: 0x69e3923eef50eada197c3336d546936d0c994211492c9f947a24c02827568f9f
Applications: API
API_GRAPHQL_RATE_LIMITA global GraphQL API rate limit: number or requests per second for all users. Implemented in #9771Version: v6.4.0+
Default: 10 req/sec
Applications: API
API_GRAPHQL_RATE_LIMIT_BY_KEYA dedicated GraphQL API rate limit per static key. If this limit is less than stated in API plan, then API_GRAPHQL_RATE_LIMIT_BY_KEY used for key generated from Account module. Implemented in #9771Version: v6.4.0+
Default: 5 req/sec
Applications: API
API_GRAPHQL_RATE_LIMIT_STATIC_API_KEYStatic GraphQL API key with dedicated GraphQL API rate limit. Implemented in #9771Version: v6.4.0+
Default: (empty)
Applications: API
API_GRAPHQL_RATE_LIMIT_DISABLEDIf true, any type of rate limit is ignored. Implemented in #9771Version: v6.4.0+
Default: (empty)
Applications: API
API_GRAPHQL_RATE_LIMIT_BY_IPGlobal rate limit for an IP address for GraphQL API requests. #9771Version: v6.4.0+
Default: 500
Applications: API
API_GRAPHQL_RATE_LIMIT_TIME_INTERVALTime interval of rate limit. Time format. Implemented in #9771Version: v6.4.0+
Default: 1s
Applications: API
API_GRAPHQL_RATE_LIMIT_BY_IP_TIME_INTERVALTime interval of rate limit set by API_GRAPHQL_RATE_LIMIT_BY_IP. Time format. Implemented in #9771Version: v6.4.0+
Default: 5m
Applications: API
VariableDescriptionParameters
ACCOUNT_ENABLEDTurn on/off account functionality. If value istrue, account functionality is enabled.Version: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_DATABASE_URLAccount DB connection stringVersion: v5.0.0+
Default: value from DATABASE_URL
Applications: API
ACCOUNT_REDIS_URLAccount Redis connection string (for session storing configuration)Version: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_POOL_SIZEAccount DB pool_sizeVersion: v5.0.0+
Default: 50
Applications: API
ACCOUNT_AUTH0_DOMAINDomain for Ueberauth Auth0Version: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_AUTH0_CLIENT_IDAuth0 client ID Ueberauth Auth0Version: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_AUTH0_CLIENT_SECRETAuth0 client secret Ueberauth Auth0Version: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_AUTH0_APPLICATION_IDSpecifies the identifier for the application within Auth0. It’s used to namespace user metadata in migrated Auth0 tenants. Implemented in #12109.Version: v8.0.0+
Default: (empty)
Applications: API
ACCOUNT_PUBLIC_TAGS_AIRTABLE_URLAirtable URL for public tag requests functionalityVersion: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_PUBLIC_TAGS_AIRTABLE_API_KEYAirtable API key for public tag requests functionalityVersion: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_SENDGRID_API_KEYSendgrid API key for watchlist notifications functionalityVersion: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_SENDGRID_SENDERSendgrid sender email for watchlist notifications functionalityVersion: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_SENDGRID_TEMPLATESendgrid email template for watchlist notifications functionalityVersion: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_CLOAK_KEYAccount DB encryption key. Instruction how to generateVersion: v5.0.0+
Default: (empty)
Applications: API
ACCOUNT_VERIFICATION_EMAIL_RESEND_INTERVALTime before resending confirmation email. Implemented in #7298.Version: v5.1.5+
Default: 5m
Applications: API
ACCOUNT_PRIVATE_TAGS_LIMITLimit for address & transaction tags. Implemented in #8528.Version: v5.3.1+
Default: 2000
Applications: API
ACCOUNT_WATCHLIST_ADDRESSES_LIMITLimit for watch list addresses. Implemented in #8528.Version: v5.3.1+
Default: 15
Applications: API
ACCOUNT_WATCHLIST_NOTIFICATIONS_LIMIT_FOR_30_DAYSPer account limit for watch list notifications sent for the last 30 days. Implemented in #8966.Version: v5.3.3+
Default: 1000
Applications: API
ACCOUNT_OTP_RESEND_INTERVALTime before resending otp email. Implemented in #10706.Version: v6.9.0+
Default: 1m
Applications: API
ACCOUNT_SIWE_MESSAGEMessage for Sign In With Ethereum authentication. Implemented in #11178.Version: v6.9.1+
Default: Sign in to Blockscout Account V2
Applications: API

Specific Smart Contracts

VariableDescriptionParameters
METADATA_CONTRACTUsed by POA Network to obtain Validators information to display in the UI.Version: all
Default: (empty)
Applications: API, Indexer
VALIDATORS_CONTRACTUsed by POA Network to obtain the list of current validators.Version: all
Default: (empty)
Applications: API, Indexer
KEYS_MANAGER_CONTRACTUsed 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.Version: v3.1.2+
Default: (empty)
Applications: API, Indexer
REWARDS_CONTRACTEmission rewards contract address. This env var is used only if EMISSION_FORMAT is set to POAVersion: v2.0.4+
Default: 0xeca443e8e1ab29971a45a9c57a6a9875701698a5
Applications: API, Indexer
TOKEN_BRIDGE_CONTRACTToken bridge proxy contract. For `TokenBridge` supply module.Version: v1.3.2+
Default: 0x7301CFA0e1756B71869E93d4e4Dca5c7d0eb0AA6
Applications: API, Indexer

CDN

This feature was implemented in #10675
VariableDescriptionParameters
NFT_MEDIA_HANDLER_AWS_ACCESS_KEY_IDS3 API Access Key IDVersion: v6.10.0+
Default: (empty)
Applications: NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_AWS_SECRET_ACCESS_KEYS3 API Secret Access KeyVersion: v6.10.0+
Default: (empty)
Applications: NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_AWS_BUCKET_HOSTS3 API URLVersion: v6.10.0+
Default: (empty)
Applications: NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_AWS_BUCKET_NAMES3 bucket nameVersion: v6.10.0+
Default: (empty)
Applications: NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_AWS_PUBLIC_BUCKET_URLPublic S3 bucket URLVersion: v6.10.0+
Default: (empty)
Applications: API
NFT_MEDIA_HANDLER_ENABLEDif true, CDN feature enabledVersion: v6.10.0+
Default: false
Applications: Indexer, NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_REMOTE_DISPATCHER_NODE_MODE_ENABLEDif true, nft media handler is supposed to run separately.Version: v6.10.0+
Default: false
Applications: Indexer, NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_IS_WORKERif true, and NFT_MEDIA_HANDLER_REMOTE_DISPATCHER_NODE_MODE_ENABLED=true will be started only nft_media_handler appVersion: v6.10.0+
Default: false
Applications: Indexer, NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_NODES_MAPString in json map format, where key is erlang node and value is folder in R2/S3 bucket, example: "{\"[email protected]\": \"/folder_1\"}". If nft_media_handler runs in one pod with indexer, map should contain self keyVersion: v6.10.0+
Default: (empty)
Applications: NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_WORKER_CONCURRENCYConcurrency of media handling (resizing/uploading)Version: v6.10.0+
Default: 10
Applications: NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_WORKER_BATCH_SIZENumber of url processed by one async taskVersion: v6.10.0+
Default: 10
Applications: NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_WORKER_SPAWN_TASKS_TIMEOUTTimeout before spawn new taskVersion: v6.10.0+
Default: 100ms
Applications: NFT_MEDIA_HANDLER
NFT_MEDIA_HANDLER_BACKFILL_ENABLEDIf true, unprocessed token instances from DB are processed via nft_media_handlerVersion: v6.10.0+
Default: false
Applications: Indexer
NFT_MEDIA_HANDLER_BACKFILL_QUEUE_SIZEMax size of backfill queueVersion: v6.10.0+
Default: 1000
Applications: Indexer
NFT_MEDIA_HANDLER_BACKFILL_ENQUEUE_BUSY_WAITING_TIMEOUTTimeout before new attempt to append item to backfill queue if it’s fullVersion: v6.10.0+
Default: 1s
Applications: Indexer
NFT_MEDIA_HANDLER_CACHE_UNIQUENESS_MAX_SIZEMax size of cache, where stored already uploaded token instances mediaVersion: v6.10.0+
Default: 100_000
Applications: Indexer

Addresses Blacklist management

Section created as a result of #11417
VariableDescriptionParameters
ADDRESSES_BLACKLISTA comma-separated list of addresses to enable restricted access to them.Version: v6.10.0+
Default: (empty)
Applications: API
ADDRESSES_BLACKLIST_KEYA key to access blacklisted addresses (either by ADDRESSES_BLACKLIST or by blacklist provider). Can be passed via query param to the page’s URL: ?key=...Version: v6.10.0+
Default: (empty)
Applications: API
ADDRESSES_BLACKLIST_PROVIDERBlacklist provider type, available options: blockaidVersion: v6.10.0+
Default: blockaid
Applications: API
ADDRESSES_BLACKLIST_URLURL to fetch blacklist fromVersion: v6.10.0+
Default: (empty)
Applications: API
ADDRESSES_BLACKLIST_UPDATE_INTERVALInterval between scheduled updates of blacklistVersion: v6.10.0+
Default: 15m
Applications: API
ADDRESSES_BLACKLIST_RETRY_INTERVALTime to wait before new attempt of blacklist fetching, after abnormal termination of fetching taskVersion: v6.10.0+
Default: 5s
Applications: API