🚨 API v2 – Breaking Changes in Release 9.0.0
The 9.0.0 release of /api/v2 includes breaking changes aimed at enforcing consistency across the API. This includes structural changes, deprecated field removals, and naming standardizations that were previously announced in the v8 release.
🩺 /api/v2/health Endpoint Update
- Removed:
latest_blockfrom the root of the response. - Replacement: Use
blocks.latest_blockinstead.
📛 Deprecated Fields Removed (As Announced in v8)
In line with the API v2 naming policy, the following legacy properties have been removed. Please ensure you're using their updated equivalents:
Full API response properties renaming list
❌ Removed
✅ Use Instead
address (hex string)
address_hash
transaction_count
transactions_count
holders
holders_count
holder_count
holders_count
validators_counter
validators_count
new_validators_counter_24h
new_validators_count_24h
active_validators_counter
active_validators_count
withdrawal_sum
withdrawals_sum
withdrawal_count
withdrawals_count
origination_address
origination_address_hash
outbox_address
outbox_address_hash
caller
caller_address_hash
destination
destination_address_hash
start_block
start_block_number
end_block
end_block_number
before_acc
before_acc_hash
after_acc
after_acc_hash
associated_l1_transaction
associated_l1_transaction_hash
l1_block_height
l1_block_number
blob_transaction_count
blob_transactions_count
contract_address
contract_address_hash
internal_id
number
l2_block_start
l2_start_block_number
l2_block_end
l2_end_block_number
slashing_status_is_slashed
slashing_status.is_slashed
slashing_status_by_block
slashing_status.by_block
slashing_status_multiplier
slashing_status.multiplier
l1_transaction_count
l1_transactions_count
l2_transaction_count
l2_transactions_count
🧠 Smart Contract Object Changes
✅ Added
creation_statusfield added to theaddressobject in responses.
Possible values:selfdestructed,failed,success
🔁 Renamed
- Field
statusin thesmart_contractobject → renamed tocreation_status
❌ Removed
- Field
is_self_destructedremoved from the endpoint:
/api/v2/smart-contracts/:address_hash
⚠️ Action Required
These changes are not backward-compatible. If you're consuming these endpoints, please update your integrations immediately to avoid errors or data inconsistencies.
💡 New environment variables
New environment variables list
| Variable | Description | Parameters |
|---|---|---|
INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_ENABLED
| If true, Indexer.Utils.EventNotificationsCleaner process starts. Implemented in #12738
| Version: v9.0.0+ |
INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_INTERVAL
| Interval between DB event notifications cleanup. Time format. Implemented in #12738 | Version: v9.0.0+ |
INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_MAX_AGE
| Max age of DB event notifications before they are cleaned up. Time format. Implemented in #12738 | Version: v9.0.0+ |
INDEXER_SIGNED_AUTHORIZATION_STATUS_BATCH_SIZE
| Batch size (number of blocks) for EIP7702 authorizations status fetcher. Implemented in #12451. | Version: v9.0.0+ |
MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_BATCH_SIZE
| Number of blocks to reindex in the batch. Implemented in #12559. | Version: v9.0.0+ |
MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_CONCURRENCY
| Number of parallel reindexing block batches processing. Implemented in #12559. | Version: v9.0.0+ |
MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_TIMEOUT
| Timeout between reindexing block batches processing. Implemented in #12559. | Version: v9.0.0+ |
MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_ENABLED
| Enable reindex blocks with missing transactions migration. Implemented in #12559. | Version: v9.0.0+ |
MIGRATION_MERGE_ADJACENT_MISSING_BLOCK_RANGES_BATCH_SIZE
| Specifies the missing block range batch size selected for the merge migration. Implemented in #12778. | Version: v9.0.0+ |
API_RATE_LIMIT_CONFIG_URL
| URL to fetch API rate limit configuration from external source. Implemented in #12386 | Version: v9.0.0+ |
API_RATE_LIMIT_BY_KEY_TIME_INTERVAL
| Time interval for API rate limit by key. Time format. Implemented in #12386 | Version: v9.0.0+ |
API_RATE_LIMIT_BY_WHITELISTED_IP_TIME_INTERVAL
| Time interval for API rate limit by whitelisted IP. Time format. Implemented in #12386 | Version: v9.0.0+ |
API_RATE_LIMIT_UI_V2_WITH_TOKEN_TIME_INTERVAL
| Time interval for API rate limit for UI v2 with token. Time format. Implemented in #12386 | Version: v9.0.0+ |
API_RATE_LIMIT_BY_ACCOUNT_API_KEY_TIME_INTERVAL
| Time interval for API rate limit by account API key. Time format. Implemented in #12386 | Version: v9.0.0+ |
INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_FETCHER
| If true, multichain DB main (blocks, transactions, addresses) export fetcher doesn't run. Implemented in #12377.
| Version: v9.0.0+ |
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_BATCH_SIZE
| Batch size for multichain DB main (blocks, transactions, addresses) export fetcher. Implemented in #12377. | Version: v9.0.0+ |
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_CONCURRENCY
| Concurrency for multichain DB main (blocks, transactions, addresses) export fetcher. Implemented in #12377. | Version: v9.0.0+ |
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT
| Timeout before new attempt to append item to multichain DB main (blocks, transactions, addresses) export queue if it's full. Time format. Implemented in #12377. | Version: v9.0.0+ |
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_MAX_QUEUE_SIZE
| Maximum size of multichain DB main (blocks, transactions, addresses) export queue. Implemented in #12377. | Version: v9.0.0+ |
INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_FETCHER
| If true, multichain DB balances export fetcher doesn't run. Implemented in #12580.
| Version: v9.0.0+ |
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_BATCH_SIZE
| Batch size for multichain DB balances export fetcher. Implemented in #12580. | Version: v9.0.0+ |
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_CONCURRENCY
| Concurrency for multichain DB balances export fetcher. Implemented in #12580. | Version: v9.0.0+ |
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT
| Timeout before new attempt to append item to multichain DB balances export queue if it's full. Time format. Implemented in #12580. | Version: v9.0.0+ |
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_MAX_QUEUE_SIZE
| Maximum size of multichain DB balances export queue. Implemented in #12580. | Version: v9.0.0+ |
INDEXER_POLYGON_ZKEVM_BATCHES_IGNORE
| Comma-separated list of batch numbers that should be ignored by the fetcher. Implemented in #12387. | Version: v9.0.0+ |
INDEXER_OPTIMISM_MULTICHAIN_BATCH_SIZE
| Max number of items sent to the Multichain service in one batch. Implemented in #12387. | Version: v9.0.0+ |
CELO_UNRELEASED_TREASURY_CONTRACT
| The address[^1] of the CeloUnreleasedTreasury core contract. Implemented in #12373.
| Version: v9.0.0+ |
CELO_VALIDATORS_CONTRACT
| The address[^1] of the Validators core contract. Implemented in #12373.
| Version: v9.0.0+ |
CELO_EPOCH_MANAGER_CONTRACT
| The address[^1] of the EpochManager core contract. Implemented in #12373.
| Version: v9.0.0+ |
⛔ Deprecated environment variables
Deprecated environment variables list
| Variable | Required | Description | Default | Version | Need recompile | Deprecated in Version |
|---|---|---|---|---|---|---|
INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_RETRY_FETCHER
| If true, retry multichain search export fetcher doesn't run. Implemented in #12377. Replaced with INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_FETCHER.
| false
| v8.1.0+ | v9.0.0 | ||
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_RETRY_BATCH_SIZE
| Batch size for retry multichain search export fetcher. Implemented in #12377. Replaced with INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_BATCH_SIZE.
| 10 | v8.1.0+ | v9.0.0 | ||
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_RETRY_CONCURRENCY
| Concurrency for retry multichain search export fetcher. Implemented in #12377. Replaced with INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_CONCURRENCY.
| 10 | v8.1.0+ | v9.0.0 | ||
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_RETRY_ENQUEUE_BUSY_WAITING_TIMEOUT
| Timeout before new attempt to append item to retry multichain search export queue if it's full. Time format. Implemented in #12377. Replaced with INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT.
| 1s | v8.1.0+ | v9.0.0 | ||
INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_RETRY_MAX_QUEUE_SIZE
| Maximum size of retry multichain search export queue. Implemented in #12377. Replaced with INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_MAX_QUEUE_SIZE.
| 1000 | v8.1.0+ | v9.0.0 | ||
API_RATE_LIMIT_TIME_INTERVAL
| Time interval of rate limit. Implemented in #7148. Replaced with API_RATE_LIMIT_BY_KEY_TIME_INTERVAL, API_RATE_LIMIT_BY_WHITELISTED_IP_TIME_INTERVAL, API_RATE_LIMIT_UI_V2_WITH_TOKEN_TIME_INTERVAL, API_RATE_LIMIT_BY_ACCOUNT_API_KEY_TIME_INTERVAL, API_RATE_LIMIT_BY_IP_TIME_INTERVAL
| 1s
| v5.1.3+ | v9.0.0 |
🚀 Features
- Export token info to Multichain service (#12867)
- Export balances to Multichain DB(#12726)
- Add eip7702 authorization status fetcher (#12451)
- Add token1155tx token404tx api v1 endpoints (#12720)
- Async multichain data export (#12490)
- Rate limits refactoring (#12386)
- Integrate Open API Spex lib (#11886)
- Update CodeQL action to v3 (#12697) (#12703)
- Support merged tenants (#12109)
- Support ethereum pre-deploy contracts (#12579)
- Add
creation_statusfield to address response (#12660) - Decode OP interop message payload, store cross-chain transfer data, display message page, send messages to Multichain (#12387)
- Celo l2 epochs (#12373)
- Add
/api/v2/config/celoconvenience endpoint (#12238)
🐛 Bug Fixes
- Ignore rate limit for api/v2/import/token-info and api/v2/import/smart-contracts/:param (#12917)
- Mitigate deadlocks while exporting balances and the main queue to the Multichain DB (#12898, #12928)
- Balances export queue: replace replace_all with replace only value and updated_at (#12892)
- Fix naming for apikey param in OpenAPI spec (#12891)
- Don't send coin balances with zero delta via ws (#12890)
- Balances export queue to multichain replace do_nothing with replace_all on insertion to the queue (#12888)
- Allow using temporary token for api/account/v2 by default (#12869)
- Fix increment of retries_number in exporting data to Multichain DB (#12847)
- Fix various errors on export of balances to Multichain DB (#12837)
- Reject empty token_id and value in export of token balances to the Multichain DB (#12829)
- Fix multichain export queues processing (#12822)
- Remove token_id parameter from coin balance payload to Multichain service API endpoint (#12817)
- Sanitize empty block_ranges payload before sending HTTP request to Multichain service(#12816)
- Disable Indexer.Fetcher.Optimism.Interop.MultichainExport for non-OP chains (#12814)
- Fix flaky test for exporting balances to Multichain DB (#12813)
- Filter out creation internal transaction with
index == 0(#12777) - Filter out scilla transactions in internal transactions fetcher (#12793)
- Change default ordering in
/api/v2/smart-contracts(#12767) - Filter scilla transactions by status (#12756)
- Fix timeout on cache update (#12773)
- Error on too big block numbers in APIv1
txlistmethod (#12727) - Fix CSV export tests (#12744)
- Fix race condition for EventNotification (#12738)
- Multichain retry hex decoding (#12742)
- Internal transactions balance extraction (#12654)
- Multichain search export: retry only on failed chunks (#12459)
- Display correct OP Deposit origin address (#12672)
- Store blocks_validated in DB for Stability Validators (#12540)
MarketHistoryon conflict clause (#12541)- Flaky 404 in
/api/v2/internal-transactions(#12701) - CryptoRank integration (#12523)
- Fix timeout on fetching address internal transactions (#12570)
- Coin balance history with internal tx changes (#12631)
- Update all block fields on conflict (#12418)
- Fix pending transactions sanitizer (#12559)
- Don't send logs without topic to sig provider (#12620)
- Add missing fields to Celo Epochs-related endpoints (#12589)
- Correctly use Geth importer for Besu genesis file. (#12466) (#12686)
- Ignore unknown type txs in gas price oracle (#12613)
- Resolve timeouts on Celo epoch reward contract reads (#12229)
- Prevent constant refetching of celo epoch blocks (#12498)
- Fix typo in ondemand token balance request (#12495)
- Fix for
add_0x_prefixfunction (#12514)
⚡ Performance
⚙️ Miscellaneous Tasks
- Remove obsolete API response props (#12931)
- Balances Multichain export: Refactor rows acquisition for deletion query (#12839)
- Change name of Swagger generation workflow (#12840)
- migrate Auth0 to mint as well (#12807)
- Migrate from HTTPoison to Tesla.Mint (#12699)
- Merge adjacent missing block ranges (#12778)
- Optimize missing block ranges operations (#12705)
- Hold parity with Etherscan APIv1 for
getcontractcreationandgetblocknobytimeendpoints (#12721) - Allow resending reindexed OP interop messages to Multichain service (#12626)
- Duplicate block countdown endpoint in API v2 (#12704)
- Revise Explorer.Helper.add_0x_prefix usage (#12543)
- New tac microservice endpoint for search (#12448)
- Add filter for value > 0 to txlistinternal (#12679)
- Optimize realtime events notifier (#12494)
- Drop address_coin_balances value_fetched_at index (#12598)
- Update deprecated address to address_hash in tx summary response (#12617)
- Remove redundant word in comment (#12603)
- Move background migrations under indexer mode (#12480)
- Support multiple interop messages view on transaction page (#12455)
- Remove
is_self_destructedfield in/api/v2/smart-contracts/{address_hash}response (#12239) - Set home directory for blockscout user (#12337)