Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
* [on Monad](tutorials/monad.md)
* [on TRON](tutorials/tron.md)
* [on Injective](tutorials/cosmos-compatible/injective.md)
* [on MANTRA](tutorials/cosmos-compatible/mantra.md)
* [on Starknet](tutorials/starknet.md)
* [on Stellar](tutorials/stellar.md)
* [on World Chain](tutorials/world-chain.md)
* [Consuming a Foundational Store](tutorials/consuming-foundational-store.md)
Expand Down
6 changes: 4 additions & 2 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ If you can't find a Substreams package that meets your specific needs, you can d

- [EVM](./tutorials/evm.md)
- [Solana](./tutorials/solana/solana.md)
- [Starknet](./tutorials/starknet.md)
- [Injective](./tutorials/cosmos-compatible/injective.md)
- [MANTRA](./tutorials/cosmos-compatible/mantra.md)

To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](./references/devcontainer-ref.md) to setup your environment and follow the [How-To Guides](./how-to-guides/develop-your-own-substreams/develop-your-own-substreams.md).

{% hint style="info" %}
**Tip**: Using an AI coding assistant? Install the [Substreams agent skills](./how-to-guides/develop-your-own-substreams/generic/agent-skills.md) to give it deep expertise in Substreams development patterns, Rust modules, protobuf schemas, and debugging techniques.
{% endhint %}

## Learn

- **Substreams Reliability Guarantees**: With a simple reconnection policy, Substreams guarantees you'll [Never Miss Data](./references/reliability-guarantees.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,6 @@ Cosmos-compatible chains include modules for:
- **IBC Transfers**: Inter-blockchain communication tracking
- **Chain-Specific Features**: Modules tailored for Injective, Osmosis, and other Cosmos chains

### Starknet
Starknet foundational modules provide:

- **Cairo program interactions**: Parsed Cairo program calls and state changes
- **Account operations**: Account deployment and upgrade tracking

### TRON
TRON foundational modules offer:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ These how-to guides walk through creating a Substreams that uses raw blockchain
**Important**_:_ These how-to guides are in-depth walkthroughs of building highly performance indexers for your dapp. Less experienced users may want to reference the [Tutorials](../../tutorials/intro-to-tutorials.md) for a quick start.
{% endhint %}

{% hint style="info" %}
**Tip**: Speed up development by installing the [Substreams agent skills](./generic/agent-skills.md) in your AI coding assistant (Claude Code, Cursor, VS Code). The `substreams-dev` skill provides expert guidance on Rust modules, manifest configuration, protobuf design, and debugging.
{% endhint %}

Choose your ecosystem to get started:

- [General](./generic/local-development/README.md) - Cross-chain topics including local development, Rust, Protobuf, and agent skills
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ Substreams uses Google Protocol Buffers extensively. Protocol Buffers, also refe
**Tip**: Protobufs define the input and output for modules.
{% endhint %}

{% hint style="info" %}
**Tip**: The [substreams-dev agent skill](./agent-skills.md) includes expert knowledge on protobuf schema design for blockchain data modeling — install it in your AI coding assistant to get guidance while designing your schemas.
{% endhint %}

Learn more about the details of Google Protocol Buffers in the official documentation provided by Google.

**Google Protocol Buffer Documentation**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,8 @@ Currently, the only programming language supported to build Substreams is Rust,

If you have experience with typed programming languages, such as Go or Java, you should be able to understand and learn Rust pretty easily. However, there some features and standards that are specific to the Rust programming language.

The Substreams team recommends following the official [Rust by Example tutorial](https://doc.rust-lang.org/rust-by-example/), which pretty much includes everything you should know about Rust. At the same time, the following sections cover some features and standards that are important when developing Substreams.
The Substreams team recommends following the official [Rust by Example tutorial](https://doc.rust-lang.org/rust-by-example/), which pretty much includes everything you should know about Rust. At the same time, the following sections cover some features and standards that are important when developing Substreams.

{% hint style="info" %}
**Tip**: The [substreams-dev agent skill](../agent-skills.md) can assist with Rust patterns specific to Substreams — including `Option`/`Result` handling, avoiding excessive cloning, and writing WASM-compatible code.
{% endhint %}
4 changes: 4 additions & 0 deletions docs/how-to-guides/sinks/sinks.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
Once you find a package that fits your needs, you can choose how you want to consume the data. Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, or a file.

{% hint style="info" %}
**Tip**: Building a SQL sink? The [substreams-sql agent skill](../develop-your-own-substreams/generic/agent-skills.md) gives your AI coding assistant expert knowledge on database change (CDC) patterns, relational mappings, PostgreSQL, and ClickHouse schema design.
{% endhint %}

{% hint style="info" %}
**Note**: Some of the sinks are officially supported by StreamingFast (i.e. active support is provided), but other sinks are community-driven and support can’t be guaranteed.
{% endhint %}
Expand Down
5 changes: 0 additions & 5 deletions docs/references/chains-and-endpoints.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ Protobuf definitions and public endpoints are provided for the supported protoco
| Solana | [`sf.solana.type.v1.Block`](https://github.com/streamingfast/firehose-solana/blob/develop/proto/sf/solana/type/v1/type.proto) | [solana-v0.1.0.spkg](https://github.com/streamingfast/sf-solana/releases/download/v0.1.0/solana-v0.1.0.spkg) |
| Cosmos | [`sf.cosmos.type.v2.Block`](https://github.com/streamingfast/firehose-cosmos/blob/develop/cosmos/proto/sf/cosmos/type/v2/block.proto#L10) | |
| Antelope | [`sf.antelope.type.v1.Block`](https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1#sf.antelope.type.v1.Block) | |
| Starknet | [`sf.starknet.type.v1.Block`](https://github.com/streamingfast/firehose-starknet/blob/main/proto/sf/starknet/type/v1/block.proto#L8) | |
| Stellar | [`sf.stellar.type.v1.Block`](https://github.com/streamingfast/firehose-stellar/blob/main/proto/sf/stellar/type/v1/block.proto#L7) | |


Expand Down Expand Up @@ -75,16 +74,12 @@ The data missing in the Base Block makes the corresponding Protobuf field empty.
- **Injective EVM Testnet**: `testnet.injective-evm.streamingfast.io:443`
- **Injective Mainnet**: `mainnet.injective.streamingfast.io:443`
- **Injective Testnet**: `testnet.injective.streamingfast.io:443`
- **Sei EVM Mainnet**: `evm-mainnet.sei.streamingfast.io:443`
- **Starknet Mainnet**: `mainnet.starknet.streamingfast.io:443`
- **Starknet Testnet**: `testnet.starknet.streamingfast.io:443`
- **Base Mainnet**: `base-mainnet.streamingfast.io:443`
- **Monad Mainnet**: `mainnet-base.monad.streamingfast.io:443`
- **Stellar Mainnet**: `mainnet.stellar.streamingfast.io:443`
- **Stellar Testnet**: `testnet.stellar.streamingfast.io:443`
- **Unichain Mainnet**: `mainnet.unichain.streamingfast.io:443`
- **World Chain Mainnet**: `mainnet.worldchain.streamingfast.io:443`
- **Katana Mainnet**: `katana.streamingfast.io:443`

## Community Endpoints

Expand Down
1 change: 0 additions & 1 deletion docs/references/ethereum-data-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ This version refers to the `Block` emitted by the Firehose trace.
- This version is currently in place for the following chains:
- Optimism
- Ethereum Hoodi
- Sei EVM
- This version fixes the known issue of version 3.

## Prague-enabled blockchains
Expand Down
4 changes: 4 additions & 0 deletions docs/references/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

This reference covers testing strategies for Substreams applications, from unit testing individual handlers to integration testing complete modules with real blockchain data.

{% hint style="info" %}
**Tip**: The [substreams-testing agent skill](../how-to-guides/develop-your-own-substreams/generic/agent-skills.md) gives your AI coding assistant expert knowledge on unit testing, integration testing, performance testing, and CI/CD patterns for Substreams.
{% endhint %}

## Why Testing Matters

Blockchain data is immutable and mistakes are permanent. Testing is critical because:
Expand Down
4 changes: 4 additions & 0 deletions docs/tutorials/consuming-foundational-store.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

This guide explains how to consume data from a Foundational Store in your Substreams modules. Foundational Stores provide efficient access to pre-processed blockchain data for building complex data processing pipelines.

{% hint style="info" %}
**Tip**: Using an AI coding assistant? Install the [Substreams agent skills](../how-to-guides/develop-your-own-substreams/generic/agent-skills.md) to get expert Substreams guidance while building.
{% endhint %}

## What is a Foundational Store?

A Foundational Store is a high-performance, multi-backend key-value storage system designed for Substreams ingestion and serving. It provides:
Expand Down
4 changes: 4 additions & 0 deletions docs/tutorials/cosmos-compatible/injective.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ In this tutorial, you'll learn how to initialize a Injective-based Substreams pr
The CLI installation is supported only on Linux and macOS. If you're using Windows, consider using the [DevContainer environment](../../references/devcontainer-ref.md), which launches a Linux-based virtual environment.
{% endhint %}

{% hint style="info" %}
**Tip**: Using an AI coding assistant? Install the [Substreams agent skills](../../how-to-guides/develop-your-own-substreams/generic/agent-skills.md) to get expert Substreams guidance while building.
{% endhint %}

## Step 1: Initialize Your Injective Substreams Project

1. [Install the Substreams CLI](../../how-to-guides/cli/installing-the-cli.md).
Expand Down
54 changes: 0 additions & 54 deletions docs/tutorials/cosmos-compatible/mantra.md

This file was deleted.

4 changes: 4 additions & 0 deletions docs/tutorials/evm.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ In this tutorial, you'll learn how to initialize a EVM-based Substreams project
The CLI installation is supported only on Linux and macOS. If you're using Windows, consider using the [DevContainer environment](../references/devcontainer-ref.md), which launches a Linux-based virtual environment.
{% endhint %}

{% hint style="info" %}
**Tip**: Using an AI coding assistant? Install the [Substreams agent skills](../how-to-guides/develop-your-own-substreams/generic/agent-skills.md) to get expert Substreams guidance while building.
{% endhint %}

## Step 1: Initialize Your EVM Substreams Project

1. [Install the Substreams CLI](../how-to-guides/cli/installing-the-cli.md)
Expand Down
6 changes: 4 additions & 2 deletions docs/tutorials/intro-to-tutorials.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
These tutorials demonstrate how to quickly index on-chain data for your application across various blockchains using the Substreams CLI.

{% hint style="info" %}
**Tip**: Using Claude Code, Cursor, or VS Code with AI? Install the [Substreams agent skills](../how-to-guides/develop-your-own-substreams/generic/agent-skills.md) to give your AI assistant expert knowledge of Substreams patterns as you work through these tutorials.
{% endhint %}

Substreams data streams are available on the chains listed [here](../references/chains-and-endpoints.md). To support Substreams a [Firehose](https://thegraph.com/docs/en/new-chain-integration/) endpoint must be available.

If your blockchain is not supported, please ask in Discord. Then, consult the relevant ecosystem guide to get started using Substreams real-time data streams:
Expand All @@ -9,7 +13,5 @@ If your blockchain is not supported, please ask in Discord. Then, consult the re
- [NEAR](./near.md)
- [Monad](./monad.md)
- [Tron](./tron.md)
- [Starknet](./starknet.md)
- [Injective](./cosmos-compatible/injective.md)
- [Mantra](./cosmos-compatible/mantra.md)
- [Stellar](./stellar.md)
4 changes: 4 additions & 0 deletions docs/tutorials/monad.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ Due to Monad full nodes not providing access to arbitrary historic state, eth_ca
The CLI installation is supported only on Linux and macOS. If you're using Windows, consider using the [DevContainer environment](../references/devcontainer-ref.md), which launches a Linux-based virtual environment.
{% endhint %}

{% hint style="info" %}
**Tip**: Using an AI coding assistant? Install the [Substreams agent skills](../how-to-guides/develop-your-own-substreams/generic/agent-skills.md) to get expert Substreams guidance while building.
{% endhint %}

## Step 1: Initialize Your Monad Substreams Project

1. [Install the Substreams CLI](../how-to-guides/cli/installing-the-cli.md).
Expand Down
4 changes: 4 additions & 0 deletions docs/tutorials/near.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ In this tutorial, you'll learn how to initialize a NEAR-based Substreams project
The CLI installation is supported only on Linux and macOS. If you're using Windows, consider using the [DevContainer environment](../references/devcontainer-ref.md), which launches a Linux-based virtual environment.
{% endhint %}

{% hint style="info" %}
**Tip**: Using an AI coding assistant? Install the [Substreams agent skills](../how-to-guides/develop-your-own-substreams/generic/agent-skills.md) to get expert Substreams guidance while building.
{% endhint %}

## Step 1: Initialize Your NEAR Substreams Project

1. [Install the Substreams CLI](../how-to-guides/cli/installing-the-cli.md).
Expand Down
4 changes: 4 additions & 0 deletions docs/tutorials/solana/account-changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ By the end of this tutorial, you will have a working Substreams feed that allows
Data for Solana account changes is available on a rolling three-month window.
{% endhint %}

{% hint style="info" %}
**Tip**: Using an AI coding assistant? Install the [Substreams agent skills](../../how-to-guides/develop-your-own-substreams/generic/agent-skills.md) to get expert Substreams guidance while building.
{% endhint %}

For each Solana Account block, only the latest update per account is recorded, see the [Protobuf Referece](https://buf.build/streamingfast/firehose-solana/file/main:sf/solana/type/v1/account.proto). If an account is deleted, a payload with `deleted == True` is provided. Additionally, events of low importance we're omitted, such as those with the special owner “Vote11111111…” account or changes that do not affect the account data (ex: lamport changes).

{% hint style="success" %} The Account Changes Substreams natively handles a change of ownership upon delete. {% endhint %}
Expand Down
4 changes: 4 additions & 0 deletions docs/tutorials/solana/solana.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ In this tutorial, you'll learn how to initialize a Solana-based Substreams proje
The CLI installation is supported only on Linux and macOS. If you're using Windows, consider using the [DevContainer environment](../../references/devcontainer-ref.md), which launches a Linux-based virtual environment.
{% endhint %}

{% hint style="info" %}
**Tip**: Using an AI coding assistant? Install the [Substreams agent skills](../../how-to-guides/develop-your-own-substreams/generic/agent-skills.md) to get expert Substreams guidance while building.
{% endhint %}

## Step 1: Initialize Your Solana Substreams Project

1. [Install the Substreams CLI](../../how-to-guides/cli/installing-the-cli.md).
Expand Down
Loading
Loading