Skip to content

Discover Substreams

Find a Substreams package, follow how data flows through its modules, check its output types, and get a query endpoint for it.

Choose a package to stream before you write a consumer, and leave with a pinned release you can run. In the platform, open Substreams → Discover, search by package or network name, and filter by network. You need membership in a GraphOps organization.

Find a package, open an exact release, check its modules and output types, then copy the pinned package URL into your consumer or the endpoint wizard.

Choose a package

The catalog lists the most-downloaded packages on each supported Substreams network, ranked by Registry downloads published by substreams.dev. Each bar compares a package with the most-downloaded package in the catalog. Downloads measure registry popularity, not query volume or whether a package fits your application. The catalog is refreshed from the registry periodically, so a release published since the last refresh appears later, and a failed refresh leaves the previous catalog available. You can explore a newer release right away by looking it up.

To look up a release you already know, paste it into the same search box and apply it:

  • its name and version, <package>@<version>;
  • its substreams.dev release page, https://substreams.dev/packages/<package>/<version>;
  • its registry download URL, https://spkg.io/v1/packages/<package>/<version>.

The page offers Explore package for that release, even when it is not among the popular packages. Only releases published in the substreams.dev registry with an exact version can be explored. Other .spkg URLs, such as GitHub release downloads, and latest references cannot be explored; you can still run them with your Substreams client.

Inspect a package

Choose a package name to open it. Package metadata shows the pinned package URL to copy into your consumer, the network the package declares and whether GraphOps Substreams serves it, its modules, earliest start block, block source and sink module.

Modules starts with a graph of how data flows through the package, so you can see what the module you plan to stream depends on. Data flows from left to right: block sources such as sf.ethereum.type.v2.Block and params feed the modules that read them, through to the sink module. Each module shows its kind, the update policy of a store, its output type and its start block when that differs from the package's earliest. A get connection reads a store's current values, and deltas reads each block's changes. A dashed filter connection comes from a block index that limits which blocks a module processes. Hover over or focus a module to highlight its inputs and the modules that consume it. Drag to pan, pinch or use Ctrl + scroll to zoom, or choose Fit to see the whole graph. Choose the eye icon beside a module's name to jump to its row in the table below.

The table below the graph lists each module's kind, inputs, block filter, output type and start block. Stream a map module from your client; store modules hold intermediate state for other modules. Output types shows the fields of each map module's output message and the messages it contains, so you can generate or check your consumer's types before running the package. Select an output type in the graph or module table to jump to its fields when its definition is listed on the page. The same links connect message fields to their types, including messages contained in lists or maps. Types without a displayed definition appear as plain text.

Get an endpoint

Choose Get query endpoint on a package row or on the package page. The wizard selects the package's network and uses the package in its example command. Replace the output module and start block placeholders with values from the package page, then run the example.

When you start from Networks instead, the example and the wizard preselect the network's most downloaded package. Choose another package under Example package. In the wizard, paste another package URL, or clear the field to keep the package placeholder. A network without registry packages keeps the placeholders. Supply a saved API key, or create one if you are an Owner or Developer. Closing the wizard returns you to the page you started from, with its search and filters preserved.

Next steps