Releases: blockscout/frontend
Releases · blockscout/frontend
Release list
v2.10.1
v2.10.0
🚀 New Features
- Multichain: cross-chain views by @tom2drum in #3539
- Link the API navigation item to the Blockscout Dev Portal on Pro API chains by @tom2drum in #3592
🐛 Bug Fixes
- Fix gas estimation for Dynamic wallet contract writes by @tom2drum in #3578
- Fix
api_temp_tokencookie TTL — useapi-v2-temp-token-ttlinstead ofx-ratelimit-resetby @tom2drum in #3590
⚡ Performance Improvements
- Performance of large lists: lazy tooltip/popover mounting, skeleton fast path, profiling tooling by @tom2drum in #3551
- Improve initial load by priming API fetches and deferring wallet & analytics by @tom2drum in #3568
- Lazy-render heavy list and table pages with query-identity reset keys by @tom2drum in #3584
- Build CSP policies with a nonce once at startup instead of on every page request by @tom2drum in #3591
📦 Dependencies Updates
🎨 Design Updates
🛠️ DX & Tooling
- Refine the product-task workflow: per-subtask folders, self-contained PR titles, testing & comment rules by @tom2drum in #3579
- Back the env-var deprecation branch choice with a check of the DevOps config repo by @tom2drum in #3594
🚨 Changes in ENV variables
- #3592:
- Removed
NEXT_PUBLIC_ACCOUNT_API_KEYS_BUTTON— the "Add API key" button is now hidden automatically on Pro API chains, so the variable and its URL-link mode are no longer needed. Instances still passing it will fail container startup. NEXT_PUBLIC_API_DOCS_TABSno longer accepts thepro_apitab; instances still passing that value will fail container startup. Leaving the variable unset is what enables the dev-portal link on Pro API chains.NEXT_PUBLIC_API_DOCS_ALERT_MESSAGEno longer has any effect — the API docs page does not show a custom alert anymore. The variable is still accepted and prints a startup warning; it will be removed from the schema in the next release.NEXT_PUBLIC_API_KEYS_ALERT_MESSAGEnow has a built-in default — the API keys deprecation notice shown on Pro API chains. Do not pass the variable unless you need to override that text; an empty value hides the notice.
- Removed
Full list of the ENV variables: v2.10.0
💑 Compatibility
From this version onward, the app is compatible only with the following API versions:
| Service | Version |
|---|---|
| Blockscout API | v11.2.3+ |
Full Changelog: v2.9.4...v2.10.0
v2.9.4
- Fix link style in token verified tooltip
Full Changelog: v2.9.3...v2.9.4
v2.9.3
v2.9.2
🚀 New Features
🐛 Bug Fixes
📦 Dependencies Updates
- Clean up API types and adopt admin-rs / contracts-info type packages by @tom2drum in #3544
- Bump Dynamic wallet SDK to 4.91.4 by @tom2drum in #3548
🛠️ DX & Tooling
- Run independent Checks workflow steps in parallel by @tom2drum in #3546
- Agent context and skills for the API layer by @tom2drum in #3547
- Set up Cursor Cloud development environment by @tom2drum in #3549
- Add spec-driven product task workflow by @tom2drum in #3561
🎨 Design Updates
- UI: Stroke for Color theme and Address identicon by @tom2drum in #3543
- Rework Token page + token instance page navigation by @tom2drum in #3560
✨ Other Changes
- Add USD value for UserOps fees by @tom2drum in #3556
- Support count-only
new_blocks_countsocket event for the blocks list new-items counter by @tom2drum in #3564
🚨 Changes in ENV variables
- #3559:
- Extended
NEXT_PUBLIC_HOMEPAGE_HERO_BANNER_CONFIGwith new optional fields in itssearchobject:background(hero search input background color per light/dark theme) andborder_color(border color per input state —_empty,_hover,_focus,_filled). The existingborder_widthbehavior is unchanged, and instances without the new fields keep their current appearance.
- Extended
Full list of the ENV variables: v2.9.2
💑 Compatibility
From this version onward, the app is compatible only with the following API versions:
| Service | Version |
|---|---|
| Blockscout API | v11.2.3+ |
Full Changelog: v2.9.1...v2.9.2
v2.9.1
Full Changelog: v2.9.0...v2.9.1
v2.9.0
🚀 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
v2.8.1
- Update
useApiFetchto include credentials for non-core API requests on the same origin - Add zerodev to csp connect-src
Full Changelog: v2.8.0...v2.8.1
v2.8.0
🚀 New Features
- Cross-chain: ICTT users index, bridged tokens tab, and stats layout by @tom2drum in #3351
- Async CSV export by @tom2drum in #3330 and #3373
- Maintenance banner - allow rotation by @tom2drum in #3322
- Numeric widget: add optional value title from API (#3282) by @tom2drum in #3337
- Use sockets to update latest block/batch on home page by @maxaleks in #3353
🐛 Bug Fixes
- Fix: add base path to swagger UI requests, curl display by @2wheeh in #3316
- DApp disclaimer always forces embeded page by @tom2drum in #3336
- Adjust scale in d3 to display correct resolution by week in stats by @tom2drum in #3359
- Fix popoper overflow issue and sticky table header issue by @tom2drum in #3368
- Broken layout on
Verify & publish contractforSolidity (Hardhat)… by @tom2drum in #3367 - Multichain explorer: fix "View all transfers" link on tx page by @tom2drum in #3389
- Noves: unreadable tooltip in dark mode on
Asset Flowstx tab by @tom2drum in #3376 - Improve toast messages in the Revoke dapp by @maxaleks in #3344
- Fix address comparison by @maxaleks in #3409
- Fix adblock detection and CSP for Sevio by @maxaleks in #3428
- Multichain: support confidential (ERC-7984) tokens in portfolio and transfers by @tom2drum in #3424
📦 Dependencies Updates
- Migrate to Next.js 16 by @tom2drum in #3318
- Migrate from Yarn to pnpm by @tom2drum in #3323
- Bump Next.js to 16.2.4 and refresh dependency versions by @tom2drum in #3361
- Migrate to TypeScript 6 by @Copilot in #3395
- Update dependencies in package.json and pnpm-lock.yaml to Next.js 16.… by @tom2drum in #3406
- Dynamic wallet: add ZeroDev smart wallet connectors by @tom2drum in #3417
🛠️ DX & Tooling
- Refactor transaction page: TxInfo → TxDetails, external txs and TAC operation by @tom2drum in #3315
- Architecture redesign by @tom2drum in #3325
- Agent tooling relocation, architecture redesign docs by @tom2drum in #3343
- Refactor deployment workflows by @tom2drum in #3362
- Pass imageName: frontend-private to cleanup_docker workflow by @alik-agaev in #3365
- Add copilot-setup-steps.yml to pre-install pnpm dependencies by @Copilot in #3390
- Toolkit: input truncation, adaptive tabs list props, FormFieldSwitch label via children by @tom2drum in #3386
- [Migration 0-1] Rename configs/app/features/ files to kebab-case by @tom2drum in #3346
- [Migration 0-2] Enable ESLint import/no-cycle + boundaries rules by @tom2drum in #3349
- [Migration 1-1]: Migrate
client/apiby @Copilot in #3370 - [Migration 1-2] Migrate client/shared/ by @tom2drum in #3372
- [Migration 2-1:] pilot tx slice in client/ by @tom2drum in #3377
- [Migration 3-1] Move block slice to client/ architecture by @tom2drum in #3379
- [Migration 3-2] Slice: address by @tom2drum in #3385
- Fix client slice import paths by @tom2drum in #3391
- [Migration 3-3] Slice: search by @tom2drum in #3410
- [Migration 3-4] Slice: token by @tom2drum in #3394
- [Migration 3-5] Slice: contract by @tom2drum in #3402
- [Migration 3-6] Slice: internal-tx by @Copilot in #3397
- [Migration 3-7] Slice: home by @tom2drum in #3416
- [Migration 3-8] Slice: log by @Copilot in #3404
- [Migration 3-9] Slice: token-transfer by @Copilot in #3400
- [Migration 3-10] Slice: gas by @tom2drum in #3420
- [Migration 4-1] Feature rollup/optimism and op-interop by @tom2drum in #3422
- [Migration 4-2] Feature rollup/arbitrum by @tom2drum in #3425
- [Migration 4-3] Feature rollup/zk-sync by @tom2drum in #3427
- [Migration 4-4]: rollup/common — shared types and utils by @tom2drum in #3433
- [Migration 4-5] Feature: rollup/scroll by @tom2drum in #3430
- [Migration 4-6] Feature rollup/shibarium by @tom2drum in #3436
- [Migration 5-1] Feature: chain-variants/celo by @tom2drum in #3439
- [Migration 5-2] Feature: chain-variants/tac by @tom2drum in #3445
- [Migration 5-3] Feature: chain-variants/zeta-chain by @Copilot in #3447
- [Migration 5-4] Feature chain-variants/suave by @Copilot in #3444
- [Migration 5-5] Feature: chain-variants/mega-eth by @Copilot in #3451
- [Migration 5-6] Feature: chain-variants/beacon-chain by @Copilot in #3446
- [Migration 5-7] Feature: chain-variants/mud by @Copilot in #3454
- [Migration 6-1] Feature: user-ops by @Copilot in #3455
- [Migration 6-2] Feature: data-availability by @Copilot in #3457
- [Migration 6-5] Feature: account by @Copilot in #3459
🎨 Design Updates
- Multichain explorer: add border to portfolio card by @tom2drum in #3333
- Inputs: fix text line height by @tom2drum in #3334
- UI: Additional info popup (paddings) by @tom2drum in #3342
- UX: Remove filter if tab is empty by @tom2drum in #3347
✨ Other Changes
- Rework ads by @maxaleks in #3383
- Support full instance specifiers for admin and contract-info services by @tom2drum in #3355
- Support both chain slug and chain id in multichain page parameters by @tom2drum in #3338
- Support
http://localhost(no/api) as Swagger server URL placeholder by @Copilot in #3364 - Hero banner: move heading copy to configurable text in hero banner JSON by @tom2drum in #3335
- Remove zkEvm rollup option by @Copilot in #3375
- Promote the Blockscout PRO API in
llms.txtby @akolotov in #3388 - Tokens page: modify search field hint by @tom2drum in #3381
- API Keys page: allow modification of the helping text by @tom2drum in #3384
- ERC-7984 (token transfer page) by @tom2drum in #3413
- Update license formatting and add license header to files by @tom2drum in #3419
- Sitemap lastmod, font preconnect, and Tor onion footer by @tom2drum in #3435
- Add an option to disable internal and pending transactions views by @tom2drum in #3448
🚨 Changes in ENV variables
- #3322:
- Expanded
NEXT_PUBLIC_MAINTENANCE_ALERT_MESSAGEto accept either a single string or a JSON array of strings.
- Expanded
- #3335:
- Extended
NEXT_PUBLIC_HOMEPAGE_HERO_BANNER_CONFIGwith optional nestedtextto override hero heading copy.
- Extended
- #3337:
- Added optional
valueTitlePathfield insideNEXT_PUBLIC_ADDRESS_3RD_PARTY_WIDGETSJSON for auxiliary title text.
- Added optional
- #3355:
- Added
NEXT_PUBLIC_ADMIN_RS_INSTANCE_IDto support full instance specifiers in admin service URLs. - Added
NEXT_PUBLIC_CONTRACT_INFO_INSTANCE_IDto support full instance specifiers in contract-info service URLs.
- Added
- #3375:
- Removed
zkEvmfrom validNEXT_PUBLIC_ROLLUP_TYPEvalues and removed associated zkEvm support paths.
- Removed
- #3383:
- Replaced
conizillawithsevioin the list of possible options forNEXT_PUBLIC_AD_BANNER_PROVIDER. - ...
- Replaced