🚀 New Features
- Add Usercentrics CMP (cookie consent + GDPR compliance) by @isstuev in #3293
- Average block time: live refresh via stats API refetch interval ENV by @tom2drum in #3461
- API page: PRO API tab by @tom2drum in #3476
- Domain page: link to ENS protocol dapp by @tom2drum in #3493
- Details page for Dapp by @tom2drum in #3513
- Allow hiding L1 fee datapoints by @tom2drum in #3520
- Address page: add filters for non-NFT tokens on tokens tab by @tom2drum in #3521
- Support for ambiguous minimal proxy patterns by @tom2drum in #3522
- Add
Circulating supplyvalue on Token page by @tom2drum in #3532
🐛 Bug Fixes
- Multichain explorer: ERC-7984 tokens display in search results by @tom2drum in #3508
- Prevent SSRF via x-endpoint header by @tom2drum in #3526
- Code editor: dispose all models when component unmounts itself by @tom2drum in #3533
⚡ Performance Improvements
📦 Dependencies Updates
- build(deps-dev): bump vitest from 4.0.15 to 4.1.0 by @dependabot[bot] in #3510
- chore: upgrade pnpm from 10 to 11 by @tom2drum in #3511
- Bump dependencies to mitigate security vulnerabilities by @tom2drum in #3528
🛠️ DX & Tooling
- Refactor dev-server env flow to fetch instance config at startup by @tom2drum in #3523
- [Migration 6-3] Features
multichainandmultichain-buttonby @tom2drum in #3481 - [Migration 6-4] Feature: name-services (domains and clusters) by @tom2drum in #3460
- [Migration 6-8] Feature: validators by @tom2drum in #3475
- [Migration 6-9] Feature: marketplace by @tom2drum in #3469
- [Migration 6-10] Feature: rewards by @tom2drum in #3464
- [Migration 6-11] Feature: advanced-filter by @tom2drum in #3470
- [Migration 6-13] Features: cross-chain-txs, gas-tracker, sol2uml by @tom2drum in #3484
- [Migration 6-16] Feature: dex-pools by @tom2drum in #3467
- [Migration 6-21] Feature: tx-interpretation by @tom2drum in #3473
- [Migration 6-22] Feature
address-metadata— mergepublic-tags-submissionby @tom2drum in #3478 - [Migration 6-27] Features: web3-wallet and connect-wallet by @tom2drum in #3482
- [Migration 6-28] Features: alternative-explorers and ads by @tom2drum in #3488
- [Migration 7-1] Migrate client/shell by @tom2drum in #3490
- [Migration 8-1] Remove legacy root directories by @tom2drum in #3491
- [Migration 9-1] Co-locate config files from configs/ into client/ by @tom2drum in #3496
- [Migration 10-1] Consolidate all application source under src/ by @tom2drum in #3500
- [Migration] Clean up lib, stubs, mocks, types and ui folders by @tom2drum in #3485
- Migrate address and token API types to @blockscout/api-types (part 1) by @tom2drum in #3525
- Migrate core API types to @blockscout/api-types package by @tom2drum in #3538
- Refactor CSP policies by @tom2drum in #3534
- Refactor search bar menu width to use Popover sameWidth by @tom2drum in #3514
- Add configurable URL validator with loose scheme support for FormFieldUrl by @tom2drum in #3515
🎨 Design Updates
✨ Other Changes
- Include individual chart pages in sitemap when chain stats is enabled by @tom2drum in #3524
- Disconnect wallet on sign out by @tom2drum in #3509
- Remove 500-transaction threshold for metadata address submit by @tom2drum in #3505
- Improve REST API docs Swagger UI tag grouping and search by @tom2drum in #3486
- Refactor metadata templates and update page titles/descriptions by @tom2drum in #3516
- Remove deprecated MUD framework feature by @tom2drum in #3531
- Mixpanel: route data to EU servers by @tom2drum in #3536
🚨 Changes in ENV variables
- #3293:
- Added
NEXT_PUBLIC_USERCENTRICS_CONFIG— JSON object withsettingsIdand/orrulesetId. When set, injects the Usercentrics CMP script and gates third-party analytics, monitoring, and ad services behind user consent. - Added
NEXT_PUBLIC_USERCENTRICS_DRAFT— set totrueto load the unpublished (draft) CMP configuration for previewing consent changes before publishing. Only valid whenNEXT_PUBLIC_USERCENTRICS_CONFIGis set.
- Added
- #3461:
- Added
NEXT_PUBLIC_STATS_API_REFETCH_INTERVAL— JSON map controlling how often (ms) Stats API resources are refetched in the background (keys:stats:counters,stats:pages_main), e.g. for live-updating average block time. Only valid whenNEXT_PUBLIC_STATS_API_HOSTis configured.
- Added
- #3476:
- Added
NEXT_PUBLIC_PRO_API_SUPPORTED(boolean) — controls whether the PRO API tab appears in the API docs. Automatically set at container startup based on the chain's membership in the Blockscout Pro API; can be manually overridden. - Extended
NEXT_PUBLIC_API_DOCS_TABSwith a newpro_apitab ID.
- Added
- #3516:
- Changed the default value of
NEXT_PUBLIC_OG_ENHANCED_DATA_ENABLEDfromfalsetotrue.
- Changed the default value of
- #3520:
- Extended
NEXT_PUBLIC_VIEWS_TX_HIDDEN_FIELDSwith four new field IDs —L1_gas_used,L1_gas_price,L1_fee,L1_fee_scalar— to allow hiding L1 fee datapoints individually on the transaction details page.
- Extended
- #3531:
- Removed
NEXT_PUBLIC_HAS_MUD_FRAMEWORK(MUD framework feature removed); moved to deprecated ENVs.
- Removed
Full list of the ENV variables: v2.9.0
💑 Compatibility
From this version onward, the app is compatible only with the following API versions:
| Service | Version |
|---|---|
| Blockscout API | v11.2.0+ |
| Blockscout ENS microservice API | v1.7.1+ |
Full Changelog: v2.8.1...v2.9.0