Skip to main content
The Starknet data source can stream blocks all the way to the current chain head, including blocks that have not yet been finalized. Real-time data requires an RPC data source - add one with setRpc(), as shown in the Quickstart.

Indexing unfinalized blocks

To index unfinalized (“hot”) blocks and stay correct across chain reorganizations, a squid must use a Database with hot block support (e.g. TypeormDatabase with {supportHotBlocks: true}) in its run() call, and not cap its block range below the chain head. With a hot-block-aware database, run() consumes the fork-aware stream of the data source. When a reorganization happens, the processor asks the Database to roll back the changes made for the orphaned blocks, then re-runs the batch handler on the new consensus blocks. The state of the Database reflects the current chain consensus at all times, and the batch handler code never has to deal with forks itself.