| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| BlockScout v10.0.0 source code.tar.gz | 2026-02-24 | 8.4 MB | |
| BlockScout v10.0.0 source code.zip | 2026-02-24 | 10.3 MB | |
| README.md | 2026-02-24 | 19.7 kB | |
| Totals: 3 Items | 18.7 MB | 0 | |
🚀 Features
- ERC-7984 Confidential Tokens (#13593, #14019, #14022, #14023)
- Move current token balances into a separate fetcher (#13923)
- Re-architect internal transaction format with call-type enum, error dictionary, and normalization (#13893, #14042, #14043)
- Add audit-reports import endpoint (#13884)
- Solady smart-contract proxy with immutable arguments support (#13794)
- Optionally accrue burnt fees to the block miner (#13894)
- Allow adding EOA with code to watchlist (#13885)
- Add Dynamic provider for account (#13786)
- Distributed cache (#13698)
- Return timestamps in the event logs list API endpoints (#13779)
- Support EigenDA blobs by Optimism batch indexer (#13709)
txlistinternalAPI endpoint pending item status (#13758)- Setup universal proxy config from the JSON content in ENV variable (#13787)
- Missed L1-to-L2 messages catchup on Arbitrum rollups (#13792)
- Expose CHAIN_TYPE in the REST API (#13805)
- REST API endpoint to list uncompleted DB migrations (#13835)
- Show ENS domains without resolved address in search (#13638)
- Mark contract addresses in search results (#13636)
🐛 Bug Fixes
- Handle nil coin balance in "broadcast_address_coin_balance/1" function (#14044)
- Fix duplicating paging params (#14010)
- Handle maybe_reject_zero_value for missing value (#13990)
- Handle internal transactions nil value(#13974)
HttpClient.getusage in genesis data module (#13945)- Multichain counter starting time and small fixes (#13920)
- Fix 500 on empty ens domain search (#13928)
- Limit
getlogsafter filtering consensus (#13934) - Handle nil in update_transactions_cache/2 (#13911)
- Fix token balances broadcasting function (#13902)
- Wrong
next_page_paramsin OP Deposits (#13870) - Fix error on loading thumbnails when public_r2_url is missed (#13895)
- Check token presence in address current token balance (#13892)
- Fix swagger generation for Mud chain
- Fix error in Indexer.Fetcher.OnDemand.TokenBalance module (#13890)
- Actualize indexer tests (#13887)
- Clear bytecode for smart-contracts self destructed in a separate transaction (#13834)
- Skip hot contracts fetching if last 30 days not indexed (#13873)
- Add block range filtering to TokenBalance fetcher (#13874)
- Filter traceable data in InternalTransaction.async_fetch (#13872)
- Take into account empty arrays in Explorer.Migrator.SanitizeIncorrectNFTTokenTransfers (#13852)
- Fix search for ERC-1155 with null symbol (#13632)
- Return date to logs (#13858)
- Convert token id to string from refetch metadata in the socket (#13762)
- Prevent DeleteZeroValueInternalTransactions from running while ShrinkInternalTransactions is in progress (#13847)
- Remove contract code and verified data on lose consensus (#13829, #13905)
- Exclude 0 index internal transactions from /api/v2/internal-transactions endpoint (#13841)
- Fix NaN gas limit for
selfdestructinternal transaction in the REST API (#13827) - Handle normal termination of Indexer.Fetcher.OnDemand.ContractCode process (#13828)
- Validate block number in the api/v2/blocks/:block_number API endpoint (#13795)
- Fix methodId detection (#13811)
- Improve Arbitrum L1->L2 message discovery for reorg and RPC consistency (#13770)
🚜 Refactor
- Improve error handling in
EthereumJSONRPC.execute_contract_function/3(#13764)
⚙️ Miscellaneous Tasks
- Claim storage space from multichain - related queues tables (#14025)
- Improve pending block operations count metric (#14024)
- Add initial_stream delay to BufferedTask (#14018, #14020)
- Adjust query for "missing_current_token_balances_count" indexer metric (#14009)
- Add support for new BENS api (#13992)
- Add internal transactions not null constraints (#13976, #13995)
- Change 429 error text (#13989)
- Enhance indexer metrics calculation (#13985)
- Don't send historic rate for recent txs (#13960)
- Increase default for MIGRATION_EMPTY_INTERNAL_TRANSACTIONS_DATA_BATCH_SIZE to 1000 (#13953)
- Improve EmptyInternalTransactionsData migration (#13918)
- Disable Auth0 when Dynamic enabled (#13912)
- Add swagger spec for account abstraction endpoints (#13897)
- Clear token "skip_metadata" property (#13891)
- Refactor internal transaction logic from "block_index" to "transaction_index" and "index" (#12474, #14029)
- Cover Optimism API endpoints with swagger docs (#13672)
- Duplicate internal transaction created_contract_address_hash to to_address_hash (#13846, #14039, #14040)
- Add "openapi_spec_folder_name" to the response of api/v2/config/backend endpoint (#13845)
- Re-use parse_url_env_var/3 function for all *_URL env variables (#13800)
- Add swagger spec for MUD endpoints (#13793)
- Set unique block numbers in handle_partially_imported_blocks/1 (#13657)
- Disband 37% of Explorer.Chain module (#13755)
- Disable MissingRangesManipulator (#13359)
- Improve replica usage (#13344)
- Make "jsonrpc" field in response optional (#13724)
📘 Updated Swagger Documentation
- Swagger files for version 10.0.0: https://github.com/blockscout/swaggers/tree/master/blockscout/10.0.0
💡 New environment variables
New environment variables list
| Variable | Description | Parameters | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | `BLOCK_MINER_GETS_BURNT_FEES` | If `true`, the Burnt fees are added to block miner profit and displayed in UI as zero. Implemented in [#13894](https://github.com/blockscout/blockscout/pull/13894). | Version: v10.0.0\+Default: `false`
Applications: API | | `UNIVERSAL_PROXY_CONFIG` | JSON-encoded configuration string used to define settings for the universal proxy. Implemented in [#13787](https://github.com/blockscout/blockscout/pull/13787). | Version: v10.0.0\+
Default: (empty)
Applications: API | | `MIGRATION_EMPTY_INTERNAL_TRANSACTIONS_DATA_BATCH_SIZE` | Number of internal transactions to clear their data in the batch. Implemented in [#13893](https://github.com/blockscout/blockscout/pull/13893). | Version: v10.0.0\+
Default: `1000`
Applications: Indexer | | `MIGRATION_EMPTY_INTERNAL_TRANSACTIONS_DATA_CONCURRENCY` | Number of parallel clearing internal transaction data batches processing. Implemented in [#13893](https://github.com/blockscout/blockscout/pull/13893). | Version: v10.0.0\+
Default: `1`
Applications: Indexer | | `MIGRATION_EMPTY_INTERNAL_TRANSACTIONS_DATA_TIMEOUT` | Timeout between clearing internal transaction data batches processing. Implemented in [#13893](https://github.com/blockscout/blockscout/pull/13893). | Version: v10.0.0\+
Default: `0`
Applications: Indexer | | `CACHE_PENDING_OPERATIONS_COUNT_PERIOD` | Time interval to restart the task which calculates the total pending operations count. Introduced in [#12474](https://github.com/blockscout/blockscout/pull/12474). | Version: v10.0.0\+
Default: `5m`
Applications: API, Indexer | | `ACCOUNT_DYNAMIC_ENV_ID` | Dynamic Environment ID, can be found here https://app.dynamic.xyz/dashboard/developer/api. Implemented in [#13786](https://github.com/blockscout/blockscout/pull/13786). | Version: v10.0.0\+
Default: (empty)
Applications: API | | `INDEXER_OPTIMISM_L1_BATCH_EIGENDA_BLOBS_API_URL` | Defines a URL to DA indexer supporting EigenDA layer to retrieve L1 blobs from that. Example: `https://da-indexer-dev.k8s-prod-3.blockscout.com/api/v1/eigenda/v2/blobs`. Implemented in [#13709](https://github.com/blockscout/blockscout/pull/13709). | Version: v10.0.0+
Default: (empty)
Applications: Indexer | | `INDEXER_OPTIMISM_L1_BATCH_EIGENDA_PROXY_BASE_URL` | Defines a URL to EigenDA proxy node which is used by the DA indexer (planned to be optional in the future). Example for MegaETH: `http://megaeth-eigenda-proxy.node.blockscout.com:3100`. Implemented in [#13709](https://github.com/blockscout/blockscout/pull/13709). | Version: v10.0.0+
Default: (empty)
Applications: Indexer | | `INDEXER_ARBITRUM_MESSAGES_TRACKING_FAILURE_THRESHOLD` | The time threshold for L1 message tracking 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 [#13792](https://github.com/blockscout/blockscout/pull/13792). | Version: v10.0.0+
Default: `10m`
Applications: Indexer | | `INDEXER_ARBITRUM_MISSED_MESSAGE_IDS_RANGE` | Size of each message ID range inspected when discovering L1-to-L2 messages with missing L1 origination information. Implemented in [#13792](https://github.com/blockscout/blockscout/pull/13792). | Version: v10.0.0+
Default: `10000`
Applications: Indexer | | `INDEXER_CURRENT_TOKEN_BALANCES_BATCH_SIZE` | Batch size for current token balances fetcher. Implemented in [#13923](https://github.com/blockscout/blockscout/pull/13923). | Version: v10.0.0+
Default: `100`
Applications: Indexer | | `INDEXER_CURRENT_TOKEN_BALANCES_CONCURRENCY` | Concurrency for current token balances fetcher. Implemented in [#13923](https://github.com/blockscout/blockscout/pull/13923). | Version: v10.0.0+
Default: `10`
Applications: Indexer |