Subgraph Manifest

A component of Subgraph that entails information pertaining to subgraph’s data sources, templates, and more.

What Is the Subgraph Manifest?

The subgraph manifest is the file that defines how specific data gets mapped from the Ethereum network to The Graph. It is written in YAML and contains the following fields:

Name: The name of the subgraph. 
Description: A brief description of what the subgraph is about. This will be displayed in the explorer UI to give users context around what they are looking at.
Data Sources: An array of data source IDs pointing to specific Ethereum networks and smart contract addresses. These provide mappings between on-chain events and fields on entities. This is where we define which smart contracts will contribute data to this subgraph, which specific events they emit, and how those events map onto a GraphQL schema defined elsewhere in this manifest.
The Subgraph Manifest is a structured way to specify the entities, relationships, and indexing needed for your graph. It is used by The Graph CLI to deploy your subgraph as well as by dApp developers on The Graph at query time.

Subgraphs are open-sourced data schemas that define how an application should store data in a decentralized database called a Graph Node. Subgraph manifests are written in GraphQL SDL and are used by Graph Nodes to create indexes of an entire blockchain and its smart contracts.

Anyone can create a subgraph using the graph-node command-line tool or the graph-node docker image. However, only curated subgraphs can be deployed on the public network of The Graph

The Graph is used as a protocol to build dApps faster using GraphQL. These dApps are primarily built on Ethereum and IPFS.

The Graph consists of a set of subgraphs, where each subgraph describes the data requirements for an application. Subgraphs can be composed together to create more complex applications. Every subgraph has an associated manifest that describes the data requirements of the subgraph along with other metadata about the subgraph.

Everything is open-source, so anyone can create a subgraph starting with a template or by forking an existing one.

Other than Manifest, Subgraph has two other components:

Schema: This defines what data you want to index in your graph. It is very similar to the type definitions in GraphQL and uses the same schema language.
Mapping: This defines how you want to map your Ethereum data into the graph using The Graph Query Language (GQL).