Download Latest Version BlockScout v9.2.2 source code.tar.gz (8.0 MB)
Email in envelope

Get an email when there's a new version of BlockScout

Home / v9.1.0
Name Modified Size InfoDownloads / Week
Parent folder
BlockScout v9.1.0 source code.tar.gz 2025-09-15 8.0 MB
BlockScout v9.1.0 source code.zip 2025-09-15 9.8 MB
README.md 2025-09-15 21.6 kB
Totals: 3 Items   17.8 MB 0

🚨 API v2 – Breaking Changes in Release 9.1.0

New fields have been introduced in several REST API response objects:

  • Token Transfer → new token_type field (ERC-20 / ERC-721 / ERC-1155 / ERC-404)
  • Transaction → new is_pending_update flag (true / false)
  • Block → new is_pending_update flag (true / false)
  • Address, Token → new reputation field (null / ok / scam)
  • Smart Contract → new conflicting_implementations field

Removed Endpoints

Public tags - related endpoints have been removed:
- /api/v2/user/public_tags
- /api/v2/user/public_tags/:id - /account/public_tags_request


🚨 Breaking Changes in the JSON RPC API

  • txlist endpoint → new methodId field has been added to the response

💡 New environment variables

New environment variables list | Variable | Description | Parameters | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | `DISABLE_FILE_LOGGING` | Disables file-based logging when set to `true`. When enabled, application logs will only be written to stdout/stderr. | Version: v9.1.0\+
Default: `false`
Applications: API, Indexer | | `API_RATE_LIMIT_REMOTE_IP_HEADERS` | Comma separated list of HTTP headers to extract the real client IP address when Blockscout is behind a proxy for rate limiting purposes. Implemented in [#12386](https://github.com/blockscout/blockscout/pull/13082) | Version: v9.1.0\+
Default: `x-forwarded-for`
Applications: API | | `API_RATE_LIMIT_REMOTE_IP_KNOWN_PROXIES` | Comma separated list of trusted proxy IP addresses or CIDR ranges that are allowed to set the client IP headers for rate limiting. Implemented in [#12386](https://github.com/blockscout/blockscout/pull/13082) | Version: v9.1.0\+
Default: `(empty)`
Applications: API | | `INDEXER_DISABLE_OPTIMISM_INTEROP_MULTICHAIN_EXPORT` | Disables exporting of interop messages to Multichain service. Implemented in [#13051](https://github.com/blockscout/blockscout/pull/13051). | Version: v9.1.0\+
Default: `true`
Applications: Indexer | | `MICROSERVICE_MULTICHAIN_SEARCH_COUNTERS_CHUNK_SIZE` | Chunk size of counters while exporting to Multichain Search DB. Implemented in [#13007](https://github.com/blockscout/blockscout/pull/13007). | Version: v9.1.0\+
Default: `1000`
Applications: Indexer | | `INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_FETCHER` | If `true`, multichain DB counters export fetcher doesn't run. Implemented in [#13007](https://github.com/blockscout/blockscout/pull/13007). | Version: v9.1.0\+
Default: `false`
Applications: Indexer | | `INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_BATCH_SIZE` | Batch size for multichain DB counters export fetcher. Implemented in [#13007](https://github.com/blockscout/blockscout/pull/13007). | Version: v9.1.0\+
Default: `1000`
Applications: Indexer | | `INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_CONCURRENCY` | Concurrency for multichain DB counters export fetcher. Implemented in [#13007](https://github.com/blockscout/blockscout/pull/13007). | Version: v9.1.0\+
Default: `10`
Applications: Indexer | | `INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT` | Timeout before new attempt to append item to multichain DB counters export queue if it's full. [Time format](backend-env-variables.md#time-format). Implemented in [#13007](https://github.com/blockscout/blockscout/pull/13007). | Version: v9.1.0\+
Default: `1s`
Applications: Indexer | | `INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_MAX_QUEUE_SIZE` | Maximum size of multichain DB counters export queue. Implemented in [#13007](https://github.com/blockscout/blockscout/pull/13007). | Version: v9.1.0\+
Default: `1000`
Applications: Indexer | | `INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_INIT_QUERY_LIMIT` | Limit of the init query for processing the counters export queue to the Multichain DB. Implemented in [#13007](https://github.com/blockscout/blockscout/pull/13007). | Version: v9.1.0\+
Default: `1000`
Applications: Indexer | | `INDEXER_DISABLE_BEACON_DEPOSIT_FETCHER` | If `true`, the Beacon deposit fetcher won't be started. Implemented in [#12985](https://github.com/blockscout/blockscout/pull/12985). | Version: v9.1.0+
Default: `false`
Applications: Indexer | | `INDEXER_BEACON_DEPOSIT_FETCHER_INTERVAL` | The interval indicating how often deposit events should be queried. [Time format](/setup/env-variables/backend-envs-chain-specific#time-format). Implemented in [#12985](https://github.com/blockscout/blockscout/pull/12985). | Version: v9.1.0+
Default: `6s`
Applications: Indexer | | `INDEXER_BEACON_DEPOSIT_FETCHER_BATCH_SIZE` | The batch size specifies how many events are retrieved in a single database query. Implemented in [#12985](https://github.com/blockscout/blockscout/pull/12985). | Version: v9.1.0+
Default: `1000`
Applications: Indexer | | `INDEXER_DISABLE_BEACON_DEPOSIT_STATUS_FETCHER` | If `true`, the Beacon deposit status fetcher won't be started. Implemented in [#12985](https://github.com/blockscout/blockscout/pull/12985). | Version: v9.1.0+
Default: `false`
Applications: Indexer | | `INDEXER_BEACON_DEPOSIT_STATUS_FETCHER_EPOCH_DURATION` | Epoch duration in the Beacon chain in seconds. Implemented in [#12985](https://github.com/blockscout/blockscout/pull/12985). | Version: v9.1.0+
Default: `384`
Applications: Indexer | | `INDEXER_BEACON_DEPOSIT_STATUS_FETCHER_REFERENCE_TIMESTAMP` | Any past finalized Beacon Chain epoch UTC timestamp. Used as reference for status fetcher scheduling. Implemented in [#12985](https://github.com/blockscout/blockscout/pull/12985). | Version: v9.1.0+
Default: `1722024023`
Applications: Indexer |

⛔ Deprecated environment variables

Deprecated environment variables list | Variable | Required | Description | Default | Version | Need recompile | Deprecated in Version | | ----------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -------- | -------------- | --------------------- | | `INDEXER_POLYGON_EDGE_L1_RPC` | The RPC endpoint for L1 used to fetch deposit or withdrawal events. Implemented in [#8180](https://github.com/blockscout/blockscout/pull/8180). | | v5.3.0+ | | v9.1.0 | | `INDEXER_POLYGON_EDGE_L1_EXIT_HELPER_CONTRACT` | The address of ExitHelper contract on L1 (root chain) used to fetch withdrawal exits. Required for withdrawal events indexing. Implemented in [#8180](https://github.com/blockscout/blockscout/pull/8180). | | v5.3.0+ | | v9.1.0 | | `INDEXER_POLYGON_EDGE_L1_WITHDRAWALS_START_BLOCK` | The number of start block on L1 (root chain) to index withdrawal exits. If the table of withdrawal exits is not empty, the process will continue indexing from the last indexed message. If empty or not defined, the withdrawal exits are not indexed. Implemented in [#8180](https://github.com/blockscout/blockscout/pull/8180). | | v5.3.0+ | | v9.1.0 | | `INDEXER_POLYGON_EDGE_L1_STATE_SENDER_CONTRACT` | The address of StateSender contract on L1 (root chain) used to fetch deposits. Required for deposit events indexing. Implemented in [#8180](https://github.com/blockscout/blockscout/pull/8180). | | v5.3.0+ | | v9.1.0 | | `INDEXER_POLYGON_EDGE_L1_DEPOSITS_START_BLOCK` | The number of start block on L1 (root chain) to index deposits. If the table of deposits is not empty, the process will continue indexing from the last indexed message. If empty or not defined, the deposits are not indexed. Implemented in [#8180](https://github.com/blockscout/blockscout/pull/8180). | | v5.3.0+ | | v9.1.0 | | `INDEXER_POLYGON_EDGE_L2_STATE_SENDER_CONTRACT` | The address of L2StateSender contract on L2 (child chain) used to fetch withdrawals. Required for withdrawal events indexing. Implemented in [#8180](https://github.com/blockscout/blockscout/pull/8180). | | v5.3.0+ | | v9.1.0 | | `INDEXER_POLYGON_EDGE_L2_WITHDRAWALS_START_BLOCK` | The number of start block on L2 (child chain) to index withdrawals. If the table of withdrawals is not empty, the process will fill gaps and then continue indexing from the last indexed message. If empty or not defined, the withdrawals are not indexed. Implemented in [#8180](https://github.com/blockscout/blockscout/pull/8180). | | v5.3.0+ | | v9.1.0 | | `INDEXER_POLYGON_EDGE_L2_STATE_RECEIVER_CONTRACT` | The address of StateReceiver contract on L2 (child chain) used to fetch deposit executes. Required for deposit events indexing. Implemented in [#8180](https://github.com/blockscout/blockscout/pull/8180). | | v5.3.0+ | | v9.1.0 | | `INDEXER_POLYGON_EDGE_L2_DEPOSITS_START_BLOCK` | The number of start block on L2 (child chain) to index deposit executes. If the table of deposit executes is not empty, the process will fill gaps and then continue indexing from the last indexed message. If empty or not defined, the deposit executes are not indexed. Implemented in [#8180](https://github.com/blockscout/blockscout/pull/8180). | | v5.3.0+ | | v9.1.0 | | `INDEXER_POLYGON_EDGE_ETH_GET_LOGS_RANGE_SIZE` | Block range size for eth\_getLogs request in Polygon Edge indexer modules. Implemented in [#8180](https://github.com/blockscout/blockscout/pull/8180). | | v5.3.0+ | | v9.1.0 |

🚀 Features

  • beacon deposits (#12985)
  • on-demand bytecode fetching on smart contract verification requests (#10724)
  • Improved proxy detection (#12846)
  • Add reputation property where applicable (#13070)
  • Add envs to configure RemoteIp lib usage (#13082)
  • Add possibility to forward event notification to another DB (#13064)
  • Add x-api-key header (#13076)
  • Add token_type to token transfer API response (#13038)
  • Export main page counters to Multichain service (#13007)
  • Add methodId to txlist rpc method (#13043)
  • Runtime config option to disable file logging (#12805)
  • Add celo-specific APIv1 getepoch action (#12853)

🐛 Bug Fixes

  • Fix errors in celo epochs endpoints(#13201)
  • Fix api/v2/addresses/{hash}/celo/election-rewards pagination (#13215)
  • Add reputation preload for celo gas_token (#13200)
  • Mark completed deposits in batches (#13210)
  • Adjustments in address nft and collections endpoints (#13192)
  • Fix batch's number processing from the socket event (#13181)
  • Delete PTOs for forked transactions (#13145)
  • Pagination and filtering issues in /addresses/:hash/nft (#13175)
  • Fix reputation preload for ERC-404 collections (#13174)
  • Add reputation to token, rework reputation preload (#13149)
  • Replace get_constant_by_key with get_constant_value in get_last_processed_token_address_hash (#13118)
  • Duplicates of smart contracts additional sources (#13018)
  • Set for read ops in NFT backfillers (#13116)
  • Return internal transactions for consensus blocks only in /api/v2/internal-transactions (#13041)
  • Fix recv timeout option in Universal proxy config (#13046)
  • Fix failing ETH RPC tests (#13099)
  • Escape only significant characters in tokens (#13078)
  • /api/v2/addresses/:hash/token-transfers returns 500 on celo (#13050)
  • RuntimeEnvHelper usage in Auth0.Migrated (#13075)
  • Fix no function clause matching in Explorer.Chain.Transaction.decoded_input_data/5 (#13055)
  • Fix Postgres errors in Explorer.Migrator.BackfillMetadataURL (#13063)
  • Fix multichain search queue export bug processing (#13049)
  • Csv export for celo l2 epoch rewards on address (#12815)
  • Change signed_authorizations chain_id type to numeric (#13042)
  • Address api spec for filecoin and zilliqa chain types (#12996)
  • Token type filtering to support multiple types with OR logic (#13008)
  • Don't validate address hash for common blocks channels (#13020)
  • Fix matching in current token balances import filter (#12930)
  • Expand indexer timeout exception definition (#12748)

🚜 Refactor

  • Remove public tags request functionality (#13006)

⚡ Performance

  • Optimize maybe_hide_scam_addresses/3 query (#12927)
  • Fix perf of finding non pending block in internal transactions related queries (#13189)
  • Internal transactions REST API endpoint perf tradeoff (#13191)

⚙️ Miscellaneous Tasks

  • Remove quantile_estimator dep (#13190)
  • Change release workflow (#13087)
  • Update and format pull request template (#13028)
  • Add final check for ReindexDuplicatedInternalTransactions (#13091)
  • Remove obsolete circleci config (#13097)
  • Replace ReindexDuplicatedInternalTransactions grouping field (#13084)
  • Bump default rps to 5 (#13089)
  • Add is_pending_update flag to block and transaction API endpoints (#13013)
  • Bump actions major versions (#13077)
  • Move token transfers to a separate event handler (#13068)
  • Remove Polygon Edge modules and chain type (#13056)
  • Cover token info export to Multichain service by unit tests (#12899)
  • Route left API DB requests from master to read DB replica (#12896)
  • Refactor usage of delete_parameters_from_next_page_params/1 (#13005)
  • Move address nonce updating to a separate process (#12941)
  • Catchup fetcher various improvements (#12866)
  • Add disconnect_on_error_codes param to repo config (#12800)
  • Move addresses to a separate import stage (#12857)
Source: README.md, updated 2025-09-15