The platform indexes Ethereum data based on subgraph descriptions, referred to as “subgraph manifest”. The description of a subgraph defines smart contracts of interest for a subgraph, events in them to pay attention to, and how to map event data to the data which The Graph stores in its database. Once a subgraph manifest is written, the Graph command-line interface (CLI) is used to store the definition and instruct the indexer to start indexing data for that subgraph. The Graph Node continually scans Ethereum for new blocks and data for subgraphs they may contain. Once a Dapp adds data to the blockchain through a transaction on a smart contract, it emits one or more events while processing the transaction. Thanks to this, The Graph Node can find Ethereum events in blocks and run mapping handlers provided. The mapping is a WebAssembly module that creates or updates data entities that Graph Node stores in response to Ethereum events. A Dapp queries the Graph Node for data indexed from the blockchain, via the node’s GraphQL endpoint, whose queries are then translated into queries for the Graph Node’s underlying data store, making use of the store’s indexing capabilities. This data is then displayed by the Dapp for end-users, which use it to issue new translations.