You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The subgraph manifest specifies all the information required to index and query a specific subgraph. This is the entry point to your subgraph.
The subgraph manifest, and all the files linked from it, is what is deployed to IPFS and hashed to produce a subgraph ID that can be referenced and used to retrieve your subgraph in The Graph.
1.2 Format
Any data format that has a well-defined 1:1 mapping with the IPLD Canonical Format may be used to define a subgraph manifest. This includes YAML and JSON. Examples in this document are in YAML.
1.3 Top-Level API
Field
Type
Description
specVersion
String
A Semver version indicating which version of this API is being used.
Each data source spec defines the data that will be ingested as well as the transformation logic to derive the state of the subgraph's entities based on the source data.
Note: Each mapping is required to supply one or more handler type, available types: EventHandler, CallHandler, or BlockHandler.
1.5.2.2 EventHandler
Field
Type
Description
event
String
An identifier for an event that will be handled in the mapping script. For Ethereum contracts, this must be the full event signature to distinguish from events that may share the same name. No alias types can be used. For example, uint will not work, uint256 must be used.
handler
String
The name of an exported function in the mapping script that should handle the specified event.
topic0
optional String
A 0x prefixed hex string. If provided, events whose topic0 is equal to this value will be processed by the given handler. When topic0 is provided, only the topic0 value will be matched, and not the hash of the event signature. This is useful for processing anonymous events in Solidity, which can have their topic0 set to anything. By default, topic0 is equal to the hash of the event signature.
1.5.2.3 CallHandler
Field
Type
Description
function
String
An identifier for a function that will be handled in the mapping script. For Ethereum contracts, this is the normalized function signature to filter calls by.
handler
String
The name of an exported function in the mapping script that should handle the specified event.
1.5.2.4 BlockHandler
Field
Type
Description
handler
String
The name of an exported function in the mapping script that should handle the specified event.
filter
optional String
The name of the filter that will be applied to decide on which blocks will trigger the mapping. If none is supplied, the handler will be called on every block.
1.6 Path
A path has one field path, which either refers to a path of a file on the local dev machine or an IPLD link.
When using the Graph-CLI, local paths may be used during development, and then, the tool will take care of deploying linked files to IPFS and replacing the local paths with IPLD links at deploy time.
A data source template has all of the fields of a normal data source, except it does not include a contract address under source. The address is a parameter that can later be provided when creating a dynamic data source from the template.
A subgraph can be grafted on top of another subgraph, meaning that, rather than starting to index the subgraph from the genesis block, the subgraph is initialized with a copy of the given base subgraph, and indexing resumes from the given block.
Field
Type
Description
base
String
The subgraph ID of the base subgraph
block
BigInt
The block number up to which to use data from the base subgraph