github blockscout/blockscout v9.0.0
BlockScout v9.0.0

latest releases: v10.2.4, v10.2.3, v10.2.2...
8 months ago

🚨 API v2 – Breaking Changes in Release 9.0.0

The 9.0.0 release of /api/v2 includes breaking changes aimed at enforcing consistency across the API. This includes structural changes, deprecated field removals, and naming standardizations that were previously announced in the v8 release.

🩺 /api/v2/health Endpoint Update

  • Removed: latest_block from the root of the response.
  • Replacement: Use blocks.latest_block instead.

📛 Deprecated Fields Removed (As Announced in v8)

In line with the API v2 naming policy, the following legacy properties have been removed. Please ensure you're using their updated equivalents:

Full API response properties renaming list
❌ Removed ✅ Use Instead
address (hex string) address_hash
transaction_count transactions_count
holders holders_count
holder_count holders_count
validators_counter validators_count
new_validators_counter_24h new_validators_count_24h
active_validators_counter active_validators_count
withdrawal_sum withdrawals_sum
withdrawal_count withdrawals_count
origination_address origination_address_hash
outbox_address outbox_address_hash
caller caller_address_hash
destination destination_address_hash
start_block start_block_number
end_block end_block_number
before_acc before_acc_hash
after_acc after_acc_hash
associated_l1_transaction associated_l1_transaction_hash
l1_block_height l1_block_number
blob_transaction_count blob_transactions_count
contract_address contract_address_hash
internal_id number
l2_block_start l2_start_block_number
l2_block_end l2_end_block_number
slashing_status_is_slashed slashing_status.is_slashed
slashing_status_by_block slashing_status.by_block
slashing_status_multiplier slashing_status.multiplier
l1_transaction_count l1_transactions_count
l2_transaction_count l2_transactions_count

🧠 Smart Contract Object Changes

✅ Added

  • creation_status field added to the address object in responses.
    Possible values: selfdestructed, failed, success

🔁 Renamed

  • Field status in the smart_contract object → renamed to creation_status

❌ Removed

  • Field is_self_destructed removed from the endpoint:
    /api/v2/smart-contracts/:address_hash

⚠️ Action Required

These changes are not backward-compatible. If you're consuming these endpoints, please update your integrations immediately to avoid errors or data inconsistencies.

💡 New environment variables

New environment variables list
Variable Description Parameters
INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_ENABLED If true, Indexer.Utils.EventNotificationsCleaner process starts. Implemented in #12738

Version: v9.0.0+
Default: true
Applications: Indexer

INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_INTERVAL Interval between DB event notifications cleanup. Time format. Implemented in #12738

Version: v9.0.0+
Default: 2m
Applications: Indexer

INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_MAX_AGE Max age of DB event notifications before they are cleaned up. Time format. Implemented in #12738

Version: v9.0.0+
Default: 5m
Applications: Indexer

INDEXER_SIGNED_AUTHORIZATION_STATUS_BATCH_SIZE Batch size (number of blocks) for EIP7702 authorizations status fetcher. Implemented in #12451.

Version: v9.0.0+
Default: 10
Applications: Indexer

MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_BATCH_SIZE Number of blocks to reindex in the batch. Implemented in #12559.

Version: v9.0.0+
Default: 10
Applications: Indexer

MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_CONCURRENCY Number of parallel reindexing block batches processing. Implemented in #12559.

Version: v9.0.0+
Default: 1
Applications: Indexer

MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_TIMEOUT Timeout between reindexing block batches processing. Implemented in #12559.

Version: v9.0.0+
Default: 0
Applications: Indexer

MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_ENABLED Enable reindex blocks with missing transactions migration. Implemented in #12559.

Version: v9.0.0+
Default: false
Applications: Indexer

MIGRATION_MERGE_ADJACENT_MISSING_BLOCK_RANGES_BATCH_SIZE Specifies the missing block range batch size selected for the merge migration. Implemented in #12778.

Version: v9.0.0+
Default: 100
Applications: Indexer

API_RATE_LIMIT_CONFIG_URL URL to fetch API rate limit configuration from external source. Implemented in #12386

Version: v9.0.0+
Default: (empty)
Applications: API

API_RATE_LIMIT_BY_KEY_TIME_INTERVAL Time interval for API rate limit by key. Time format. Implemented in #12386

Version: v9.0.0+
Default: 1s
Applications: API

API_RATE_LIMIT_BY_WHITELISTED_IP_TIME_INTERVAL Time interval for API rate limit by whitelisted IP. Time format. Implemented in #12386

Version: v9.0.0+
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. Implemented in #12386

Version: v9.0.0+
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. Implemented in #12386

Version: v9.0.0+
Default: 1s
Applications: API

INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_FETCHER If true, multichain DB main (blocks, transactions, addresses) export fetcher doesn't run. Implemented in #12377.

Version: v9.0.0+
Default: false
Applications: Indexer

INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_BATCH_SIZE Batch size for multichain DB main (blocks, transactions, addresses) export fetcher. Implemented in #12377.

Version: v9.0.0+
Default: 1000
Applications: Indexer

INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_CONCURRENCY Concurrency for multichain DB main (blocks, transactions, addresses) export fetcher. Implemented in #12377.

Version: v9.0.0+
Default: 10
Applications: Indexer

INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT Timeout before new attempt to append item to multichain DB main (blocks, transactions, addresses) export queue if it's full. Time format. Implemented in #12377.

Version: v9.0.0+
Default: 1s
Applications: Indexer

INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_MAX_QUEUE_SIZE Maximum size of multichain DB main (blocks, transactions, addresses) export queue. Implemented in #12377.

Version: v9.0.0+
Default: 1000
Applications: Indexer

INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_FETCHER If true, multichain DB balances export fetcher doesn't run. Implemented in #12580.

Version: v9.0.0+
Default: false
Applications: Indexer

INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_BATCH_SIZE Batch size for multichain DB balances export fetcher. Implemented in #12580.

Version: v9.0.0+
Default: 1000
Applications: Indexer

INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_CONCURRENCY Concurrency for multichain DB balances export fetcher. Implemented in #12580.

Version: v9.0.0+
Default: 10
Applications: Indexer

INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT Timeout before new attempt to append item to multichain DB balances export queue if it's full. Time format. Implemented in #12580.

Version: v9.0.0+
Default: 1s
Applications: Indexer

INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_MAX_QUEUE_SIZE Maximum size of multichain DB balances export queue. Implemented in #12580.

Version: v9.0.0+
Default: 1000
Applications: Indexer

INDEXER_POLYGON_ZKEVM_BATCHES_IGNORE Comma-separated list of batch numbers that should be ignored by the fetcher. Implemented in #12387.

Version: v9.0.0+
Default: (empty)
Applications: Indexer

INDEXER_OPTIMISM_MULTICHAIN_BATCH_SIZE Max number of items sent to the Multichain service in one batch. Implemented in #12387.

Version: v9.0.0+
Default: 100
Applications: Indexer

CELO_UNRELEASED_TREASURY_CONTRACT The address[^1] of the CeloUnreleasedTreasury core contract. Implemented in #12373.

Version: v9.0.0+
Default: (empty)
Applications: Indexer

CELO_VALIDATORS_CONTRACT The address[^1] of the Validators core contract. Implemented in #12373.

Version: v9.0.0+
Default: (empty)
Applications: Indexer

CELO_EPOCH_MANAGER_CONTRACT The address[^1] of the EpochManager core contract. Implemented in #12373.

Version: v9.0.0+
Default: (empty)
Applications: Indexer


⛔ Deprecated environment variables

Deprecated environment variables list
Variable Required Description Default Version Need recompile Deprecated in Version
INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_RETRY_FETCHER If true, retry multichain search export fetcher doesn't run. Implemented in #12377. Replaced with INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_FETCHER. false v8.1.0+ v9.0.0
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_RETRY_BATCH_SIZE Batch size for retry multichain search export fetcher. Implemented in #12377. Replaced with INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_BATCH_SIZE. 10 v8.1.0+ v9.0.0
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_RETRY_CONCURRENCY Concurrency for retry multichain search export fetcher. Implemented in #12377. Replaced with INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_CONCURRENCY. 10 v8.1.0+ v9.0.0
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_RETRY_ENQUEUE_BUSY_WAITING_TIMEOUT Timeout before new attempt to append item to retry multichain search export queue if it's full. Time format. Implemented in #12377. Replaced with INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT. 1s v8.1.0+ v9.0.0
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_RETRY_MAX_QUEUE_SIZE Maximum size of retry multichain search export queue. Implemented in #12377. Replaced with INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_MAX_QUEUE_SIZE. 1000 v8.1.0+ v9.0.0
API_RATE_LIMIT_TIME_INTERVAL Time interval of rate limit. Implemented in #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+ v9.0.0

🚀 Features

  • Export token info to Multichain service (#12867)
  • Export balances to Multichain DB(#12726)
  • Add eip7702 authorization status fetcher (#12451)
  • Add token1155tx token404tx api v1 endpoints (#12720)
  • Async multichain data export (#12490)
  • Rate limits refactoring (#12386)
  • Integrate Open API Spex lib (#11886)
  • Update CodeQL action to v3 (#12697) (#12703)
  • Support merged tenants (#12109)
  • Support ethereum pre-deploy contracts (#12579)
  • Add creation_status field to address response (#12660)
  • Decode OP interop message payload, store cross-chain transfer data, display message page, send messages to Multichain (#12387)
  • Celo l2 epochs (#12373)
  • Add /api/v2/config/celo convenience endpoint (#12238)

🐛 Bug Fixes

  • Ignore rate limit for api/v2/import/token-info and api/v2/import/smart-contracts/:param (#12917)
  • Mitigate deadlocks while exporting balances and the main queue to the Multichain DB (#12898, #12928)
  • Balances export queue: replace replace_all with replace only value and updated_at (#12892)
  • Fix naming for apikey param in OpenAPI spec (#12891)
  • Don't send coin balances with zero delta via ws (#12890)
  • Balances export queue to multichain replace do_nothing with replace_all on insertion to the queue (#12888)
  • Allow using temporary token for api/account/v2 by default (#12869)
  • Fix increment of retries_number in exporting data to Multichain DB (#12847)
  • Fix various errors on export of balances to Multichain DB (#12837)
  • Reject empty token_id and value in export of token balances to the Multichain DB (#12829)
  • Fix multichain export queues processing (#12822)
  • Remove token_id parameter from coin balance payload to Multichain service API endpoint (#12817)
  • Sanitize empty block_ranges payload before sending HTTP request to Multichain service(#12816)
  • Disable Indexer.Fetcher.Optimism.Interop.MultichainExport for non-OP chains (#12814)
  • Fix flaky test for exporting balances to Multichain DB (#12813)
  • Filter out creation internal transaction with index == 0 (#12777)
  • Filter out scilla transactions in internal transactions fetcher (#12793)
  • Change default ordering in /api/v2/smart-contracts (#12767)
  • Filter scilla transactions by status (#12756)
  • Fix timeout on cache update (#12773)
  • Error on too big block numbers in APIv1 txlist method (#12727)
  • Fix CSV export tests (#12744)
  • Fix race condition for EventNotification (#12738)
  • Multichain retry hex decoding (#12742)
  • Internal transactions balance extraction (#12654)
  • Multichain search export: retry only on failed chunks (#12459)
  • Display correct OP Deposit origin address (#12672)
  • Store blocks_validated in DB for Stability Validators (#12540)
  • MarketHistory on conflict clause (#12541)
  • Flaky 404 in /api/v2/internal-transactions (#12701)
  • CryptoRank integration (#12523)
  • Fix timeout on fetching address internal transactions (#12570)
  • Coin balance history with internal tx changes (#12631)
  • Update all block fields on conflict (#12418)
  • Fix pending transactions sanitizer (#12559)
  • Don't send logs without topic to sig provider (#12620)
  • Add missing fields to Celo Epochs-related endpoints (#12589)
  • Correctly use Geth importer for Besu genesis file. (#12466) (#12686)
  • Ignore unknown type txs in gas price oracle (#12613)
  • Resolve timeouts on Celo epoch reward contract reads (#12229)
  • Prevent constant refetching of celo epoch blocks (#12498)
  • Fix typo in ondemand token balance request (#12495)
  • Fix for add_0x_prefix function (#12514)

⚡ Performance

  • Api v1 txlsit& txlistinternal endpoints (#12774)
  • Optimize Explorer.Chain.Cache.Blocks (#12402)

⚙️ Miscellaneous Tasks

  • Remove obsolete API response props (#12931)
  • Balances Multichain export: Refactor rows acquisition for deletion query (#12839)
  • Change name of Swagger generation workflow (#12840)
  • migrate Auth0 to mint as well (#12807)
  • Migrate from HTTPoison to Tesla.Mint (#12699)
  • Merge adjacent missing block ranges (#12778)
  • Optimize missing block ranges operations (#12705)
  • Hold parity with Etherscan APIv1 for getcontractcreation and getblocknobytime endpoints (#12721)
  • Allow resending reindexed OP interop messages to Multichain service (#12626)
  • Duplicate block countdown endpoint in API v2 (#12704)
  • Revise Explorer.Helper.add_0x_prefix usage (#12543)
  • New tac microservice endpoint for search (#12448)
  • Add filter for value > 0 to txlistinternal (#12679)
  • Optimize realtime events notifier (#12494)
  • Drop address_coin_balances value_fetched_at index (#12598)
  • Update deprecated address to address_hash in tx summary response (#12617)
  • Remove redundant word in comment (#12603)
  • Move background migrations under indexer mode (#12480)
  • Support multiple interop messages view on transaction page (#12455)
  • Remove is_self_destructed field in /api/v2/smart-contracts/{address_hash} response (#12239)
  • Set home directory for blockscout user (#12337)

Don't miss a new blockscout release

NewReleases is sending notifications on new releases.