Blockscout home page
Search...
⌘K
Community
Blog
Get Started
Blockscout Docs
Using Blockscout
Developer Integration
Setup & Configuration
Migration Guide
Using Blockscout
Overview
My Account
Dappscout Apps Marketplace
Swapscout
Autoscout Explorer Launchpad
Revokescout
Merits
CSV Exports
Token Support
Developer Support
For Web3 Developers
Link To Blockscout
Blockscout APIs
Smart Contract Verification
MCP Server
Blockscout SDK
Chainscout Chains List
Setup and Run Blockscout
General Overview
Overview
Separate Indexer, Web App, And API
Umbrella Project Organization
Indexer Architecture Overview
ShareLock
EVM Version Information
Requirements
ENV Variables
Deployment
Microservices
Configuration Options
Indexing
Celestia Node / Indexer
Testing
DB Schema
FAQs
User FAQs
Developer FAQs
Resources
EaaS: Hosting with Blockscout
Contributing to Blockscout
Bug Bounty Program
Media Kit
Release Notes
Discord Channel
Discussion
GitHub Repo
Support
blockscout/blockscout
Blockscout home page
Search...
⌘K
Ask AI
Support
blockscout/blockscout
blockscout/blockscout
Search...
Navigation
General Overview
Indexer Architecture Overview
Guides
API Reference
About Blockscout
Guides
API Reference
About Blockscout
General Overview
Indexer Architecture Overview
Copy page
Learn how the indexing architecture works in Blockscout
Copy page
Presentation Highlights
The following presentation describes the past, present and future iterations of Blockscout along with details about how block imports work both synchronously and asynchronously, and a description of the regular and on-demand fetchers.
Blockscout Indexer Architecture Overview.pdf
1MB pdf
Blockscout indexers
See the pdf ⬆️ for more details about the Blockscout indexer. The indexing architecture includes all of the following indexers and fetchers
Primary Indexers
Both indexers utilize synchronous and asynchronous operations.
Realtime: Imports new block data from the head of the chain.
Catchup: Imports data down the chain (starting from the head and moving backwards towards the genesis block)
Secondary fetchers
Regular
Internal transactions
Pending transactions
Dropped/Replaced transactions
Contract bytecodes
Block rewards
Token catalog
Token/coin balances
NFT instances
Uncles
On Demand
Coin/token balances update
Contract bytecodes fetch/re-check
Contract source codes lookup
NFT instance metadata re-fetch
Token total supply
Off-chain integrations
Coin / token price, market cap, tvl sources: CMC, Coingecko, Cryptorank, Defillama
Smart contract verification: ETH bytecode DB, Sourcify
Data enrichment: ENS names, public tags, AI interpreters (own, Noves Fi), sc security scanners (Solidityscan), assets portfolio (Zerion)
Chain initialization data import: pre-mined coins, precompiled smart-contracts
Chain-specific fetchers
There are more than a dozen of chain-specific data fetchers to account for chain differences including arbitrum, optimism, polygon zkevm, zksync etc.
Temporary fetchers
Used once to resolve possible data inconsistencies.
Was this page helpful?
Yes
No
Previous
ShareLock
ShareLock is the row-level locking mechanism used internally by PostgreSQL.
Next
On this page
Presentation Highlights
Blockscout indexers
Primary Indexers
Secondary fetchers
Regular
On Demand
Off-chain integrations
Chain-specific fetchers
Temporary fetchers
Assistant
Responses are generated using AI and may contain mistakes.