Tezos Dappetizer
  • Quick Start
  • How-to Guides
    • Using PostgreSQL
    • Exposing API with Hasura
  • Reference
    • Decorator-based Indexing
      • Indexing Entrypoint Call
      • Indexing Storage Change
      • Indexing Bigmap Update
      • Indexing Incoming Transaction
    • Interface-based Indexing
    • Configuration
    • Command Line
    • Usage Statistics
  • Technical Concepts
    • Indexing Cycle
    • Indexer Modules
  • Token Indexer
    • Introduction
    • Running Standalone in Docker
  • API Docs
  • dappetizer GitLab
Powered by GitBook
On this page
  • Indexing Cycle Handler
  • Block Data Indexers
  • Contract Indexers
  • Database Entities

Was this helpful?

  1. Technical Concepts

Indexer Modules

PreviousIndexing CycleNextIntroduction

Last updated 3 years ago

Was this helpful?

An indexer module is the main place to implement your custom indexing logic. It consists of indexers for block data or contracts. Indexers are executed together and they share the same context data. The data are managed per block by the indexing cycle handler. An indexer module can also reference database entities used to store the indexed data.

For exact API, check docs of , or .

Indexing Cycle Handler

Creates initial context data for indexing each block. Also, it can be executed before or after other indexers are executed, and it should handle blockchain reorganization.

For exact API, check docs of , or .

Block Data Indexers

Provide extension points for indexing block parts like block itself, operation groups, operations, operations results, balance updates, etc.

For exact API, check docs of , or .

Contract Indexers

Provide extension points for block parts related to a contract like origination, entrypoint, big map diff, storage change, etc. Firstly, a contract indexer decides if it wants to index a contract based on its address, definition, and other details. At that point, it can associate some additional data with a contract which will be passed in by Dappetizer on each contract call. For example, you want to index contracts with a particular big map type, so you examine it and store some big map details, e.g. its schema.

For exact API, check docs of , or .

Database Entities

Database entities are usually classes used for storing the data to the database by the module. Check out for more details about entities.

For exact API, check docs of .

IndexerModule
IndexerModuleUsingDb
IndexingCycleHandler
IndexingCycleHandlerUsingDb
BlockDataIndexer
BlockDataIndexerUsingDb
ContractIndexer
ContractIndexerUsingDb
TypeORM documentation
DbEntity