From 01f0e40a6f2fb3d81ae494cbaff1a49c70b08004 Mon Sep 17 00:00:00 2001 From: Nikita Pozdniakov Date: Mon, 23 Jun 2025 16:52:30 +0300 Subject: [PATCH] Update envs for API rate limits --- setup/env-variables/backend-env-variables.md | 38 ++- .../deprecated-env-variables/README.md | 293 +++++++++--------- 2 files changed, 168 insertions(+), 163 deletions(-) diff --git a/setup/env-variables/backend-env-variables.md b/setup/env-variables/backend-env-variables.md index 87e07eff..8169400e 100644 --- a/setup/env-variables/backend-env-variables.md +++ b/setup/env-variables/backend-env-variables.md @@ -460,23 +460,27 @@ Use Invisible reCAPTCHA v2 for the latest versions. If using a previous version ## API Rate Limits -| Variable | Description | Parameters | -| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `API_RATE_LIMIT` | A global API rate limit: number or requests per second for all users. Implemented in [#5030](https://github.com/blockscout/blockscout/pull/5030) |

Version: v4.1.1+
Default: 10 req/sec
Applications: API

| -| `API_RATE_LIMIT_BY_KEY` | A dedicated API rate limit per key for every type of API key (static or generated from Account module). Implemented in [#5080](https://github.com/blockscout/blockscout/pull/5080) |

Version: v4.1.1+
Default: 10 req/sec
Applications: API

| -| `API_RATE_LIMIT_WHITELISTED_IPS` | Comma-separated whitelisted IPs list with dedicated rate limit. Implemented in [#5090](https://github.com/blockscout/blockscout/pull/5090) |

Version: v4.1.1+
Default: (empty)
Applications: API

| -| `API_RATE_LIMIT_STATIC_API_KEY` | Static API key with dedicated API rate limit. Implemented in [#5080](https://github.com/blockscout/blockscout/pull/5080) |

Version: v4.1.1+
Default: (empty)
Applications: API

| -| `API_NO_RATE_LIMIT_API_KEY` | API key with no rate limit. Implemented in [#10515](https://github.com/blockscout/blockscout/pull/10515) |

Version: v6.8.0+
Default: (empty)
Applications: API

| -| `API_RATE_LIMIT_DISABLED` | If `true`, any type of rate limit is ignored. Implemented in [#6908](https://github.com/blockscout/blockscout/pull/6908) |

Version: v5.1.0+
Default: (empty)
Applications: API

| -| `API_RATE_LIMIT_IS_BLOCKSCOUT_BEHIND_PROXY` | If `true`, then IP address of a client will be derived from proxy's headers (like `X-Forwarded-For`) using [RemoteIp](https://hexdocs.pm/remote_ip/RemoteIp.html) library. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: false
Applications: API

| -| `API_RATE_LIMIT_BY_WHITELISTED_IP` | A dedicated API rate limit for whitelisted IPs. Implemented in [#5090](https://github.com/blockscout/blockscout/pull/5090) |

Version: v5.1.3+
Default: 50 req/sec
Applications: API

| -| `API_RATE_LIMIT_BY_IP` | Global rate limit for an IP address for API v2 requests sent from UI. [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: 3000
Applications: API

| -| `API_RATE_LIMIT_HAMMER_REDIS_URL` | Redis DB URL for Hammer rate limit library. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Needs Recompile: ☑️
Version: v5.1.3+
Default: (empty)
Applications: API

| -| `API_RATE_LIMIT_UI_V2_WITH_TOKEN` | Rate limit after submitting correct CAPTCHA. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: 5
Applications: API

| -| `API_RATE_LIMIT_TIME_INTERVAL` | Time interval of rate limit. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: 1s
Applications: API

| -| `API_RATE_LIMIT_BY_IP_TIME_INTERVAL` | Time interval of rate limit set by `API_RATE_LIMIT_BY_IP`. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: 5m
Applications: API

| -| `API_RATE_LIMIT_UI_V2_TOKEN_TTL_IN_SECONDS` | TTL for token issued after submitting correct CAPTCHA for an API v2 requests from UI. In seconds. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: 1800
Applications: API

| -| `ETH_JSON_RPC_MAX_BATCH_SIZE` | Max batch size for Eth JSON RPC requests. Implemented in [#9409](https://github.com/blockscout/blockscout/pull/9409) |

Version: v6.3.0+
Default: 5
Applications: API

| +| Variable | Description | Parameters | +| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `API_RATE_LIMIT` | A global API rate limit: number or requests per second for all users. Implemented in [#5030](https://github.com/blockscout/blockscout/pull/5030) |

Version: v4.1.1+
Default: 10 req/sec
Applications: API

| +| `API_RATE_LIMIT_BY_KEY` | A dedicated API rate limit per key for every type of API key (static or generated from Account module). Implemented in [#5080](https://github.com/blockscout/blockscout/pull/5080) |

Version: v4.1.1+
Default: 10 req/sec
Applications: API

| +| `API_RATE_LIMIT_WHITELISTED_IPS` | Comma-separated whitelisted IPs list with dedicated rate limit. Implemented in [#5090](https://github.com/blockscout/blockscout/pull/5090) |

Version: v4.1.1+
Default: (empty)
Applications: API

| +| `API_RATE_LIMIT_STATIC_API_KEY` | Static API key with dedicated API rate limit. Implemented in [#5080](https://github.com/blockscout/blockscout/pull/5080) |

Version: v4.1.1+
Default: (empty)
Applications: API

| +| `API_NO_RATE_LIMIT_API_KEY` | API key with no rate limit. Implemented in [#10515](https://github.com/blockscout/blockscout/pull/10515) |

Version: v6.8.0+
Default: (empty)
Applications: API

| +| `API_RATE_LIMIT_DISABLED` | If `true`, any type of rate limit is ignored. Implemented in [#6908](https://github.com/blockscout/blockscout/pull/6908) |

Version: v5.1.0+
Default: (empty)
Applications: API

| +| `API_RATE_LIMIT_IS_BLOCKSCOUT_BEHIND_PROXY` | If `true`, then IP address of a client will be derived from proxy's headers (like `X-Forwarded-For`) using [RemoteIp](https://hexdocs.pm/remote_ip/RemoteIp.html) library. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: false
Applications: API

| +| `API_RATE_LIMIT_BY_WHITELISTED_IP` | A dedicated API rate limit for whitelisted IPs. Implemented in [#5090](https://github.com/blockscout/blockscout/pull/5090) |

Version: v5.1.3+
Default: 50 req/sec
Applications: API

| +| `API_RATE_LIMIT_BY_IP` | Global rate limit for an IP address for API v2 requests sent from UI. [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: 3000
Applications: API

| +| `API_RATE_LIMIT_HAMMER_REDIS_URL` | Redis DB URL for Hammer rate limit library. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: (empty)
Applications: API

| +| `API_RATE_LIMIT_UI_V2_WITH_TOKEN` | Rate limit after submitting correct CAPTCHA. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: 5
Applications: API

| +| `API_RATE_LIMIT_BY_IP_TIME_INTERVAL` | Time interval of rate limit set by `API_RATE_LIMIT_BY_IP`. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: 5m
Applications: API

| +| `API_RATE_LIMIT_UI_V2_TOKEN_TTL_IN_SECONDS` | TTL for token issued after submitting correct CAPTCHA for an API v2 requests from UI. In seconds. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148) |

Version: v5.1.3+
Default: 1800
Applications: API

| +| `ETH_JSON_RPC_MAX_BATCH_SIZE` | Max batch size for Eth JSON RPC requests. Implemented in [#9409](https://github.com/blockscout/blockscout/pull/9409) |

Version: v6.3.0+
Default: 5
Applications: API

| +| `API_RATE_LIMIT_CONFIG_URL` | URL to fetch API rate limit configuration from external source. Implemented in [#12386](https://github.com/blockscout/blockscout/pull/12386) |

Version: master
Default: (empty)
Applications: API

| +| `API_RATE_LIMIT_BY_KEY_TIME_INTERVAL` | Time interval for API rate limit by key. [Time format](backend-env-variables.md#time-format). Implemented in [#12386](https://github.com/blockscout/blockscout/pull/12386) |

Version: master
Default: 1s
Applications: API

| +| `API_RATE_LIMIT_BY_WHITELISTED_IP_TIME_INTERVAL` | Time interval for API rate limit by whitelisted IP. [Time format](backend-env-variables.md#time-format). Implemented in [#12386](https://github.com/blockscout/blockscout/pull/12386) |

Version: master
Default: 1s
Applications: API

| +| `API_RATE_LIMIT_UI_V2_WITH_TOKEN_TIME_INTERVAL` | Time interval for API rate limit for UI v2 with token. [Time format](backend-env-variables.md#time-format). Implemented in [#12386](https://github.com/blockscout/blockscout/pull/12386) |

Version: master
Default: 1s
Applications: API

| +| `API_RATE_LIMIT_BY_ACCOUNT_API_KEY_TIME_INTERVAL` | Time interval for API rate limit by account API key. [Time format](backend-env-variables.md#time-format). Implemented in [#12386](https://github.com/blockscout/blockscout/pull/12386) |

Version: master
Default: 1s
Applications: API

| ## General application rate Limits diff --git a/setup/env-variables/deprecated-env-variables/README.md b/setup/env-variables/deprecated-env-variables/README.md index d476b334..ac23abf7 100644 --- a/setup/env-variables/deprecated-env-variables/README.md +++ b/setup/env-variables/deprecated-env-variables/README.md @@ -4,149 +4,150 @@ This table is horizontally scrollable, version information is located in the last column. {% endhint %} -| Variable | Required | Description | Default | Version | Need recompile | Deprecated in Version | -| ----------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -------- | -------------- | --------------------- | -| `ETHEREUM_JSONRPC_JSON_RPC_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. Replaced with `ETHEREUM_JSONRPC_TRANSPORT` | `http` | v2.1.1+ | | v3.1.0 | -| `COINMARKETCAP_PAGES` | | the number of pages on coinmarketcap to list in order to find token's price | 10 | v1.3.10+ | | v2.0.4 | -| `COIN_GECKO_ID` | | CoinGecko coin id required for fetching an exchange rate | poa-network | v2.0.4+ | | v2.1.0 | -| `NETWORK_ICON` | | Environment variable for the main network icon or testnet icon. Two options are `_test_network_icon.html` and `_network_icon.html` | \_network\_icon.html | All | | v2.0.0 | -| `REWARDS_CONTRACT_ADDRESS` | | Emission rewards contract address. This env var is used only if `EMISSION_FORMAT` is set to `POA` . Replaced with `REWARDS_CONTRACT` | `0xeca443e8e1ab29971a45a9c57a6a9875701698a5` | v2.0.4+ | | v3.1.0 | -| `OMNI_BRIDGE_MEDIATOR` | | An address of home OmniBridge mediator to bridge multiple tokens from Ethereum. Providing this address enables bridged tokens functionality: bridged status and link to the original token in the foreign chain. | (empty) | v3.3.2+ | | v3.6.0 | -| `ENABLE_1559_SUPPORT` | | Enables store and display of additional fields on block and transaction according to [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) | false | v4.0.0+ | | v4.1.0 | -| `BLOCK_COUNT_CACHE_PERIOD` | | time to live of blocks with consensus count cache in seconds. This var was introduced in [#1876](https://github.com/poanetwork/blockscout/pull/1876) | 2 hours | v2.0.0+ | | v4.1.3 | -| `TXS_COUNT_CACHE_PERIOD` | | Interval in seconds to restart the task, which calculates the total txs count. | 2 hours | v1.3.9+ | | v4.1.3 | -| `ADDRESS_COUNT_CACHE_PERIOD` | | time to live of cache in seconds. This var was introduced in [#2822](https://github.com/poanetwork/blockscout/pull/2822)​ | 2 hours | v2.1.1+ | | v4.1.3 | -| `ADDRESS_SUM_CACHE_PERIOD` | | time to live of addresses sum (except burn address) cache in seconds. This var was introduced in [#2862](https://github.com/poanetwork/blockscout/pull/2862)​ | 1 hour | v2.1.1+ | | v4.1.3 | -| `TOTAL_GAS_USAGE_CACHE_PERIOD` | | Interval in seconds to restart the task, which calculates the total gas usage. | 2 hours | v3.4.0+ | | v4.1.3 | -| `ADDRESS_TRANSACTIONS_GAS_USAGE_COUNTER_CACHE_PERIOD` | | Interval in seconds to restart the task, which calculates gas usage at the address. | 30 minutes | v3.4.0+ | | v4.1.3 | -| `TOKEN_HOLDERS_COUNTER_CACHE_PERIOD` | | Interval in seconds to restart the task, which calculates holders count of the token. | 1 hour | v3.4.0+ | | v4.1.3 | -| `TOKEN_TRANSFERS_COUNTER_CACHE_PERIOD` | | Interval in seconds to restart the task, which calculates transfers count of the token. | 1 hour | v3.4.0+ | | v4.1.3 | -| `ADDRESS_WITH_BALANCES_UPDATE_INTERVAL` | | Interval in seconds to restart the task, which calculates addresses with balances. | 30 minutes | v1.3.9+ | | v4.1.3 | -| `AVERAGE_BLOCK_CACHE_PERIOD` | | Update of average block period cache, in seconds | 30 minutes | v2.0.2+ | | v4.1.3 | -| `MARKET_HISTORY_CACHE_PERIOD` | | Update of market history cache, in seconds | 6 hours | v2.0.2+ | | v4.1.3 | -| `COINGECKO_COIN_ID` | | Explicitly set CoinGecko coin ID | (empty) | v3.1.2+ | | v4.1.4 | -| `SOURCE_MODULE` | | This environment variable is used to calculate the exchange rate and is specifically used by the xDai Chain. Available value is `TokenBridge` | (empty) | v1.0.0+ | | v4.1.4 | -| `POS_STAKING_CONTRACT` | | The address of POSDAO staking contract. When provided, enables staking DApp. ValidatorSet and BlockReward contract addresses are fetched using corresponding getters. | (empty) | v3.4.0+ | | v4.1.x | -| `POS_ETH_SUBSCRIBE_MAX_DELAY` | |

Used by the staking DApp. The number of seconds of max delay after the latest block number arrived from eth_subscribe. Once this time is elapsed, the staking DApp automatically switches to eth_blockNumber which then is requested every POS_ETH_BLOCKNUMBER_PULL_INTERVAL milliseconds until eth_subscribe works again.

| 60 | v3.6.0+ | | v4.1.x | -| `POS_ETH_BLOCKNUMBER_PULL_INTERVAL` | | An interval between eth\_blockNumber requests (in milliseconds) made by staking DApp to retrieve a new block number. Used when eth\_subscribe stops working. | 500 | v3.6.0+ | | v4.1.x | -| `ENABLE_POS_STAKING_IN_MENU` | | Enables Staking dapp in the menu | false | v3.6.0+ | | v4.1.x | -| `SHOW_STAKING_WARNING` | | Disables/enables announcement inside staking dapp | false | v3.6.0+ | | v4.1.x | -| `STAKING_WARNING_MESSAGE` | | Message text of the announcement inside staking dapp | (empty) | v3.6.0+ | | v4.1.x | -| `ETH_OMNI_BRIDGE_MEDIATOR` | | An address of home OmniBridge mediator to bridge multiple tokens from Ethereum. Providing this address enables bridged tokens functionality: bridged status and link to the original token in the foreign chain. | (empty) | v3.6.0+ | | v4.1.x | -| `BSC_OMNI_BRIDGE_MEDIATOR` | | An address of home OmniBridge mediator to bridge multiple tokens from Binance Smart Chain. Providing this address enables bridged tokens functionality: bridged status and link to the original token in the foreign chain. | (empty) | v3.6.0+ | | v4.1.x | -| `AMB_BRIDGE_MEDIATORS` | | A comma-separated list of AMB extensions' mediators' addresses' hashes to fetch bridged tokens through those mediators. | (empty) | v3.6.0+ | | v4.1.x | -| `FOREIGN_JSON_RPC` | | JSON RPC endpoint to the foreign chain in order to get metadata of bridged through Omni-bridge token. It was introduced in this PR [#3282](https://github.com/poanetwork/blockscout/pull/3282) | (empty) | v3.3.3+ | | v4.1.x | -| `BRIDGE_MARKET_CAP_UPDATE_INTERVAL` | | Market cap update interval for \`TokenBridge\` supply module as for TokenBridge and for OmniBridge as well, in seconds. It was introduced in this PR [#3293](https://github.com/poanetwork/blockscout/pull/3293)​ | 30 minutes | v3.3.3+ | | v4.1.x | -| `DISABLE_BRIDGE_MARKET_CAP_UPDATER` | | Disables recurring consolidation of TokenBridge market cap from TokenBridge, OmniBridge and AMB extensions | (empty) | v3.3.3+ | | v4.1.x | -| `EXTERNAL_APPS` | | An array of external apps to display in Apps menu item. This var was introduced in this PR [#3184](https://github.com/poanetwork/blockscout/pull/3184) and looks like an array of JSON objects. | (empty) | v3.3.1+ | | v5.0.0 | -| `API_PATH` | | PATH in API endpoint URL at API docs page. | / | v3.1.0+ | ✅ | v5.1.1 | -| `SOCKET_ROOT` | | Custom websocket path. | (empty) | v3.0.0+ | ✅ | v5.1.1 | -| `MAX_SIZE_UNLESS_HIDE_ARRAY` | | Hide long arrays in smart-contracts. To get more details: [#4218](https://github.com/blockscout/blockscout/pull/4218) | 50 | v3.7.1+ | | v5.1.2 | -| `ALLOWED_EVM_VERSIONS` | | the comma-separated list of allowed EVM versions for contract verification. This var was introduced in [#1964](https://github.com/poanetwork/blockscout/pull/1964) | "homestead, tangerineWhistle, spuriousDragon, byzantium, constantinople, petersburg,istanbul" | v2.0.0+ | | v5.1.2 | -| `DISABLE_KNOWN_TOKENS` | | Disables or enables token symbol for known contract. | false | v3.4.0+ | | v5.1.2 | -| `TOKEN_BALANCE_ON_DEMAND_FETCHER_THRESHOLD_MINUTES` | | A threshold to invalidate token balance cache. Implemented in [#3870](https://github.com/blockscout/blockscout/pull/3870) | 60 minutes | v3.7.1+ | | v5.1.2 | -| `COIN_BALANCE_ON_DEMAND_FETCHER_THRESHOLD_MINUTES` | | A threshold to invalidate coin balance cache. Implemented in [#5240](https://github.com/blockscout/blockscout/pull/5240) | 60 minutes | v4.1.2+ | | v5.1.2 | -| `CUSTOM_CONTRACT_ADDRESSES_TEST_TOKEN` | | List of test tokens addresses: test label will be applied and those tokens will be excluded from omni bridge market cap calculation. | (empty) | v3.6.0+ | | v5.1.2 | -| `CACHE_TOKEN_EXCHANGE_RATE_PERIOD` | | Managing cache invalidation for token's exchange rate. | 1 hour | v3.5.0+ | | v5.1.2 | -| `INDEXER_DISABLE_EMPTY_BLOCK_SANITIZER` | | Empty blocks sanitizer is disabled if `true` | false | v4.1.3+ | | v5.1.2 | -| `HISTORY_FETCH_INTERVAL` | | Interval how often to request count of txs per current day in order to display txs count per day chart on the main page. [Time format](../#time-format). | 1h | v3.1.2+ | | v5.1.3 | -| `WOBSERVER_ENABLED` | | If `true` enables wobserver interface. | (empty) | v3.3.2+ | | v5.1.3 | -| `VISUALIZE_SOL2UML_ENABLED` | | If `true`, integration with [Rust sol2uml visualizer](https://github.com/blockscout/blockscout-rs/tree/main/visualizer) is enabled. Implemented in [#6401](https://github.com/blockscout/blockscout/pull/6401) | (empty) | v5.0.0+ | | v5.1.3 | -| `VISUALIZE_SOL2UML_SERVICE_URL` | | URL of Rust visualizer. Implemented in [#6401](https://github.com/blockscout/blockscout/pull/6401) | (empty) | v5.0.0+ | | v5.1.3 | -| `SIG_PROVIDER_SERVICE_URL` | | If `true`, integration with [Rust sig-provider service](https://github.com/blockscout/blockscout-rs/tree/main/sig-provider) is enabled. Implemented in [#6541](https://github.com/blockscout/blockscout/pull/6541) | (empty) | v5.1.0+ | | v5.1.3 | -| `SIG_PROVIDER_ENABLED` | | URL of Rust sig-provider service. Implemented in [#6541](https://github.com/blockscout/blockscout/pull/6541) | (empty) | v5.1.0+ | | v5.1.3 | -| `ENABLE_RUST_VERIFICATION_SERVICE` | | If `true`, integration with [Rust smart-contract verifier](https://github.com/blockscout/blockscout-rs/tree/main/smart-contract-verifier) is enabled. Implemented in [#5860](https://github.com/blockscout/blockscout/pull/5860) | (empty) | v4.1.8+ | | v5.1.3 | -| `RUST_VERIFICATION_SERVICE_URL` | | URL of Rust smart-contract verifier. Implemented in [#5860](https://github.com/blockscout/blockscout/pull/5860) | (empty) | v4.1.8+ | | v5.1.3 | -| `LINK_TO_OTHER_EXPLORERS` | | true/false. If true, links to other explorers are added in the footer. | (empty) | v1.3.0+ | | v5.1.3 | -| `OTHER_EXPLORERS` | | The list of alternative explorers. This env var was introduced in PR [#3414](https://github.com/poanetwork/blockscout/pull/3414). | (empty) | v3.4.0+ | | v5.1.3 | -| `FOOTER_ENABLE_FORUM_LINK` | | Enable forum menu item in the footer. Implemented in [#6351](https://github.com/blockscout/blockscout/pull/6351) | false | v5.0.0+ | | v5.1.3 | -| `ENABLE_SOURCIFY_INTEGRATION` | | Enables or disables verification of contracts through Sourcify. | false | v3.7.0+ | | v5.1.3 | -| `ENABLE_TXS_STATS` | | Disables or enables txs per day stats gathering. | true | v3.1.2+ | | v5.1.3 | -| `CACHE_ENABLE_TOTAL_GAS_USAGE_COUNTER` | | if `true`, enables cache for total gas usage counter. | `false` | v5.1.2+ | | v5.1.3 | -| `LOGO_FOOTER` | | Environment variable for the footer logo image location. The logo files names for different chains can be found [here](https://github.com/poanetwork/blockscout/tree/master/apps/block\_scout\_web/assets/static/images). | /images/blockscout\_logo.svg | | | v5.1.3 | -| `INDEXER_TOKEN_INSTANCE_CONCURRENCY` | | Concurrency for token instance fetcher. Implemented in [#6981](https://github.com/blockscout/blockscout/pull/6981). | 10 | v5.1.2+ | | v5.1.4 | -| `INDEXER_TOKEN_INSTANCE_BATCH_SIZE` | | Batch size for token instance fetcher. Implemented in [#6981](https://github.com/blockscout/blockscout/pull/6981). | 1 | v5.1.2+ | | v5.1.4 | -| `DISABLE_TOKEN_INSTANCE_FETCHER` | | If `true`, token instance fetcher doesn't run | `false` | v5.0.0+ | | v5.1.4 | -| `ACCOUNT_AUTH0_LOGOUT_URL` | | Auth0 logout URL [Ueberauth Auth0](https://hexdocs.pm/ueberauth\_auth0/readme.html) | (empty) | v5.0.0+ | | v5.1.4 | -| `ACCOUNT_AUTH0_LOGOUT_RETURN_URL` | | Auth0 logout return URL [Ueberauth Auth0](https://hexdocs.pm/ueberauth\_auth0/readme.html) | (empty) | v5.0.0+ | | v5.1.4 | -| `ACCOUNT_AUTHENTICATE_ENDPOINT_API_KEY` | | `api/account/v1/authenticate` api key ([#7068](https://github.com/blockscout/blockscout/pull/7068)) | (empty) | v5.1.2+ | | v5.1.5 | -| `DISABLE_READ_API` | | If `true`, read-only endpoints to API are hidden (compile-time). | `false` | v2.0.3+ | ✅ | v5.1.5 | -| `DISABLE_WRITE_API` | | If `true`, write endpoints to API are hidden (compile-time). | `false` | v2.0.3+ | ✅ | v5.1.5 | -| `CONTRACT_VERIFICATION_ALLOWED_EVM_VERSIONS` | | the comma-separated list of allowed EVM versions for contract verification. This var was introduced in [#1964](https://github.com/poanetwork/blockscout/pull/1964) | "homestead, tangerineWhistle, spuriousDragon, byzantium, constantinople, petersburg,istanbul" | v2.0.0+ | | v5.2.0 | -| `EXCHANGE_RATES_SOURCE` | | This environment variable is used to calculate the exchange rates. Available value is `token_bridge`. Available values are also `coin_gecko` and `coin_market_cap`. | (empty) | v4.1.4+ | | v5.2.3 | -| `INDEXER_ZKEVM_BATCHES_ENABLED` | | Enables Polygon zkEVM batches fetcher. Implemented in [#7584](https://github.com/blockscout/blockscout/pull/7584). | `false` | v5.3.1+ | | v6.2.0 | -| `INDEXER_ZKEVM_BATCHES_CHUNK_SIZE` | | The number of Polygon zkEVM batches in one chunk when reading them from RPC. Implemented in [#7584](https://github.com/blockscout/blockscout/pull/7584). | 20 | v5.3.1+ | | v6.2.0 | -| `INDEXER_ZKEVM_BATCHES_RECHECK_INTERVAL` | | The latest batch rechecking interval, seconds. Implemented in [#7584](https://github.com/blockscout/blockscout/pull/7584). | 60 | v5.3.1+ | | v6.2.0 | -| `GRAPHIQL_TRANSACTION` | | Default transaction hash in a sample query to GraphiQL. | (empty) | v1.2.0+ | ✅ | v6.4.0 | -| `INDEXER_TOKEN_INSTANCE_RETRY_REFETCH_INTERVAL` | | Interval between attempts to fetch token instance metadata. [Time format](../#time-format). Implemented in [#7286](https://github.com/blockscout/blockscout/pull/7286). | `24h` | v5.1.4+ | | v6.6.0 | -| `INDEXER_INTERNAL_TRANSACTIONS_INDEXING_FINISHED_THRESHOLD` | | In the case when the 1st tx in the chain already has internal transactions, If the number of blocks in pending\_block\_operations is less than the value in this env var, Blockscout will consider, that indexing of internal transactions finished, otherwise, it will consider, that indexing is still taking place and the indexing banner will appear at the top. Implemented in [#7576](https://github.com/blockscout/blockscout/pull/7576). | 1000 | v5.2.0+ | | v6.6.0 | -| `INDEXER_OPTIMISM_L1_DEPOSITS_START_BLOCK` | | The number of the L1 block from which deposits will be fetched. Implemented in [#6993](https://github.com/blockscout/blockscout/pull/6993). | (empty) | v6.3.0+ | | v6.8.0 | -| `INDEXER_OPTIMISM_L1_WITHDRAWALS_START_BLOCK` | | The number of start block on L1 to index withdrawal events. If the table of withdrawal events is not empty, the process will continue indexing from the last indexed withdrawal event. Implemented in [#6980](https://github.com/blockscout/blockscout/pull/6980). | (empty) | v6.3.0+ | | v6.8.0 | -| `INDEXER_OPTIMISM_L1_OUTPUT_ROOTS_START_BLOCK` | | The number of start block on L1 to index output roots. If the table of output roots is not empty, the process will continue indexing from the last indexed root. Implemented in [#6980](https://github.com/blockscout/blockscout/pull/6980). | (empty) | v6.3.0+ | | v6.8.0 | -| `INDEXER_OPTIMISM_L1_BATCH_START_BLOCK` | | The number of start block on L1 to index transaction batches. If the table of batches is not empty, the process will continue indexing from the last indexed batch. Implemented in [#6980](https://github.com/blockscout/blockscout/pull/6980). | (empty) | v6.3.0+ | | v6.8.0 | -| `INDEXER_OPTIMISM_L1_DEPOSITS_BATCH_SIZE` | | Number of blocks in a single `eth_getLogs` request of the Deposits fetcher. Implemented in [#6993](https://github.com/blockscout/blockscout/pull/6993). | 500 | v6.3.0+ | | v6.8.0 | -| `METRICS_DISABLE_PUBLIC` | | Variable to disable running queries at /public-metrics endpoint. Implemented in [#10279](https://github.com/blockscout/blockscout/pull/10279). | false | v6.7.2+ | | v6.8.0 | -| `RESTRICTED_LIST` | | A comma-separated list of addresses to enable restricted access to them. | (empty) | v3.3.3+ | | v6.10.0 | -| `RESTRICTED_LIST_KEY` | | A key to access addresses listed in`RESTRICTED_LIST` variable. Can be passed via query param to the page's URL: `?key=...` | (empty) | v3.3.3+ | | v6.10.0 | -| `CHECKSUM_FUNCTION` | | Defines checksum address function. 2 available values: `rsk`, `eth` | `eth` | v2.0.1+ | | v7.0.0 | -| `TOKEN_ID_MIGRATION_FIRST_BLOCK` | | Bottom block for token id migration. Implemented in [#6391](https://github.com/blockscout/blockscout/pull/6391) | 0 | v5.0.0+ | | v7.0.0 -| `TOKEN_ID_MIGRATION_CONCURRENCY` | | Number of workers performing the token id migration. Implemented in [#6391](https://github.com/blockscout/blockscout/pull/6391) | 1 | v5.0.0+ | | v7.0.0 -| `TOKEN_ID_MIGRATION_BATCH_SIZE` | | Interval of token transfer block numbers processed by a token id migration worker at a time. Implemented in [#6391](https://github.com/blockscout/blockscout/pull/6391) | 500 | v5.0.0+ | | v7.0.0 -| `SHRINK_INTERNAL_TRANSACTIONS_BATCH_SIZE` | | Batch size of the shrink internal transactions migration. _Note_: before release "v6.8.0", the default value was 1000. Implemented in [#10567](https://github.com/blockscout/blockscout/pull/10567), changed default value in [#10689](https://github.com/blockscout/blockscout/pull/10689). | 100 | v6.8.0+ | | v7.0.0 -| `SHRINK_INTERNAL_TRANSACTIONS_CONCURRENCY` | | Concurrency of the shrink internal transactions migration. Implemented in [#10567](https://github.com/blockscout/blockscout/pull/10567). | 10 | v6.8.0+ | | v7.0.0 -| `TOKEN_INSTANCE_OWNER_MIGRATION_CONCURRENCY` | | Concurrency of new fields backfiller implemented in [#8386](https://github.com/blockscout/blockscout/pull/8386) | 5 | v5.3.0+ | | v7.0.0 -| `TOKEN_INSTANCE_OWNER_MIGRATION_BATCH_SIZE` | | Batch size of new fields backfiller implemented in [#8386](https://github.com/blockscout/blockscout/pull/8386) | 50 | v5.3.0+ | | v7.0.0 -| `TOKEN_INSTANCE_OWNER_MIGRATION_ENABLED` | | Enable of backfiller from [#8386](https://github.com/blockscout/blockscout/pull/8386) implemented in [#8752](https://github.com/blockscout/blockscout/pull/8752) | false | v5.3.2+ | | v7.0.0 -| `DENORMALIZATION_MIGRATION_BATCH_SIZE` | | Number of transactions to denormalize (add block timestamp and consensus) in the batch. | 500 | v6.0.0+ | | v7.0.0 -| `DENORMALIZATION_MIGRATION_CONCURRENCY` | | Number of parallel denormalization transaction batches processing. | 10 | v6.0.0+ | | v7.0.0 -| `TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_BATCH_SIZE` | | Number of token transfers to denormalize (add token\_type) in the batch. | 100 | v6.3.0+ | | v7.0.0 -| `TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_CONCURRENCY` | | Number of parallel denormalization token transfer batches processing. | 1 | v6.3.0+ | | v7.0.0 -| `SANITIZE_INCORRECT_NFT_BATCH_SIZE` | | Number of token transfers to sanitize in the batch. | 100 | v6.3.0+ | | v7.0.0 -| `SANITIZE_INCORRECT_NFT_CONCURRENCY` | | Number of parallel sanitizing token transfer batches processing. | 1 | v6.3.0+ | | v7.0.0 -| `SANITIZE_INCORRECT_NFT_TIMEOUT` | | Timeout between sanitizing token transfer batches processing. Implemented in [#11358](https://github.com/blockscout/blockscout/pull/11358) | 0 | v6.10.0+ | | v7.0.0 -| `SANITIZE_INCORRECT_WETH_BATCH_SIZE` | | Number of token transfers to sanitize in the batch. Implemented in [#10134](https://github.com/blockscout/blockscout/pull/10134) | 100 | v6.8.0+ | | v7.0.0 -| `SANITIZE_INCORRECT_WETH_CONCURRENCY` | | Number of parallel sanitizing token transfer batches processing. Implemented in [#10134](https://github.com/blockscout/blockscout/pull/10134) | 1 | v6.8.0+ | | v7.0.0 -| `SANITIZE_INCORRECT_WETH_TIMEOUT` | | Timeout between sanitizing token transfer batches processing. Implemented in [#11358](https://github.com/blockscout/blockscout/pull/11358) | 0 | v6.10.0+ | | v7.0.0 -| `REINDEX_INTERNAL_TRANSACTIONS_STATUS_BATCH_SIZE` | | Number of internal transactions to reindex in the batch. Implemented in [#11358](https://github.com/blockscout/blockscout/pull/11358) | 100 | v6.10.0+ | | v7.0.0 -| `REINDEX_INTERNAL_TRANSACTIONS_STATUS_CONCURRENCY` | | Number of parallel reindexing internal transaction batches processing. Implemented in [#11358](https://github.com/blockscout/blockscout/pull/11358) | 1 | v6.10.0+ | | v7.0.0 -| `REINDEX_INTERNAL_TRANSACTIONS_STATUS_TIMEOUT` | | Timeout between reindexing internal transaction batches processing. Implemented in [#11358](https://github.com/blockscout/blockscout/pull/11358) | 0 | v6.10.0+ | | v7.0.0 -| `FILECOIN_PENDING_ADDRESS_OPERATIONS_MIGRATION_BATCH_SIZE` | | Specifies the number of address records processed per batch during the backfill of pending address fetch operations. Implemented in [#10468](https://github.com/blockscout/blockscout/pull/10468). | 100 | v6.9.0+ | | v7.0.0 -| `FILECOIN_PENDING_ADDRESS_OPERATIONS_MIGRATION_CONCURRENCY` | | Specifies the number of concurrent processes used during the backfill of pending address fetch operations. Implemented in [#10468](https://github.com/blockscout/blockscout/pull/10468). | 1 | v6.9.0+ | | v7.0.0 -| `ARBITRUM_DA_RECORDS_NORMALIZATION_MIGRATION_BATCH_SIZE` | | Specifies the number of address records processed per batch during normalization of batch-to-blob associations by moving them from arbitrum_da_multi_purpose to a dedicated arbitrum_batches_to_da_blobs table. Implemented in [#11798](https://github.com/blockscout/blockscout/pull/11798). | 500 | v6.10.1+ | | v7.0.0 -| `ARBITRUM_DA_RECORDS_NORMALIZATION_MIGRATION_CONCURRENCY` | | Specifies the number of concurrent processes used during normalization of batch-to-blob associations by moving them from arbitrum_da_multi_purpose to a dedicated arbitrum_batches_to_da_blobs table. Implemented in [#11798](https://github.com/blockscout/blockscout/pull/11798). | 1 | v6.10.1+ | | v7.0.0 -| `CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVAL` | | Interval to restart the task which calculates addresses with balances. | 30m | v4.1.3+ | | v8.0.0 -| `HEALTHY_BLOCKS_PERIOD` | | New blocks indexed max delay in /health API endpoint. [Time format](env-variables.md#time-format). Implemented in [#2294](https://github.com/blockscout/blockscout/pull/2294/) | 5m | v2.0.2+ | | v8.0.0 | -| `EXCHANGE_RATES_CRYPTORANK_LIMIT` | | Sets the maximum number of token prices returned in a single request. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). | 1000 | v6.8.0+ | | v8.0.0 -| `EXCHANGE_RATES_SOURCE` | | Source for native coin and tokens price fetching. Possible values are: `coin_gecko`, `coin_market_cap` or `mobula`. Replaced with `MARKET_NATIVE_COIN_SOURCE` | `coin_gecko` | v4.1.4+ | | v8.0.0 | -| `EXCHANGE_RATES_SECONDARY_COIN_SOURCE` | | Source for secondary coin fetching. Possible values are: `coin_gecko`, `coin_market_cap` or `mobula`. Replaced with `MARKET_SECONDARY_COIN_SOURCE` | `coin_gecko` | v6.8.0+ | | v8.0.0 | -| `EXCHANGE_RATES_MARKET_CAP_SOURCE` | | Sets the source for market cap fetching. Available values `coin_gecko`, `mobula`, `coin_market_cap`, `cryptorank`. Replaced with `MARKET_MARKET_CAP_HISTORY_SOURCE` | `coin_gecko` | v5.2.3+ | | v8.0.0 | -| `EXCHANGE_RATES_TVL_SOURCE` | | Sets the source for TVL fetching. Available value is `defillama`. Replaced with `MARKET_TVL_HISTORY_SOURCE` | (empty) | v5.3.0+ | | v8.0.0 | -| `EXCHANGE_RATES_PRICE_SOURCE` | | Sets the source for price fetching. Available values are `crypto_compare`, `coin_gecko`, `mobula`, `coin_market_cap` and `cryptorank`. Replaced with `MARKET_NATIVE_COIN_HISTORY_SOURCE` | `crypto_compare` | v5.2.3+ | | v8.0.0 | -| `EXCHANGE_RATES_MOBULA_COIN_ID` | | Explicitly set Mobula coin ID. Replaced with `MARKET_MOBULA_COIN_ID` | (empty) | v6.8.0+ | | v8.0.0 | -| `EXCHANGE_RATES_MOBULA_SECONDARY_COIN_ID` | | Explicitly set Mobula coin ID for secondary coin market chart. Replaced with `MARKET_MOBULA_SECONDARY_COIN_ID` | (empty) | v6.8.0+ | | v8.0.0 | -| `EXCHANGE_RATES_MOBULA_API_KEY` | | Mobula API key. Replaced with `MARKET_MOBULA_API_KEY` | (empty) | v6.8.0+ | | v8.0.0 | -| `EXCHANGE_RATES_COINGECKO_COIN_ID` | | Explicitly set CoinGecko coin ID. Replaced with `MARKET_COINGECKO_COIN_ID` | (empty) | v4.1.4+ | | v8.0.0 | -| `EXCHANGE_RATES_COINGECKO_SECONDARY_COIN_ID` | | Explicitly set CoinGecko coin ID for secondary coin market chart. Implemented in [#9483](https://github.com/blockscout/blockscout/pull/9483). Replaced with `MARKET_COINGECKO_SECONDARY_COIN_ID` | (empty) | v6.3.0+ | | v8.0.0 | -| `EXCHANGE_RATES_COINGECKO_API_KEY` | | CoinGecko API key. Replaced with `MARKET_COINGECKO_API_KEY` | (empty) | v4.1.4+ | | v8.0.0 | -| `EXCHANGE_RATES_COINGECKO_BASE_URL` | | If set, overrides the Coingecko base URL. Implemented in [#9679](https://github.com/blockscout/blockscout/pull/9679). Replaced with `MARKET_COINGECKO_BASE_URL` | (empty) | v6.4.0+ | | v8.0.0 | -| `EXCHANGE_RATES_COINGECKO_BASE_PRO_URL` | | If set, overrides the Coingecko Pro base URL. Implemented in [#9679](https://github.com/blockscout/blockscout/pull/9679). Replaced with `MARKET_COINGECKO_BASE_PRO_URL` | (empty) | v6.4.0+ | | v8.0.0 | -| `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`. Replaced with `MARKET_COINMARKETCAP_API_KEY` | (empty) | v4.1.4+ | | v8.0.0 | -| `EXCHANGE_RATES_COINMARKETCAP_COIN_ID` | | CoinMarketCap coin id. Replaced with `MARKET_COINMARKETCAP_COIN_ID` | (empty) | v5.2.1+ | | v8.0.0 | -| `EXCHANGE_RATES_COINMARKETCAP_SECONDARY_COIN_ID` | | CoinMarketCap coin id for secondary coin market chart. Implemented in [#9483](https://github.com/blockscout/blockscout/pull/9483). Replaced with `MARKET_COINMARKETCAP_SECONDARY_COIN_ID` | (empty) | v6.3.0+ | | v8.0.0 | -| `EXCHANGE_RATES_COINMARKETCAP_BASE_URL` | | If set, overrides the CoinMarketCap base URL (Free and Pro). Implemented in [#9679](https://github.com/blockscout/blockscout/pull/9679). Replaced with `MARKET_COINMARKETCAP_BASE_URL` | (empty) | v6.4.0+ | | v8.0.0 | -| `EXCHANGE_RATES_DEFILLAMA_COIN_ID` | | DefiLlama coin id. Replaced with `MARKET_DEFILLAMA_COIN_ID` | (empty) | v5.3.0+ | | v8.0.0 | -| `EXCHANGE_RATES_FETCH_BTC_VALUE` | | if `true` explorer application will fetch btc\_value for token exchange rates. Implemented in [#5671](https://github.com/blockscout/blockscout/pull/5671). Replaced with `MARKET_FETCH_BTC_VALUE` | (empty) | v4.1.5+ | | v8.0.0 | -| `EXCHANGE_RATES_COINGECKO_PLATFORM_ID` | | [CoinGecko](https://www.coingecko.com/) platform id for which token prices are fetched, see full list in [`/asset_platforms`](https://api.coingecko.com/api/v3/asset_platforms) endpoint. Implemented in [#6925](https://github.com/blockscout/blockscout/pull/6925). Replaced with `MARKET_COINGECKO_PLATFORM_ID` | `ethereum` | v5.1.2+ | | v8.0.0 | -| `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](backend-env-variables.md#time-format). Implemented in [#6925](https://github.com/blockscout/blockscout/pull/6925). Replaced with `MARKET_TOKENS_INTERVAL` | `5s` | v5.1.2+ | | v8.0.0 | -| `TOKEN_EXCHANGE_RATE_REFETCH_INTERVAL` | | Interval between refetching token prices, responsible for the relevance of prices. [Time format](backend-env-variables.md#time-format). Implemented in [#6925](https://github.com/blockscout/blockscout/pull/6925). Replaced with `MARKET_TOKENS_REFETCH_INTERVAL` | `1 hour` | v5.1.2+ | | v8.0.0 | -| `TOKEN_EXCHANGE_RATE_MAX_BATCH_SIZE` | | Batch size of a single token price request. Implemented in [#6925](https://github.com/blockscout/blockscout/pull/6925). Replaced with `MARKET_TOKENS_MAX_BATCH_SIZE` | `150` | v5.1.2+ | | v8.0.0 | -| `DISABLE_TOKEN_EXCHANGE_RATE` | | If `true` disables fetching of token price. Implemented in [#6925](https://github.com/blockscout/blockscout/pull/6925). Replaced with `MARKET_TOKENS_FETCHER_ENABLED` (with inverted default) | `true` | v5.1.2+ | | v8.0.0 | -| `EXCHANGE_RATES_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL` | | CryptoCompare coin symbol for secondary coin market chart. Implemented in [#9483](https://github.com/blockscout/blockscout/pull/9483). Replaced with `MARKET_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL` | (empty) | v6.3.0+ | | v8.0.0 | -| `TOKEN_EXCHANGE_RATES_SOURCE` | | Sets the source for tokens price fetching. Available values are `coin_gecko`, `cryptorank`. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_TOKENS_SOURCE` | `coin_gecko` | v6.8.0+ | | v8.0.0 | -| `EXCHANGE_RATES_CRYPTORANK_SECONDARY_COIN_ID` | | Sets Cryptorank coin ID for secondary coin market chart. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_CRYPTORANK_SECONDARY_COIN_ID` | (empty) | v6.8.0+ | | v8.0.0 | -| `EXCHANGE_RATES_CRYPTORANK_PLATFORM_ID` | | Sets Cryptorank platform ID. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_CRYPTORANK_PLATFORM_ID` | (empty) | v6.8.0+ | | v8.0.0 | -| `EXCHANGE_RATES_CRYPTORANK_BASE_URL` | | If set, overrides the Cryptorank API url. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_CRYPTORANK_BASE_URL` | `https://api.cryptorank.io/v1/` | v6.8.0+ | | v8.0.0 | -| `EXCHANGE_RATES_CRYPTORANK_API_KEY` | | Cryptorank API key. Current implementation uses dedicated beta Cryptorank API endpoint. If you want to integrate Cryptorank price fetching you should contact Cryptorank to receive an API key. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_CRYPTORANK_API_KEY` | (empty) | v6.8.0+ | | v8.0.0 | -| `EXCHANGE_RATES_CRYPTORANK_COIN_ID` | | Sets Cryptorank coin ID. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_CRYPTORANK_COIN_ID` | (empty) | v6.8.0+ | | v8.0.0 | -| `CACHE_EXCHANGE_RATES_PERIOD` | | Value to tune the time to live of exchange rates. [Time format](backend-env-variables.md#time-format). Implemented in [#5671](https://github.com/blockscout/blockscout/pull/5671). | `10m` | v4.1.5+ | | v8.0.0 | -| `DISABLE_EXCHANGE_RATES` | | Disables or enables fetching of coin price from Coingecko API. Replaced with `DISABLE_MARKET` | `false` | v3.1.2+ | | v8.0.0 | \ No newline at end of file +| Variable | Required | Description | Default | Version | Need recompile | Deprecated in Version | +| ----------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -------- | -------------- | --------------------- | +| `ETHEREUM_JSONRPC_JSON_RPC_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. Replaced with `ETHEREUM_JSONRPC_TRANSPORT` | `http` | v2.1.1+ | | v3.1.0 | +| `COINMARKETCAP_PAGES` | | the number of pages on coinmarketcap to list in order to find token's price | 10 | v1.3.10+ | | v2.0.4 | +| `COIN_GECKO_ID` | | CoinGecko coin id required for fetching an exchange rate | poa-network | v2.0.4+ | | v2.1.0 | +| `NETWORK_ICON` | | Environment variable for the main network icon or testnet icon. Two options are `_test_network_icon.html` and `_network_icon.html` | \_network_icon.html | All | | v2.0.0 | +| `REWARDS_CONTRACT_ADDRESS` | | Emission rewards contract address. This env var is used only if `EMISSION_FORMAT` is set to `POA` . Replaced with `REWARDS_CONTRACT` | `0xeca443e8e1ab29971a45a9c57a6a9875701698a5` | v2.0.4+ | | v3.1.0 | +| `OMNI_BRIDGE_MEDIATOR` | | An address of home OmniBridge mediator to bridge multiple tokens from Ethereum. Providing this address enables bridged tokens functionality: bridged status and link to the original token in the foreign chain. | (empty) | v3.3.2+ | | v3.6.0 | +| `ENABLE_1559_SUPPORT` | | Enables store and display of additional fields on block and transaction according to [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) | false | v4.0.0+ | | v4.1.0 | +| `BLOCK_COUNT_CACHE_PERIOD` | | time to live of blocks with consensus count cache in seconds. This var was introduced in [#1876](https://github.com/poanetwork/blockscout/pull/1876) | 2 hours | v2.0.0+ | | v4.1.3 | +| `TXS_COUNT_CACHE_PERIOD` | | Interval in seconds to restart the task, which calculates the total txs count. | 2 hours | v1.3.9+ | | v4.1.3 | +| `ADDRESS_COUNT_CACHE_PERIOD` | | time to live of cache in seconds. This var was introduced in [#2822](https://github.com/poanetwork/blockscout/pull/2822)​ | 2 hours | v2.1.1+ | | v4.1.3 | +| `ADDRESS_SUM_CACHE_PERIOD` | | time to live of addresses sum (except burn address) cache in seconds. This var was introduced in [#2862](https://github.com/poanetwork/blockscout/pull/2862)​ | 1 hour | v2.1.1+ | | v4.1.3 | +| `TOTAL_GAS_USAGE_CACHE_PERIOD` | | Interval in seconds to restart the task, which calculates the total gas usage. | 2 hours | v3.4.0+ | | v4.1.3 | +| `ADDRESS_TRANSACTIONS_GAS_USAGE_COUNTER_CACHE_PERIOD` | | Interval in seconds to restart the task, which calculates gas usage at the address. | 30 minutes | v3.4.0+ | | v4.1.3 | +| `TOKEN_HOLDERS_COUNTER_CACHE_PERIOD` | | Interval in seconds to restart the task, which calculates holders count of the token. | 1 hour | v3.4.0+ | | v4.1.3 | +| `TOKEN_TRANSFERS_COUNTER_CACHE_PERIOD` | | Interval in seconds to restart the task, which calculates transfers count of the token. | 1 hour | v3.4.0+ | | v4.1.3 | +| `ADDRESS_WITH_BALANCES_UPDATE_INTERVAL` | | Interval in seconds to restart the task, which calculates addresses with balances. | 30 minutes | v1.3.9+ | | v4.1.3 | +| `AVERAGE_BLOCK_CACHE_PERIOD` | | Update of average block period cache, in seconds | 30 minutes | v2.0.2+ | | v4.1.3 | +| `MARKET_HISTORY_CACHE_PERIOD` | | Update of market history cache, in seconds | 6 hours | v2.0.2+ | | v4.1.3 | +| `COINGECKO_COIN_ID` | | Explicitly set CoinGecko coin ID | (empty) | v3.1.2+ | | v4.1.4 | +| `SOURCE_MODULE` | | This environment variable is used to calculate the exchange rate and is specifically used by the xDai Chain. Available value is `TokenBridge` | (empty) | v1.0.0+ | | v4.1.4 | +| `POS_STAKING_CONTRACT` | | The address of POSDAO staking contract. When provided, enables staking DApp. ValidatorSet and BlockReward contract addresses are fetched using corresponding getters. | (empty) | v3.4.0+ | | v4.1.x | +| `POS_ETH_SUBSCRIBE_MAX_DELAY` | |

Used by the staking DApp. The number of seconds of max delay after the latest block number arrived from eth_subscribe. Once this time is elapsed, the staking DApp automatically switches to eth_blockNumber which then is requested every POS_ETH_BLOCKNUMBER_PULL_INTERVAL milliseconds until eth_subscribe works again.

| 60 | v3.6.0+ | | v4.1.x | +| `POS_ETH_BLOCKNUMBER_PULL_INTERVAL` | | An interval between eth_blockNumber requests (in milliseconds) made by staking DApp to retrieve a new block number. Used when eth_subscribe stops working. | 500 | v3.6.0+ | | v4.1.x | +| `ENABLE_POS_STAKING_IN_MENU` | | Enables Staking dapp in the menu | false | v3.6.0+ | | v4.1.x | +| `SHOW_STAKING_WARNING` | | Disables/enables announcement inside staking dapp | false | v3.6.0+ | | v4.1.x | +| `STAKING_WARNING_MESSAGE` | | Message text of the announcement inside staking dapp | (empty) | v3.6.0+ | | v4.1.x | +| `ETH_OMNI_BRIDGE_MEDIATOR` | | An address of home OmniBridge mediator to bridge multiple tokens from Ethereum. Providing this address enables bridged tokens functionality: bridged status and link to the original token in the foreign chain. | (empty) | v3.6.0+ | | v4.1.x | +| `BSC_OMNI_BRIDGE_MEDIATOR` | | An address of home OmniBridge mediator to bridge multiple tokens from Binance Smart Chain. Providing this address enables bridged tokens functionality: bridged status and link to the original token in the foreign chain. | (empty) | v3.6.0+ | | v4.1.x | +| `AMB_BRIDGE_MEDIATORS` | | A comma-separated list of AMB extensions' mediators' addresses' hashes to fetch bridged tokens through those mediators. | (empty) | v3.6.0+ | | v4.1.x | +| `FOREIGN_JSON_RPC` | | JSON RPC endpoint to the foreign chain in order to get metadata of bridged through Omni-bridge token. It was introduced in this PR [#3282](https://github.com/poanetwork/blockscout/pull/3282) | (empty) | v3.3.3+ | | v4.1.x | +| `BRIDGE_MARKET_CAP_UPDATE_INTERVAL` | | Market cap update interval for \`TokenBridge\` supply module as for TokenBridge and for OmniBridge as well, in seconds. It was introduced in this PR [#3293](https://github.com/poanetwork/blockscout/pull/3293)​ | 30 minutes | v3.3.3+ | | v4.1.x | +| `DISABLE_BRIDGE_MARKET_CAP_UPDATER` | | Disables recurring consolidation of TokenBridge market cap from TokenBridge, OmniBridge and AMB extensions | (empty) | v3.3.3+ | | v4.1.x | +| `EXTERNAL_APPS` | | An array of external apps to display in Apps menu item. This var was introduced in this PR [#3184](https://github.com/poanetwork/blockscout/pull/3184) and looks like an array of JSON objects. | (empty) | v3.3.1+ | | v5.0.0 | +| `API_PATH` | | PATH in API endpoint URL at API docs page. | / | v3.1.0+ | ✅ | v5.1.1 | +| `SOCKET_ROOT` | | Custom websocket path. | (empty) | v3.0.0+ | ✅ | v5.1.1 | +| `MAX_SIZE_UNLESS_HIDE_ARRAY` | | Hide long arrays in smart-contracts. To get more details: [#4218](https://github.com/blockscout/blockscout/pull/4218) | 50 | v3.7.1+ | | v5.1.2 | +| `ALLOWED_EVM_VERSIONS` | | the comma-separated list of allowed EVM versions for contract verification. This var was introduced in [#1964](https://github.com/poanetwork/blockscout/pull/1964) | "homestead, tangerineWhistle, spuriousDragon, byzantium, constantinople, petersburg,istanbul" | v2.0.0+ | | v5.1.2 | +| `DISABLE_KNOWN_TOKENS` | | Disables or enables token symbol for known contract. | false | v3.4.0+ | | v5.1.2 | +| `TOKEN_BALANCE_ON_DEMAND_FETCHER_THRESHOLD_MINUTES` | | A threshold to invalidate token balance cache. Implemented in [#3870](https://github.com/blockscout/blockscout/pull/3870) | 60 minutes | v3.7.1+ | | v5.1.2 | +| `COIN_BALANCE_ON_DEMAND_FETCHER_THRESHOLD_MINUTES` | | A threshold to invalidate coin balance cache. Implemented in [#5240](https://github.com/blockscout/blockscout/pull/5240) | 60 minutes | v4.1.2+ | | v5.1.2 | +| `CUSTOM_CONTRACT_ADDRESSES_TEST_TOKEN` | | List of test tokens addresses: test label will be applied and those tokens will be excluded from omni bridge market cap calculation. | (empty) | v3.6.0+ | | v5.1.2 | +| `CACHE_TOKEN_EXCHANGE_RATE_PERIOD` | | Managing cache invalidation for token's exchange rate. | 1 hour | v3.5.0+ | | v5.1.2 | +| `INDEXER_DISABLE_EMPTY_BLOCK_SANITIZER` | | Empty blocks sanitizer is disabled if `true` | false | v4.1.3+ | | v5.1.2 | +| `HISTORY_FETCH_INTERVAL` | | Interval how often to request count of txs per current day in order to display txs count per day chart on the main page. [Time format](../#time-format). | 1h | v3.1.2+ | | v5.1.3 | +| `WOBSERVER_ENABLED` | | If `true` enables wobserver interface. | (empty) | v3.3.2+ | | v5.1.3 | +| `VISUALIZE_SOL2UML_ENABLED` | | If `true`, integration with [Rust sol2uml visualizer](https://github.com/blockscout/blockscout-rs/tree/main/visualizer) is enabled. Implemented in [#6401](https://github.com/blockscout/blockscout/pull/6401) | (empty) | v5.0.0+ | | v5.1.3 | +| `VISUALIZE_SOL2UML_SERVICE_URL` | | URL of Rust visualizer. Implemented in [#6401](https://github.com/blockscout/blockscout/pull/6401) | (empty) | v5.0.0+ | | v5.1.3 | +| `SIG_PROVIDER_SERVICE_URL` | | If `true`, integration with [Rust sig-provider service](https://github.com/blockscout/blockscout-rs/tree/main/sig-provider) is enabled. Implemented in [#6541](https://github.com/blockscout/blockscout/pull/6541) | (empty) | v5.1.0+ | | v5.1.3 | +| `SIG_PROVIDER_ENABLED` | | URL of Rust sig-provider service. Implemented in [#6541](https://github.com/blockscout/blockscout/pull/6541) | (empty) | v5.1.0+ | | v5.1.3 | +| `ENABLE_RUST_VERIFICATION_SERVICE` | | If `true`, integration with [Rust smart-contract verifier](https://github.com/blockscout/blockscout-rs/tree/main/smart-contract-verifier) is enabled. Implemented in [#5860](https://github.com/blockscout/blockscout/pull/5860) | (empty) | v4.1.8+ | | v5.1.3 | +| `RUST_VERIFICATION_SERVICE_URL` | | URL of Rust smart-contract verifier. Implemented in [#5860](https://github.com/blockscout/blockscout/pull/5860) | (empty) | v4.1.8+ | | v5.1.3 | +| `LINK_TO_OTHER_EXPLORERS` | | true/false. If true, links to other explorers are added in the footer. | (empty) | v1.3.0+ | | v5.1.3 | +| `OTHER_EXPLORERS` | | The list of alternative explorers. This env var was introduced in PR [#3414](https://github.com/poanetwork/blockscout/pull/3414). | (empty) | v3.4.0+ | | v5.1.3 | +| `FOOTER_ENABLE_FORUM_LINK` | | Enable forum menu item in the footer. Implemented in [#6351](https://github.com/blockscout/blockscout/pull/6351) | false | v5.0.0+ | | v5.1.3 | +| `ENABLE_SOURCIFY_INTEGRATION` | | Enables or disables verification of contracts through Sourcify. | false | v3.7.0+ | | v5.1.3 | +| `ENABLE_TXS_STATS` | | Disables or enables txs per day stats gathering. | true | v3.1.2+ | | v5.1.3 | +| `CACHE_ENABLE_TOTAL_GAS_USAGE_COUNTER` | | if `true`, enables cache for total gas usage counter. | `false` | v5.1.2+ | | v5.1.3 | +| `LOGO_FOOTER` | | Environment variable for the footer logo image location. The logo files names for different chains can be found [here](https://github.com/poanetwork/blockscout/tree/master/apps/block_scout_web/assets/static/images). | /images/blockscout_logo.svg | | | v5.1.3 | +| `INDEXER_TOKEN_INSTANCE_CONCURRENCY` | | Concurrency for token instance fetcher. Implemented in [#6981](https://github.com/blockscout/blockscout/pull/6981). | 10 | v5.1.2+ | | v5.1.4 | +| `INDEXER_TOKEN_INSTANCE_BATCH_SIZE` | | Batch size for token instance fetcher. Implemented in [#6981](https://github.com/blockscout/blockscout/pull/6981). | 1 | v5.1.2+ | | v5.1.4 | +| `DISABLE_TOKEN_INSTANCE_FETCHER` | | If `true`, token instance fetcher doesn't run | `false` | v5.0.0+ | | v5.1.4 | +| `ACCOUNT_AUTH0_LOGOUT_URL` | | Auth0 logout URL [Ueberauth Auth0](https://hexdocs.pm/ueberauth_auth0/readme.html) | (empty) | v5.0.0+ | | v5.1.4 | +| `ACCOUNT_AUTH0_LOGOUT_RETURN_URL` | | Auth0 logout return URL [Ueberauth Auth0](https://hexdocs.pm/ueberauth_auth0/readme.html) | (empty) | v5.0.0+ | | v5.1.4 | +| `ACCOUNT_AUTHENTICATE_ENDPOINT_API_KEY` | | `api/account/v1/authenticate` api key ([#7068](https://github.com/blockscout/blockscout/pull/7068)) | (empty) | v5.1.2+ | | v5.1.5 | +| `DISABLE_READ_API` | | If `true`, read-only endpoints to API are hidden (compile-time). | `false` | v2.0.3+ | ✅ | v5.1.5 | +| `DISABLE_WRITE_API` | | If `true`, write endpoints to API are hidden (compile-time). | `false` | v2.0.3+ | ✅ | v5.1.5 | +| `CONTRACT_VERIFICATION_ALLOWED_EVM_VERSIONS` | | the comma-separated list of allowed EVM versions for contract verification. This var was introduced in [#1964](https://github.com/poanetwork/blockscout/pull/1964) | "homestead, tangerineWhistle, spuriousDragon, byzantium, constantinople, petersburg,istanbul" | v2.0.0+ | | v5.2.0 | +| `EXCHANGE_RATES_SOURCE` | | This environment variable is used to calculate the exchange rates. Available value is `token_bridge`. Available values are also `coin_gecko` and `coin_market_cap`. | (empty) | v4.1.4+ | | v5.2.3 | +| `INDEXER_ZKEVM_BATCHES_ENABLED` | | Enables Polygon zkEVM batches fetcher. Implemented in [#7584](https://github.com/blockscout/blockscout/pull/7584). | `false` | v5.3.1+ | | v6.2.0 | +| `INDEXER_ZKEVM_BATCHES_CHUNK_SIZE` | | The number of Polygon zkEVM batches in one chunk when reading them from RPC. Implemented in [#7584](https://github.com/blockscout/blockscout/pull/7584). | 20 | v5.3.1+ | | v6.2.0 | +| `INDEXER_ZKEVM_BATCHES_RECHECK_INTERVAL` | | The latest batch rechecking interval, seconds. Implemented in [#7584](https://github.com/blockscout/blockscout/pull/7584). | 60 | v5.3.1+ | | v6.2.0 | +| `GRAPHIQL_TRANSACTION` | | Default transaction hash in a sample query to GraphiQL. | (empty) | v1.2.0+ | ✅ | v6.4.0 | +| `INDEXER_TOKEN_INSTANCE_RETRY_REFETCH_INTERVAL` | | Interval between attempts to fetch token instance metadata. [Time format](../#time-format). Implemented in [#7286](https://github.com/blockscout/blockscout/pull/7286). | `24h` | v5.1.4+ | | v6.6.0 | +| `INDEXER_INTERNAL_TRANSACTIONS_INDEXING_FINISHED_THRESHOLD` | | In the case when the 1st tx in the chain already has internal transactions, If the number of blocks in pending_block_operations is less than the value in this env var, Blockscout will consider, that indexing of internal transactions finished, otherwise, it will consider, that indexing is still taking place and the indexing banner will appear at the top. Implemented in [#7576](https://github.com/blockscout/blockscout/pull/7576). | 1000 | v5.2.0+ | | v6.6.0 | +| `INDEXER_OPTIMISM_L1_DEPOSITS_START_BLOCK` | | The number of the L1 block from which deposits will be fetched. Implemented in [#6993](https://github.com/blockscout/blockscout/pull/6993). | (empty) | v6.3.0+ | | v6.8.0 | +| `INDEXER_OPTIMISM_L1_WITHDRAWALS_START_BLOCK` | | The number of start block on L1 to index withdrawal events. If the table of withdrawal events is not empty, the process will continue indexing from the last indexed withdrawal event. Implemented in [#6980](https://github.com/blockscout/blockscout/pull/6980). | (empty) | v6.3.0+ | | v6.8.0 | +| `INDEXER_OPTIMISM_L1_OUTPUT_ROOTS_START_BLOCK` | | The number of start block on L1 to index output roots. If the table of output roots is not empty, the process will continue indexing from the last indexed root. Implemented in [#6980](https://github.com/blockscout/blockscout/pull/6980). | (empty) | v6.3.0+ | | v6.8.0 | +| `INDEXER_OPTIMISM_L1_BATCH_START_BLOCK` | | The number of start block on L1 to index transaction batches. If the table of batches is not empty, the process will continue indexing from the last indexed batch. Implemented in [#6980](https://github.com/blockscout/blockscout/pull/6980). | (empty) | v6.3.0+ | | v6.8.0 | +| `INDEXER_OPTIMISM_L1_DEPOSITS_BATCH_SIZE` | | Number of blocks in a single `eth_getLogs` request of the Deposits fetcher. Implemented in [#6993](https://github.com/blockscout/blockscout/pull/6993). | 500 | v6.3.0+ | | v6.8.0 | +| `METRICS_DISABLE_PUBLIC` | | Variable to disable running queries at /public-metrics endpoint. Implemented in [#10279](https://github.com/blockscout/blockscout/pull/10279). | false | v6.7.2+ | | v6.8.0 | +| `RESTRICTED_LIST` | | A comma-separated list of addresses to enable restricted access to them. | (empty) | v3.3.3+ | | v6.10.0 | +| `RESTRICTED_LIST_KEY` | | A key to access addresses listed in`RESTRICTED_LIST` variable. Can be passed via query param to the page's URL: `?key=...` | (empty) | v3.3.3+ | | v6.10.0 | +| `CHECKSUM_FUNCTION` | | Defines checksum address function. 2 available values: `rsk`, `eth` | `eth` | v2.0.1+ | | v7.0.0 | +| `TOKEN_ID_MIGRATION_FIRST_BLOCK` | | Bottom block for token id migration. Implemented in [#6391](https://github.com/blockscout/blockscout/pull/6391) | 0 | v5.0.0+ | | v7.0.0 | +| `TOKEN_ID_MIGRATION_CONCURRENCY` | | Number of workers performing the token id migration. Implemented in [#6391](https://github.com/blockscout/blockscout/pull/6391) | 1 | v5.0.0+ | | v7.0.0 | +| `TOKEN_ID_MIGRATION_BATCH_SIZE` | | Interval of token transfer block numbers processed by a token id migration worker at a time. Implemented in [#6391](https://github.com/blockscout/blockscout/pull/6391) | 500 | v5.0.0+ | | v7.0.0 | +| `SHRINK_INTERNAL_TRANSACTIONS_BATCH_SIZE` | | Batch size of the shrink internal transactions migration. _Note_: before release "v6.8.0", the default value was 1000. Implemented in [#10567](https://github.com/blockscout/blockscout/pull/10567), changed default value in [#10689](https://github.com/blockscout/blockscout/pull/10689). | 100 | v6.8.0+ | | v7.0.0 | +| `SHRINK_INTERNAL_TRANSACTIONS_CONCURRENCY` | | Concurrency of the shrink internal transactions migration. Implemented in [#10567](https://github.com/blockscout/blockscout/pull/10567). | 10 | v6.8.0+ | | v7.0.0 | +| `TOKEN_INSTANCE_OWNER_MIGRATION_CONCURRENCY` | | Concurrency of new fields backfiller implemented in [#8386](https://github.com/blockscout/blockscout/pull/8386) | 5 | v5.3.0+ | | v7.0.0 | +| `TOKEN_INSTANCE_OWNER_MIGRATION_BATCH_SIZE` | | Batch size of new fields backfiller implemented in [#8386](https://github.com/blockscout/blockscout/pull/8386) | 50 | v5.3.0+ | | v7.0.0 | +| `TOKEN_INSTANCE_OWNER_MIGRATION_ENABLED` | | Enable of backfiller from [#8386](https://github.com/blockscout/blockscout/pull/8386) implemented in [#8752](https://github.com/blockscout/blockscout/pull/8752) | false | v5.3.2+ | | v7.0.0 | +| `DENORMALIZATION_MIGRATION_BATCH_SIZE` | | Number of transactions to denormalize (add block timestamp and consensus) in the batch. | 500 | v6.0.0+ | | v7.0.0 | +| `DENORMALIZATION_MIGRATION_CONCURRENCY` | | Number of parallel denormalization transaction batches processing. | 10 | v6.0.0+ | | v7.0.0 | +| `TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_BATCH_SIZE` | | Number of token transfers to denormalize (add token_type) in the batch. | 100 | v6.3.0+ | | v7.0.0 | +| `TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_CONCURRENCY` | | Number of parallel denormalization token transfer batches processing. | 1 | v6.3.0+ | | v7.0.0 | +| `SANITIZE_INCORRECT_NFT_BATCH_SIZE` | | Number of token transfers to sanitize in the batch. | 100 | v6.3.0+ | | v7.0.0 | +| `SANITIZE_INCORRECT_NFT_CONCURRENCY` | | Number of parallel sanitizing token transfer batches processing. | 1 | v6.3.0+ | | v7.0.0 | +| `SANITIZE_INCORRECT_NFT_TIMEOUT` | | Timeout between sanitizing token transfer batches processing. Implemented in [#11358](https://github.com/blockscout/blockscout/pull/11358) | 0 | v6.10.0+ | | v7.0.0 | +| `SANITIZE_INCORRECT_WETH_BATCH_SIZE` | | Number of token transfers to sanitize in the batch. Implemented in [#10134](https://github.com/blockscout/blockscout/pull/10134) | 100 | v6.8.0+ | | v7.0.0 | +| `SANITIZE_INCORRECT_WETH_CONCURRENCY` | | Number of parallel sanitizing token transfer batches processing. Implemented in [#10134](https://github.com/blockscout/blockscout/pull/10134) | 1 | v6.8.0+ | | v7.0.0 | +| `SANITIZE_INCORRECT_WETH_TIMEOUT` | | Timeout between sanitizing token transfer batches processing. Implemented in [#11358](https://github.com/blockscout/blockscout/pull/11358) | 0 | v6.10.0+ | | v7.0.0 | +| `REINDEX_INTERNAL_TRANSACTIONS_STATUS_BATCH_SIZE` | | Number of internal transactions to reindex in the batch. Implemented in [#11358](https://github.com/blockscout/blockscout/pull/11358) | 100 | v6.10.0+ | | v7.0.0 | +| `REINDEX_INTERNAL_TRANSACTIONS_STATUS_CONCURRENCY` | | Number of parallel reindexing internal transaction batches processing. Implemented in [#11358](https://github.com/blockscout/blockscout/pull/11358) | 1 | v6.10.0+ | | v7.0.0 | +| `REINDEX_INTERNAL_TRANSACTIONS_STATUS_TIMEOUT` | | Timeout between reindexing internal transaction batches processing. Implemented in [#11358](https://github.com/blockscout/blockscout/pull/11358) | 0 | v6.10.0+ | | v7.0.0 | +| `FILECOIN_PENDING_ADDRESS_OPERATIONS_MIGRATION_BATCH_SIZE` | | Specifies the number of address records processed per batch during the backfill of pending address fetch operations. Implemented in [#10468](https://github.com/blockscout/blockscout/pull/10468). | 100 | v6.9.0+ | | v7.0.0 | +| `FILECOIN_PENDING_ADDRESS_OPERATIONS_MIGRATION_CONCURRENCY` | | Specifies the number of concurrent processes used during the backfill of pending address fetch operations. Implemented in [#10468](https://github.com/blockscout/blockscout/pull/10468). | 1 | v6.9.0+ | | v7.0.0 | +| `ARBITRUM_DA_RECORDS_NORMALIZATION_MIGRATION_BATCH_SIZE` | | Specifies the number of address records processed per batch during normalization of batch-to-blob associations by moving them from arbitrum_da_multi_purpose to a dedicated arbitrum_batches_to_da_blobs table. Implemented in [#11798](https://github.com/blockscout/blockscout/pull/11798). | 500 | v6.10.1+ | | v7.0.0 | +| `ARBITRUM_DA_RECORDS_NORMALIZATION_MIGRATION_CONCURRENCY` | | Specifies the number of concurrent processes used during normalization of batch-to-blob associations by moving them from arbitrum_da_multi_purpose to a dedicated arbitrum_batches_to_da_blobs table. Implemented in [#11798](https://github.com/blockscout/blockscout/pull/11798). | 1 | v6.10.1+ | | v7.0.0 | +| `CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVAL` | | Interval to restart the task which calculates addresses with balances. | 30m | v4.1.3+ | | v8.0.0 | +| `HEALTHY_BLOCKS_PERIOD` | | New blocks indexed max delay in /health API endpoint. [Time format](env-variables.md#time-format). Implemented in [#2294](https://github.com/blockscout/blockscout/pull/2294/) | 5m | v2.0.2+ | | v8.0.0 | +| `EXCHANGE_RATES_CRYPTORANK_LIMIT` | | Sets the maximum number of token prices returned in a single request. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). | 1000 | v6.8.0+ | | v8.0.0 | +| `EXCHANGE_RATES_SOURCE` | | Source for native coin and tokens price fetching. Possible values are: `coin_gecko`, `coin_market_cap` or `mobula`. Replaced with `MARKET_NATIVE_COIN_SOURCE` | `coin_gecko` | v4.1.4+ | | v8.0.0 | +| `EXCHANGE_RATES_SECONDARY_COIN_SOURCE` | | Source for secondary coin fetching. Possible values are: `coin_gecko`, `coin_market_cap` or `mobula`. Replaced with `MARKET_SECONDARY_COIN_SOURCE` | `coin_gecko` | v6.8.0+ | | v8.0.0 | +| `EXCHANGE_RATES_MARKET_CAP_SOURCE` | | Sets the source for market cap fetching. Available values `coin_gecko`, `mobula`, `coin_market_cap`, `cryptorank`. Replaced with `MARKET_MARKET_CAP_HISTORY_SOURCE` | `coin_gecko` | v5.2.3+ | | v8.0.0 | +| `EXCHANGE_RATES_TVL_SOURCE` | | Sets the source for TVL fetching. Available value is `defillama`. Replaced with `MARKET_TVL_HISTORY_SOURCE` | (empty) | v5.3.0+ | | v8.0.0 | +| `EXCHANGE_RATES_PRICE_SOURCE` | | Sets the source for price fetching. Available values are `crypto_compare`, `coin_gecko`, `mobula`, `coin_market_cap` and `cryptorank`. Replaced with `MARKET_NATIVE_COIN_HISTORY_SOURCE` | `crypto_compare` | v5.2.3+ | | v8.0.0 | +| `EXCHANGE_RATES_MOBULA_COIN_ID` | | Explicitly set Mobula coin ID. Replaced with `MARKET_MOBULA_COIN_ID` | (empty) | v6.8.0+ | | v8.0.0 | +| `EXCHANGE_RATES_MOBULA_SECONDARY_COIN_ID` | | Explicitly set Mobula coin ID for secondary coin market chart. Replaced with `MARKET_MOBULA_SECONDARY_COIN_ID` | (empty) | v6.8.0+ | | v8.0.0 | +| `EXCHANGE_RATES_MOBULA_API_KEY` | | Mobula API key. Replaced with `MARKET_MOBULA_API_KEY` | (empty) | v6.8.0+ | | v8.0.0 | +| `EXCHANGE_RATES_COINGECKO_COIN_ID` | | Explicitly set CoinGecko coin ID. Replaced with `MARKET_COINGECKO_COIN_ID` | (empty) | v4.1.4+ | | v8.0.0 | +| `EXCHANGE_RATES_COINGECKO_SECONDARY_COIN_ID` | | Explicitly set CoinGecko coin ID for secondary coin market chart. Implemented in [#9483](https://github.com/blockscout/blockscout/pull/9483). Replaced with `MARKET_COINGECKO_SECONDARY_COIN_ID` | (empty) | v6.3.0+ | | v8.0.0 | +| `EXCHANGE_RATES_COINGECKO_API_KEY` | | CoinGecko API key. Replaced with `MARKET_COINGECKO_API_KEY` | (empty) | v4.1.4+ | | v8.0.0 | +| `EXCHANGE_RATES_COINGECKO_BASE_URL` | | If set, overrides the Coingecko base URL. Implemented in [#9679](https://github.com/blockscout/blockscout/pull/9679). Replaced with `MARKET_COINGECKO_BASE_URL` | (empty) | v6.4.0+ | | v8.0.0 | +| `EXCHANGE_RATES_COINGECKO_BASE_PRO_URL` | | If set, overrides the Coingecko Pro base URL. Implemented in [#9679](https://github.com/blockscout/blockscout/pull/9679). Replaced with `MARKET_COINGECKO_BASE_PRO_URL` | (empty) | v6.4.0+ | | v8.0.0 | +| `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`. Replaced with `MARKET_COINMARKETCAP_API_KEY` | (empty) | v4.1.4+ | | v8.0.0 | +| `EXCHANGE_RATES_COINMARKETCAP_COIN_ID` | | CoinMarketCap coin id. Replaced with `MARKET_COINMARKETCAP_COIN_ID` | (empty) | v5.2.1+ | | v8.0.0 | +| `EXCHANGE_RATES_COINMARKETCAP_SECONDARY_COIN_ID` | | CoinMarketCap coin id for secondary coin market chart. Implemented in [#9483](https://github.com/blockscout/blockscout/pull/9483). Replaced with `MARKET_COINMARKETCAP_SECONDARY_COIN_ID` | (empty) | v6.3.0+ | | v8.0.0 | +| `EXCHANGE_RATES_COINMARKETCAP_BASE_URL` | | If set, overrides the CoinMarketCap base URL (Free and Pro). Implemented in [#9679](https://github.com/blockscout/blockscout/pull/9679). Replaced with `MARKET_COINMARKETCAP_BASE_URL` | (empty) | v6.4.0+ | | v8.0.0 | +| `EXCHANGE_RATES_DEFILLAMA_COIN_ID` | | DefiLlama coin id. Replaced with `MARKET_DEFILLAMA_COIN_ID` | (empty) | v5.3.0+ | | v8.0.0 | +| `EXCHANGE_RATES_FETCH_BTC_VALUE` | | if `true` explorer application will fetch btc_value for token exchange rates. Implemented in [#5671](https://github.com/blockscout/blockscout/pull/5671). Replaced with `MARKET_FETCH_BTC_VALUE` | (empty) | v4.1.5+ | | v8.0.0 | +| `EXCHANGE_RATES_COINGECKO_PLATFORM_ID` | | [CoinGecko](https://www.coingecko.com/) platform id for which token prices are fetched, see full list in [`/asset_platforms`](https://api.coingecko.com/api/v3/asset_platforms) endpoint. Implemented in [#6925](https://github.com/blockscout/blockscout/pull/6925). Replaced with `MARKET_COINGECKO_PLATFORM_ID` | `ethereum` | v5.1.2+ | | v8.0.0 | +| `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](backend-env-variables.md#time-format). Implemented in [#6925](https://github.com/blockscout/blockscout/pull/6925). Replaced with `MARKET_TOKENS_INTERVAL` | `5s` | v5.1.2+ | | v8.0.0 | +| `TOKEN_EXCHANGE_RATE_REFETCH_INTERVAL` | | Interval between refetching token prices, responsible for the relevance of prices. [Time format](backend-env-variables.md#time-format). Implemented in [#6925](https://github.com/blockscout/blockscout/pull/6925). Replaced with `MARKET_TOKENS_REFETCH_INTERVAL` | `1 hour` | v5.1.2+ | | v8.0.0 | +| `TOKEN_EXCHANGE_RATE_MAX_BATCH_SIZE` | | Batch size of a single token price request. Implemented in [#6925](https://github.com/blockscout/blockscout/pull/6925). Replaced with `MARKET_TOKENS_MAX_BATCH_SIZE` | `150` | v5.1.2+ | | v8.0.0 | +| `DISABLE_TOKEN_EXCHANGE_RATE` | | If `true` disables fetching of token price. Implemented in [#6925](https://github.com/blockscout/blockscout/pull/6925). Replaced with `MARKET_TOKENS_FETCHER_ENABLED` (with inverted default) | `true` | v5.1.2+ | | v8.0.0 | +| `EXCHANGE_RATES_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL` | | CryptoCompare coin symbol for secondary coin market chart. Implemented in [#9483](https://github.com/blockscout/blockscout/pull/9483). Replaced with `MARKET_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL` | (empty) | v6.3.0+ | | v8.0.0 | +| `TOKEN_EXCHANGE_RATES_SOURCE` | | Sets the source for tokens price fetching. Available values are `coin_gecko`, `cryptorank`. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_TOKENS_SOURCE` | `coin_gecko` | v6.8.0+ | | v8.0.0 | +| `EXCHANGE_RATES_CRYPTORANK_SECONDARY_COIN_ID` | | Sets Cryptorank coin ID for secondary coin market chart. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_CRYPTORANK_SECONDARY_COIN_ID` | (empty) | v6.8.0+ | | v8.0.0 | +| `EXCHANGE_RATES_CRYPTORANK_PLATFORM_ID` | | Sets Cryptorank platform ID. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_CRYPTORANK_PLATFORM_ID` | (empty) | v6.8.0+ | | v8.0.0 | +| `EXCHANGE_RATES_CRYPTORANK_BASE_URL` | | If set, overrides the Cryptorank API url. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_CRYPTORANK_BASE_URL` | `https://api.cryptorank.io/v1/` | v6.8.0+ | | v8.0.0 | +| `EXCHANGE_RATES_CRYPTORANK_API_KEY` | | Cryptorank API key. Current implementation uses dedicated beta Cryptorank API endpoint. If you want to integrate Cryptorank price fetching you should contact Cryptorank to receive an API key. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_CRYPTORANK_API_KEY` | (empty) | v6.8.0+ | | v8.0.0 | +| `EXCHANGE_RATES_CRYPTORANK_COIN_ID` | | Sets Cryptorank coin ID. Implemented in [#10550](https://github.com/blockscout/blockscout/pull/10550). Replaced with `MARKET_CRYPTORANK_COIN_ID` | (empty) | v6.8.0+ | | v8.0.0 | +| `CACHE_EXCHANGE_RATES_PERIOD` | | Value to tune the time to live of exchange rates. [Time format](backend-env-variables.md#time-format). Implemented in [#5671](https://github.com/blockscout/blockscout/pull/5671). | `10m` | v4.1.5+ | | v8.0.0 | +| `DISABLE_EXCHANGE_RATES` | | Disables or enables fetching of coin price from Coingecko API. Replaced with `DISABLE_MARKET` | `false` | v3.1.2+ | | v8.0.0 | +| `API_RATE_LIMIT_TIME_INTERVAL` | | Time interval of rate limit. Implemented in [#7148](https://github.com/blockscout/blockscout/pull/7148). Replaced with `API_RATE_LIMIT_BY_KEY_TIME_INTERVAL`, `API_RATE_LIMIT_BY_WHITELISTED_IP_TIME_INTERVAL`, `API_RATE_LIMIT_UI_V2_WITH_TOKEN_TIME_INTERVAL`, `API_RATE_LIMIT_BY_ACCOUNT_API_KEY_TIME_INTERVAL`, `API_RATE_LIMIT_BY_IP_TIME_INTERVAL` | `1s` | v5.1.3+ | | master |