What you’ll need
-
One or more subgraphs in your project - this can be from community subgraphs, a deployed subgraph, or a no-code subgraph.
If more than one subgraph is desired, they need to have the same graphql schema. You can use this tool to compare schemas.
- A working database supported by Mirror. For more information on setting up a sink, see the sink documentation.
Walkthrough
1
Prepare a database
goldsky secret list will show you the database secrets available on your active project.If you need to setup a secret, you can use goldsky secret create -h. Here is an example.2
Select the subgraphs to combine
Open the Subgraphs Dashboard and find the deployment IDs of each subgraph you would like to use as a source.Run the following query against the subgraph to get the deployment ID.
3
Create the pipeline definition
Open a text editor create your definition, using the
subgraphEntity source. In this example we will use subgraphs on Optimism and on BSC:qidao-optimism(QmPuXT3poo1T4rS6agZfT51ZZkiN3zQr6n5F2o1v9dRnnr)qidao-bsc(QmWgW69CaTwJYwcSdu36mkXgwWY11RjvX1oMGykrxT3wDS)
account and event entities from each.Entities may be camelCased in the GraphQL API, but here they must be
snake_cased. For example,
dailySnapshot will be daily_snapshot here.4
Create the pipeline
5
Monitor the pipeline
Monitor the pipeline with
goldsky pipeline monitor qidao-crosschain. The status should change from STARTING to RUNNING in a minute or so, and data will start appearing in your postgresql database.6
Create API server
Once you have multiple subgraphs being written into one destination database, you can set up a GraphQL API server with this database as a source; there are many options to do this:
- Apollo Server
- Express GraphQL
- Hasura [recommended for quick-start]