github blockscout/blockscout v8.0.0
BlockScout v8.0.0

one day ago

As part of the Backend 8.0.0 release, there are some important breaking changes and updates to be aware of. Please take a few minutes to go over the details below so you can plan accordingly.


🔄 Docker Image Changes

We've updated our Docker image registry. Please follow the instructions in this guide to make sure your setup continues to run smoothly:
👉 Docker & Config Migration Guide


🚨 API Breaking Changes

The following API v2 endpoints have been removed:

  • api/v2/smart-contracts/:address_hash/methods-read
  • api/v2/smart-contracts/:address_hash/methods-read-proxy
  • api/v2/smart-contracts/:address_hash/methods-write
  • api/v2/smart-contracts/:address_hash/methods-write-proxy
  • api/v2/smart-contracts/:address_hash/query-read-method

Additional changes:

  • Removed:
    • is_vyper_contract (from smart-contracts/:address_hash)
    • has_decompiled_code (from addresses/:address_hash)
    • token (from /tokens/:token_address_hash/holders and /instances/:token_id/holders)
  • Added:
    • status (to smart-contracts/:address_hash)
  • Behavior updates:
    • verified_twin_address_hash now returns null for verified contracts or minimal proxies (eip1167, clone_with_immutable_arguments, erc7760) in /api/v2/smart-contracts/:address_hash
    • proxy_type and implementations no longer pull data from bytecode twins in /api/v2/addresses/:address_hash and api/v2/smart-contracts/:address_hash endpoints

⚙️ ENV Variable Renames

Some environment variables have been renamed for clarity:

  • CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVALCACHE_ADDRESS_COUNT_PERIOD
  • HEALTHY_BLOCKS_PERIODHEALTH_MONITOR_BLOCKS_PERIOD

⛓️ Runtime Config for Chain Types

We've moved from compile-time to runtime config for certain chain types.
More info here:
👉 Runtime Chain Type Config


🪙 Exchange Rates Configuration Update

The environment variable structure for exchange rate fetching has been revamped to enhance clarity, consistency, and maintainability.
Important: The previous configuration format will be unsupported starting with Backend v9.
For migration details and setup instructions, check out the guide:
👉 Exchange Rates Configuration Guide


🔮 What's Coming Next?

Looking ahead to the next major release after 8.0.0, we're continuing efforts to unify naming conventions across API v2:

  • Property names for ...block_number and ...transaction_hash are being standardized (including rollup-related endpoints)
  • Address hash fields will follow a consistent naming style
  • Count/sum fields will adopt a standard format: plural entity name + _count or _sum (e.g., transactions_count, withdrawals_sum)

For now, both old and new names are available in 8.0.0, but expect full migration soon.

Check out our latest naming guidelines here:
👉 API v2 Naming Convention

💡 New environment variables

New environment variables list
Variable Description Parameters
HEALTH_MONITOR_CHECK_INTERVAL Interval between health stats collection. Time format. Implemented in #11888

Version: v8.0.0+
Default: 5m
Applications: API, Indexer

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

Version: v8.0.0+
Default: 5m
Applications: API, Indexer

HEALTH_MONITOR_BATCHES_PERIOD New batches indexed max delay in /health API endpoint. Time format. Implemented in #11888

Version: v8.0.0+
Default: 4h
Applications: API, Indexer

INDEXER_TOKEN_INSTANCE_CIDR_BLACKLIST List of IP addresses in CIDR format to block when fetching token instance metadata. Example: "0.0.0.0/32,192.168.0.0/16". Implemented in #12102.

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

INDEXER_TOKEN_INSTANCE_HOST_FILTERING_ENABLED If false, the URL from which metadata is fetched will not be resolved to an IP address, and the IP address will not be checked against the blacklist. Implemented in #12102.

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

INDEXER_TOKEN_INSTANCE_ALLOWED_URI_PROTOCOLS List of allowed URI protocols (schemes) for requests when fetching token instance metadata. Implemented in #12102.

Version: v8.0.0+
Default: http,https
Applications: Indexer

MIGRATION_SMART_CONTRACT_LANGUAGE_DISABLED If set to true, the migration to the language field in the smart_contracts table will not start. If set to false, the migration proceeds as normal. Implemented in #11813.

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

MIGRATION_SMART_CONTRACT_LANGUAGE_BATCH_SIZE Defines the number of records to be processed in each batch when migrating the language field in the smart_contracts table. Implemented in #11813.

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

MIGRATION_SMART_CONTRACT_LANGUAGE_CONCURRENCY Specifies how many concurrent processes can handle the language field migration. Implemented in #11813.

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

MIGRATION_BACKFILL_METADATA_URL_DISABLED If set to true, the backfiller of metadata_url field in the token_instances table will not start. If set to false, the migration proceeds as normal. Implemented in #12102.

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

MIGRATION_BACKFILL_METADATA_URL_BATCH_SIZE Defines the number of records to be processed in each batch when backfilling the metadata_url field in the token_instances table. Implemented in #12102.

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

MIGRATION_BACKFILL_METADATA_URL_CONCURRENCY Specifies how many concurrent processes can handle the metadata_url field backfilling. Implemented in #12102.

Version: v8.0.0+
Default: 5
Applications: Indexer

MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_CONCURRENCY Specifies how many concurrent processes can handle the recovery WETH token transfers migration. Implemented in #12065.

Version: v8.0.0+
Default: 5
Applications: Indexer

MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_BATCH_SIZE Defines the number of records to be processed in each batch when recovery WETH token transfers. Implemented in #12065.

Version: v8.0.0+
Default: 50
Applications: Indexer

MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_TIMEOUT Defines the timeout between processing each batch (batch_size * concurrency) in the recovery WETH token transfers migration. Follows the time format. Implemented in #12065.

Version: v8.0.0+
Default: 0s
Applications: Indexer

MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_BLOCKS_BATCH_SIZE Specifies the block range size selected for the recovery of WETH token transfer migration. Implemented in #12065.

Version: v8.0.0+
Default: 100000
Applications: Indexer

MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_HIGH_VERBOSITY If set to true, enables high verbosity logging (logs each transaction hash, where missed transfers were restored) during the recovery of WETH token transfer migration. Implemented in #12065.

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

CACHE_ADDRESS_COUNT_PERIOD Interval for restarting the task that calculates the total number of addresses.

Version: v8.0.0+
Default: 30m
Applications: API, Indexer

RE_CAPTCHA_TOKEN_INSTANCE_REFETCH_METADATA_SCOPED_BYPASS_TOKEN API key that allows to skip reCAPTCHA check for requests to /api/v2/tokens/{token_hash}/instances/{token_id}/refetch-metadata endpoint. Implemented in #12147

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

INDEXER_ARBITRUM_BATCHES_TRACKING_FAILURE_THRESHOLD The time threshold for transaction batch monitoring tasks. If a task has not run successfully within this threshold, it is marked as failed and enters a cooldown period before retrying. Implemented in #12192.

Version: v8.0.0+
Default: 10m
Applications: Indexer

RATE_LIMITER_REDIS_URL Redis DB URL for rate limiter. Implemented in #12218

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

RATE_LIMITER_ON_DEMAND_TIME_INTERVAL Time interval of rate limit for on-demand fetchers. Implemented in #12218

Version: v8.0.0+
Default: 5s
Applications: API

RATE_LIMITER_ON_DEMAND_LIMIT_BY_IP Rate limit for an IP address for on-demand fetcher call. Implemented in #12218

Version: v8.0.0+
Default: 100
Applications: API

RATE_LIMITER_ON_DEMAND_EXPONENTIAL_TIMEOUT_COEFF Coefficient to calculate exponential timeout for on-demand rate limit. Implemented in #12218

Version: v8.0.0+
Default: 100
Applications: API

RATE_LIMITER_ON_DEMAND_MAX_BAN_INTERVAL Max time an IP address can be banned from on-demand fetcher calls. Implemented in #12218

Version: v8.0.0+
Default: 1h
Applications: API

RATE_LIMITER_ON_DEMAND_LIMITATION_PERIOD Time after which the number of bans for the IP address will be reset. Implemented in #12218

Version: v8.0.0+
Default: 1h
Applications: API

DISABLE_MARKET Disables all fetchers and any market data displaying. Setting this to true will disable all market-related functionality. Implemented in #11844.

Version: v8.0.0+
Default: false
Applications: API, Indexer

MARKET_NATIVE_COIN_SOURCE Source for realtime native coin price fetching. Possible values are: coin_gecko, coin_market_cap, crypto_rank, or mobula. Useful when multiple coin IDs are configured and you want to explicitly select the source. Implemented in #11844.

Version: v8.0.0+
Default: coin_gecko
Applications: API

MARKET_SECONDARY_COIN_SOURCE Source for realtime secondary coin fetching. Possible values are: coin_gecko, coin_market_cap, crypto_rank, or mobula. Useful when multiple secondary coin IDs are configured. Implemented in #11844.

Version: v8.0.0+
Default: coin_gecko
Applications: API

MARKET_TOKENS_SOURCE Sets the source for tokens price fetching. Available values are coin_gecko, crypto_rank, mobula. Implemented in #11844.

Version: v8.0.0+
Default: coin_gecko
Applications: Indexer

MARKET_NATIVE_COIN_HISTORY_SOURCE Sets the source for price history fetching. Available values are crypto_compare, coin_gecko, mobula, coin_market_cap and crypto_rank. Implemented in #11844.

Version: v8.0.0+
Default: crypto_compare
Applications: Indexer

MARKET_SECONDARY_COIN_HISTORY_SOURCE Sets the source for secondary coin price history fetching. Available values are crypto_compare, coin_gecko, mobula, coin_market_cap and crypto_rank. Implemented in #11844.

Version: v8.0.0+
Default: crypto_compare
Applications: Indexer

MARKET_MARKET_CAP_HISTORY_SOURCE Sets the source for market cap history fetching. Available values are coin_gecko and coin_market_cap. Implemented in #11844.

Version: v8.0.0+
Default: coin_gecko
Applications: Indexer

MARKET_TVL_HISTORY_SOURCE Sets the source for TVL history fetching. Available value is defillama. Implemented in #11844.

Version: v8.0.0+
Default: defillama
Applications: Indexer

MARKET_COINGECKO_PLATFORM_ID CoinGecko platform id for which token prices are fetched, see full list in /asset_platforms endpoint. Examples: "ethereum", "optimistic-ethereum". Implemented in #11844.

Version: v8.0.0+
Default: ethereum
Applications: Indexer

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

Version: v8.0.0+
Default: https://api.coingecko.com/api/v3
Applications: API, Indexer

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

Version: v8.0.0+
Default: https://pro-api.coingecko.com/api/v3
Applications: API, Indexer

MARKET_COINGECKO_API_KEY CoinGecko API key. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_COINGECKO_COIN_ID Sets CoinGecko coin ID. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_COINGECKO_SECONDARY_COIN_ID Sets CoinGecko coin ID for secondary coin market chart. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

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

Version: v8.0.0+
Default: https://pro-api.coinmarketcap.com/v2
Applications: API, Indexer

MARKET_COINMARKETCAP_API_KEY CoinMarketCap API key. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_COINMARKETCAP_COIN_ID CoinMarketCap coin id. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_COINMARKETCAP_SECONDARY_COIN_ID CoinMarketCap coin id for secondary coin. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_CRYPTOCOMPARE_BASE_URL If set, overrides the CryptoCompare base URL. Implemented in #11844.

Version: v8.0.0+
Default: https://min-api.cryptocompare.com
Applications: API, Indexer

MARKET_CRYPTOCOMPARE_COIN_SYMBOL CryptoCompare coin symbol for native coin (e.g., "OP" for Optimism). CryptoCompare uses symbols instead of IDs. Implemented in #11844.

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

MARKET_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL CryptoCompare coin symbol for secondary coin market chart. Implemented in #11844.

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

MARKET_CRYPTORANK_PLATFORM_ID Sets Cryptorank platform ID. Implemented in #11844.

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

MARKET_CRYPTORANK_BASE_URL If set, overrides the Cryptorank API url. Implemented in #11844.

Version: v8.0.0+
Default: https://api.cryptorank.io/v1/
Applications: API, Indexer

MARKET_CRYPTORANK_API_KEY Cryptorank API key. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_CRYPTORANK_COIN_ID Sets Cryptorank coin ID. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_CRYPTORANK_SECONDARY_COIN_ID Sets Cryptorank coin ID for secondary coin. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_DEFILLAMA_COIN_ID DefiLlama coin id. Use the name field from the /v2/chains endpoint response (e.g., "OP Mainnet" for Optimism). Implemented in #11844.

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

MARKET_MOBULA_PLATFORM_ID Mobula platform ID. Implemented in #11844.

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

MARKET_MOBULA_BASE_URL If set, overrides the Mobula API base URL. Implemented in #11844.

Version: v8.0.0+
Default: https://api.mobula.io/api/1
Applications: API, Indexer

MARKET_MOBULA_API_KEY Mobula API key. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_MOBULA_COIN_ID Set Mobula coin ID. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_MOBULA_SECONDARY_COIN_ID Set Mobula coin ID for secondary coin. Implemented in #11844.

Version: v8.0.0+
Default: (empty)
Applications: API, Indexer

MARKET_COIN_FETCHER_ENABLED If false disables fetching of realtime native coin price. Implemented in #11844.

Version: v8.0.0+
Default: true
Applications: API

MARKET_COIN_CACHE_PERIOD Cache period for coin exchange rates. Implemented in #11844.

Version: v8.0.0+
Default: 10m
Applications: API

MARKET_TOKENS_FETCHER_ENABLED If false disables fetching of token prices. Implemented in #11844.

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

MARKET_TOKENS_INTERVAL Interval between batch requests of token prices. Can be decreased in order to fetch prices faster if you have pro rate limit. Time format. Implemented in #11844.

Version: v8.0.0+
Default: 10s
Applications: Indexer

MARKET_TOKENS_REFETCH_INTERVAL Interval between refetching token prices, responsible for the relevance of prices. Time format. Implemented in #11844.

Version: v8.0.0+
Default: 1h
Applications: Indexer

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

Version: v8.0.0+
Default: 500
Applications: Indexer

MARKET_HISTORY_FETCHER_ENABLED If false disables fetching of marked data history. Implemented in #11844.

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

MARKET_HISTORY_FIRST_FETCH_DAY_COUNT Initial number of days to fetch for market history. Implemented in #11844.

Version: v8.0.0+
Default: 365
Applications: Indexer

⛔ Deprecated environment variables

Deprecated environment variables list
Variable Required Description Default Version Need recompile Deprecated in Version
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. Implemented in #2294 5m v2.0.2+ v8.0.0

🚀 Features

  • Rate limiter for on-demand fetchers (#12218)
  • Add average batch time (L2) to prometheus metrics (#12217)
  • Contract creation tx block number binary search (#10530)
  • Enhance health endpoint logic: track L2-rollup batches health (#11888)
  • Universal API Proxy (#12119)
  • Add sorting by tx count and balance to /api/v2/addresses (#12168)
  • Support OP interop messages (#11903)
  • Store and validate metadata_url (#12102)
  • Captcha scoped bypass token for token instance metadata refetch (#12147)
  • Add filter by type and call_type to /api/v2/blocks/{:block_hash}/internal-transactions (#11968)
  • ERC-7760 proxy type support (#12057)
  • Extend scam tokens feature on other endpoints (#11975)
  • JSON RPC metrics (#12070)
  • Add search by transaction hash capability at api/v2/internal-transactions endpoint (#12025)
  • Add ENS and metadata preload to /api/v2/proxy/metadata/addresses (#11962)
  • Zilliqa stakers API (#11615)
  • Refine setting of certified flag on smart-contracts (#11855)
  • Add PendingTransactionOperation (#11157)
  • Allow from_period and to_period to be timestamps in CSV export functionality (#11862)
  • Add support of ResolvedDelegateProxy proxy pattern (#11720)

🐛 Bug Fixes

  • Limit max import concurrency (#12261)
  • CSV export: download items for the given day if from / to period are equal (#12260)
  • Upgrade missing balanceOf token condition (#12254)
  • Add missing load of health_latest_batch_average_time_from_db (#12240)
  • Handle unconfigured coin fetcher ETS access (#12228)
  • Negate condition for language check in solidityscan controller (#12222)
  • Look up sources for partially verified smart contracts (#12221)
  • BufferedTask-based approach for fetching Arbitrum-specific settlement info (#12192)
  • Contract creation transaction associations and bytecode twin detection (#12086)
  • Improve background migrations + new Indexer.Migrator.RecoveryWETHTokenTransfers (#12065)
  • Update docker cache references to use ghcr.io (#12178)
  • Add blob and authorization list info to ETH RPC API (#12150)
  • Fix Stability web test (#12171)
  • Fix Rootstock failed tests (#12169)
  • Unify Block Range Collector behavior for undefined and single range (#12153)
  • Signed_authorizations table migrate nonce to numeric(20,0) (#12157)
  • Refactor smart-contract API v2 endpoint output (#12076)
  • Managing gas usage sum cache and address count cache (#12149)
  • Web3 wallet login on Rootstock (#12121)
  • Refactor a query to get missing confirmation for Arbitrum blocks (#11914)
  • Fix error in old UI (#12112)
  • OnDemand fetchers memory consumption for api mode (#12082)
  • Implement DA record deduplication for Arbitrum batch processing (#12095)
  • Empty contract code addresses (#12023)
  • Unify response for single and batch 1155 transfer in RPC API (#12083)
  • Is_verified for verified eip7702 proxies (#12033)
  • Recovered functionality of Arbitrum batch fetcher (#12059)
  • Fix flaking test (#12013)
  • Confirmations of Arbitrum blocks near genesis (#11790)
  • Fix finding of first block to index (#11875)
  • Async fetch internal transactions from reindex migration (#11959)
  • Fix Indexer.Fetcher.ContractCode unhandled error (#11873)

🚜 Refactor

  • Consistency with the core application in properties namings in rollups-related API endpoints (#12055)
  • Refactor market related code (#11844)

⚡ Performance

  • Optimize watchlist query (#12264)
  • Add index for slow /api/v2/addresses?sort=transactions_count&order=asc (#12230)
  • /api/v2/smart-contracts endpoint (#12060)
  • Optimize query for user token transfers list filtered by token (#12039)
  • Improve watchlist rendering performance (#11999)

⚙️ Miscellaneous Tasks

  • Add typed_ecto_schema to release (#12255)
  • Suppress logging for expected 404 errors in account abstraction (#12242)
  • Upgrade on demand balances fetchers (#12104)
  • Migrate images to ghcr.io (#12128)
  • Don't send transaction interpretation request for failed tx (#12164)
  • Move redstone chain type to runtime (#12124)
  • Move DISABLE_INDEXER option to runtime (#12139)
  • Drop transactions index duplicates (#12144)
  • CDN improvement: batch DB upsert (#11918)
  • Partially move chain types to runtime (#12114)
  • Chain counters refactoring and setup persistency for global counters in the DB (#11849)
  • Remove legacy decompiled contracts API (#11998)
  • Eliminate intercept for V2 socket channels (#12003)
  • Treat SHRINK_INTERNAL_TRANSACTIONS_ENABLED as runtime env (#12110)
  • Docker compose reduce env output (#12111)
  • Replaced the link to the blockscout badge (#12106)
  • Remove default JSON RPC endpoint (#12071)
  • Remove token object from API v2 api/v2/tokens/:hash/holders endpoint (#12022)
  • Remove Read/Write smart-contract API v2 endpoints (#12026)
  • Use DB replica, if it's enabled, for proxy-related queries (#12020)
  • Ganache -> Anvil JSON RPC Variant (#12066)
  • Remove is_vyper_contract from the /api/v2/smart-contracts/{address_hash} endpoint response (#11823)
  • Eliminate warnings in epoch_logs.ex (#12027)
  • Migrate to language enum field in smart_contracts table (#11813)
  • Fetch epoch logs and rewards until CELO_L2_MIGRATION_BLOCK (#11949)
  • GraphQL introspection plug (#11843)
  • Remove duplicate endpoints for 3d party proxies (#11940)
  • Limit number of implementations proxy before insertion into the DB (#11882)

What's Changed

  • fix: Fix Indexer.Fetcher.ContractCode unhandled error by @vbaranov in #11873
  • chore: Limit number of implementations proxy before insertion into the DB by @vbaranov in #11882
  • fix: Async fetch internal transactions from reindex migration by @Qwerty5Uiop in #11959
  • fix: Fix finding of first block to index by @vbaranov in #11875
  • chore(deps): bump core-js from 3.40.0 to 3.41.0 in /apps/block_scout_web/assets by @dependabot in #11989
  • chore(deps): bump chart.js from 4.4.7 to 4.4.8 in /apps/block_scout_web/assets by @dependabot in #11988
  • chore(deps): bump @amplitude/analytics-browser from 2.11.11 to 2.11.13 in /apps/block_scout_web/assets by @dependabot in #11991
  • chore(deps-dev): bump @babel/core from 7.26.7 to 7.26.9 in /apps/block_scout_web/assets by @dependabot in #11990
  • chore(deps-dev): bump webpack from 5.97.1 to 5.98.0 in /apps/block_scout_web/assets by @dependabot in #11986
  • chore(deps-dev): bump @babel/preset-env from 7.26.7 to 7.26.9 in /apps/block_scout_web/assets by @dependabot in #11983
  • chore(deps-dev): bump sass from 1.83.4 to 1.85.1 in /apps/block_scout_web/assets by @dependabot in #11987
  • chore(deps): bump bcrypt_elixir from 3.2.0 to 3.2.1 by @dependabot in #11835
  • chore(deps): bump hackney from 1.20.1 to 1.23.0 by @dependabot in #11996
  • chore(deps): bump httpoison from 2.2.1 to 2.2.2 by @dependabot in #11944
  • chore(deps-dev): bump exvcr from 0.15.2 to 0.16.0 by @dependabot in #11942
  • feat: Add support of ResolvedDelegateProxy proxy pattern by @vbaranov in #11720
  • feat: Allow from_period and to_period to be timestamps in CSV export functionality by @vbaranov in #11862
  • chore(deps-dev): Bump wallaby version by @vbaranov in #12007
  • chore(deps-dev): bump dialyxir from 1.4.3 to 1.4.4 by @dependabot in #10848
  • chore: Remove duplicate endpoints for 3d party proxies by @vbaranov in #11940
  • chore(deps-dev): bump eslint from 8.57.1 to 9.21.0 in /apps/block_scout_web/assets by @vbaranov in #12009
  • chore(deps): bump tesla from 1.13.0 to 1.14.1 by @dependabot in #11939
  • chore(deps-dev): bump eslint-plugin-promise from 6.6.0 to 7.2.1 in /apps/block_scout_web/assets by @dependabot in #11770
  • fix: confirmations of Arbitrum blocks near genesis by @akolotov in #11790
  • chore(deps): bump plug_cowboy from 2.7.2 to 2.7.3 by @dependabot in #12011
  • chore: GraphQL introspection plug by @fedor-ivn in #11843
  • chore: fetch epoch logs and rewards until CELO_L2_MIGRATION_BLOCK by @fedor-ivn in #11949
  • Fix flaking blocks runner tests by @Qwerty5Uiop in #12013
  • chore: migrate to language enum field in smart_contracts table by @fedor-ivn in #11813
  • chore: eliminate warnings in epoch_logs.ex by @fedor-ivn in #12027
  • chore: remove is_vyper_contract from the /api/v2/smart-contracts/{address_hash} endpoint response by @fedor-ivn in #11823
  • feat: Add PendingTransactionOperation by @Qwerty5Uiop in #11157
  • fix: recovered functionality of Arbitrum batch fetcher by @akolotov in #12059
  • feat: Refine setting of certified flag on smart-contracts by @vbaranov in #11855
  • fix: is_verified for verified eip7702 proxies by @k1rill-fedoseev in #12033
  • feat: zilliqa stakers API by @fedor-ivn in #11615
  • chore: Ganache -> Anvil JSON RPC Variant by @vbaranov in #12066
  • chore: Use DB replica, if it's enabled, for proxy-related queries by @vbaranov in #12020
  • chore: Remove Read/Write smart-contract API v2 endpoints by @vbaranov in #12026
  • chore(deps): bump absinthe from 1.7.8 to 1.7.9 by @dependabot in #12090
  • chore(deps-dev): bump ex_doc from 0.37.2 to 0.37.3 by @dependabot in #12087
  • chore(deps): bump ex_abi from 0.8.2 to 0.8.3 by @dependabot in #12091
  • chore(deps): bump bamboo from 2.3.1 to 2.4.0 by @dependabot in #12088
  • chore(deps): bump ex_cldr from 2.40.2 to 2.40.4 by @dependabot in #12089
  • chore(deps): bump image from 0.56.0 to 0.59.0 by @dependabot in #12093
  • fix: Unify response for single and batch 1155 transfers in RPC API by @nikitosing in #12083
  • fix: empty contract code addresses by @fedor-ivn in #12023
  • feat: Add ENS and metadata preload to /api/v2/proxy/metadata/addresses by @nikitosing in #11962
  • feat: Add search by transaction hash capability at api/v2/internal-transactions endpoint by @vbaranov in #12025
  • chore: Remove token object from API v2 api/v2/tokens/:hash/holders endpoint by @vbaranov in #12022
  • chore: Remove default JSON RPC URL by @vbaranov in #12071
  • fix: implement DA record deduplication for Arbitrum batch processing by @akolotov in #12095
  • chore: better-than-nothing description of Blockscout components by @akolotov in #12105
  • chore: replaced the link to the blockscout badge by @vbaranov in #12106
  • fix: OnDemand fetchers memory consumption for api mode by @Qwerty5Uiop in #12082
  • chore: Docker compose reduce env output by @vbaranov in #12111
  • fix: Fix error in old UI by @vbaranov in #12112
  • chore(deps): bump @babel/helpers from 7.26.9 to 7.26.10 in /apps/block_scout_web/assets by @dependabot in #12113
  • chore: treat SHRINK_INTERNAL_TRANSACTIONS_ENABLED as runtime env by @fedor-ivn in #12110
  • perf: Improve watchlist rendering performance by @vbaranov in #11999
  • fix: refactor a query to get missing confirmation for Arbitrum blocks by @akolotov in #11914
  • chore: Eliminate intercept for V2 socket channels by @Qwerty5Uiop in #12003
  • chore: Remove legacy decompiled contracts API by @vbaranov in #11998
  • fix: web3 wallet login on Rootstock by @sl1depengwyn in #12121
  • perf: optimize query for user token transfers list filtered by token by @k1rill-fedoseev in #12039
  • chore: Chain counters refactoring and setup persistency for global counters in the DB by @vbaranov in #11849
  • chore: partially move chain types to runtime by @fedor-ivn in #12114
  • feat: JSON RPC metrics by @vbaranov in #12070
  • feat: Extend scam tokens feature on other endpoints by @nikitosing in #11975
  • chore: CDN improvement: batch DB upsert by @nikitosing in #11918
  • fix: Managing gas usage sum cache and address count cache by @vbaranov in #12149
  • fix: Refactor smart-contract API v2 endpoint output by @vbaranov in #12076
  • chore: Drop transactions index duplicates by @vbaranov in #12144
  • chore: move DISABLE_INDEXER option to runtime by @fedor-ivn in #12139
  • perf: /api/v2/smart-contracts endpoint by @fedor-ivn in #12060
  • fix: signed_authorizations table migrate nonce to numeric(20,0) by @vbaranov in #12157
  • feat: ERC-7760 proxy type support by @vbaranov in #12057
  • chore: move redstone chain type to runtime by @fedor-ivn in #12124
  • chore: Don't send transaction interpretation request for failed tx by @nikitosing in #12164
  • fix: unify Block Range Collector behavior for undefined and single range by @akolotov in #12153
  • fix: Fix Rootstock failed tests by @vbaranov in #12169
  • fix: Fix Stability web test by @vbaranov in #12171
  • chore(deps): bump cachex from 4.0.3 to 4.0.4 by @dependabot in #12175
  • chore(deps): bump floki from 0.37.0 to 0.37.1 by @dependabot in #12173
  • chore(deps): bump ex_cldr_units from 3.17.2 to 3.19.0 by @dependabot in #12172
  • fix: Add blob and authorization list info to ETH RPC API by @vbaranov in #12150
  • chore: migrate images to ghcr.io by @fedor-ivn in #12128
  • feat: Add filter by type and call_type to /api/v2/blocks/{:block_hash}/internal-transactions by @nikitosing in #11968
  • refactor: Consistency with the core application in properties namings in rollups-related API endpoints by @vbaranov in #12055
  • fix: update docker cache references to use ghcr.io by @fedor-ivn in #12178
  • feat: captcha scoped bypass token for token instance metadata refetch by @fedor-ivn in #12147
  • feat: Store and validate metadata_url by @nikitosing in #12102
  • feat: Support OP interop messages by @varasev in #11903
  • fix: Improve background migrations + new Indexer.Migrator.RecoveryWETHTokenTransfers by @nikitosing in #12065
  • chore(deps): bump solc from 0.8.28 to 0.8.29 in /apps/explorer by @dependabot in #12181
  • chore(deps-dev): bump eslint from 9.21.0 to 9.23.0 in /apps/block_scout_web/assets by @dependabot in #12191
  • chore(deps-dev): bump @babel/core from 7.26.9 to 7.26.10 in /apps/block_scout_web/assets by @dependabot in #12183
  • chore(deps-dev): bump babel-loader from 9.2.1 to 10.0.0 in /apps/block_scout_web/assets by @dependabot in #12182
  • chore(deps): bump @amplitude/analytics-browser from 2.11.13 to 2.12.2 in /apps/block_scout_web/assets by @dependabot in #12184
  • chore(deps): bump sweetalert2 from 11.15.10 to 11.17.2 in /apps/block_scout_web/assets by @dependabot in #12188
  • chore(deps): bump mixpanel-browser from 2.59.0 to 2.63.0 in /apps/block_scout_web/assets by @dependabot in #12189
  • chore(deps-dev): bump sass from 1.85.1 to 1.86.1 in /apps/block_scout_web/assets by @dependabot in #12190
  • chore(deps-dev): bump autoprefixer from 10.4.20 to 10.4.21 in /apps/block_scout_web/assets by @dependabot in #12185
  • chore(deps-dev): bump css-minimizer-webpack-plugin from 7.0.0 to 7.0.2 in /apps/block_scout_web/assets by @dependabot in #12186
  • chore(deps-dev): bump copy-webpack-plugin from 12.0.2 to 13.0.0 in /apps/block_scout_web/assets by @dependabot in #12187
  • feat: Add sorting by tx count and balance to /api/v2/addresses by @nikitosing in #12168
  • fix: contract creation transaction associations and bytecode twin detection by @fedor-ivn in #12086
  • feat: Universal API Proxy by @vbaranov in #12119
  • feat: Enhance health endpoint logic: track L2-rollup batches health by @vbaranov in #11888
  • feat: contract creation tx block number binary search by @vbaranov in #12099
  • chore: Upgrade on demand balances fetchers by @Qwerty5Uiop in #12104
  • fix: BufferedTask-based approach for fetching Arbitrum-specific settlement info by @akolotov in #12192
  • chore: update CONTRIBUTING.md with new policy about compile time envs by @fedor-ivn in #12208
  • feat: Add average batch time (L2) to prometheus metrics by @nikitosing in #12217
  • fix: look up sources for partially verified smart contracts by @fedor-ivn in #12221
  • refactor: Refactor market related code by @sl1depengwyn in #11844
  • feat: Rate limiter for on-demand fetchers by @Qwerty5Uiop in #12218
  • fix: negate condition for language check in solidityscan controller by @fedor-ivn in #12222
  • fix: handle unconfigured coin fetcher ETS access by @sl1depengwyn in #12228
  • perf: Add index for slow /api/v2/addresses?sort=transactions_count&order=asc by @nikitosing in #12230
  • fix: Add missing load of health_latest_batch_average_time_from_db by @nikitosing in #12240
  • chore: suppress logging for expected 404 errors in account abstraction by @fedor-ivn in #12242
  • fix: Upgrade missing balanceOf token condition by @Qwerty5Uiop in #12254
  • chore: Add typed_ecto_schema to release by @Qwerty5Uiop in #12255
  • fix: CSV export: download items for the given day if from / to period are equal by @vbaranov in #12260
  • fix: Limit max import concurrency by @Qwerty5Uiop in #12261
  • perf: optimize watchlist query by @sl1depengwyn in #12264

Full Changelog: v7.0.2...v8.0.0

Don't miss a new blockscout release

NewReleases is sending notifications on new releases.