Skip to content

Conversation

@tom2drum
Copy link
Collaborator

@tom2drum tom2drum commented Dec 5, 2025

Description and Related Issue(s)

Resolves #2911

This PR implements the Hot Contracts page, which displays aggregate metrics for the most popular contracts on the network. The page includes a table with contract information, transaction counts, gas usage, and balance data, with support for multiple time intervals and sorting options.

Proposed Changes

  • New Hot Contracts page (/hot-contracts) with table and list views for mobile and desktop
  • Time interval filter with options: 5m, 1h, 3h, 24h, 1W, 1M (with note about daily updates for longer intervals)
  • Sortable columns: Transaction count (default descending) and Gas used (ascending/descending)
  • Contract display with preload order: name tag, implementation name, contract name, address hash
  • Balance column showing native coin balance with currency symbol
  • Navigation integration - added "Hot contracts" link to the navigation menu under "Charts & stats"
  • Value formatting improvements - displays values less than 0.001 as "<0.001" for better readability
  • Playwright tests with screenshots for mobile and desktop views

Environment Variables

Added NEXT_PUBLIC_HOT_CONTRACTS_ENABLED environment variable to enable the Hot Contracts feature. When set to true, the feature is enabled and the page becomes accessible through navigation. This variable is documented in ENVS.md under the "Hot contract" section.

Breaking or Incompatible Changes

None.

Additional Information

The implementation follows the design specifications from the Figma design and integrates with the existing Blockscout API endpoint for hot contracts data. The page supports the "Hide scam tokens" toggle functionality as specified in the requirements.

Checklist for PR author

  • I have tested these changes locally.
  • I added tests to cover any new functionality, following this guide
  • Whenever I fix a bug, I include a regression test to ensure that the bug does not reappear silently.
  • If I have added, changed, renamed, or removed an environment variable
    • I updated the list of environment variables in the documentation
    • I made the necessary changes to the validator script according to the guide
    • I added "ENVs" label to this pull request

@tom2drum tom2drum added the ENVs label Dec 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hot contracts table

2 participants