Choose a package to stream before you write a consumer, and leave with a pinned release you can run. Search by package or network name, and filter by network. You need membership in a GraphOps organization.
Discover Substreams(opens in a new tab)Choose a package
The catalog lists the most-downloaded packages on each supported Substreams network, ranked by Registry downloads published by substreams.dev(opens in a new tab). 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. To explore a release that is not listed, look 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, or View Substreams package in its row's actions menu, 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, sink module and source repository. The package's modules and output types have their own sections.
A published release never changes, so a release that can't be read as a Substreams package, or one
larger than the explorer can inspect, can't be explored, and retrying gives the same result. Inspect
a large release locally with the substreams CLI, or choose another release.
README shows the documentation the package author published with the release, such as what it emits, the params it accepts and how to run it. A long README opens as a preview; choose Show full README to read the rest. Links open in a new tab. Images and links relative to the package's repository appear as text, so open the repository to see them.
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
Full screen beside the zoom buttons to expand the graph to the whole
window; choose Exit full screen or press Esc to return.
Choose the eye icon beside a module's name to jump to its details below.
Below the graph, each module shows its kind, start block, output type, the update policy of a store, and its inputs and block filter. Choose an input module to jump to its details. Modules that come from a package this package imports are listed under that package's name and version. 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, grouped by protobuf package, with each field's number, so you can generate or check your consumer's types before running the package. The sink module's output is marked Sink output. Select an output type in the graph or module details to open its fields in Output types when the package publishes its definition. 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 in a package row's actions menu or the package
page's Actions menu. The wizard selects the package's network and package, and opens on choosing an API key;
the summary at the top shows them, and Edit changes them. The example command uses the
package. Replace the <OUTPUT_MODULE>, <MODULE_PARAMS> 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. The wizard's address keeps your choices, except the API key token, so you can reload it or share it with a teammate. 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
Last updated