-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #571 from streamingfast/giu/accounts/doc
Docs Updates
- Loading branch information
Showing
8 changed files
with
86 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Getting Started with Solana Account Changes | ||
|
||
## Introduction | ||
|
||
In this tutorial, you will learn how to consume Solana account change data using Substreams. We will walk you through the process of setting up your environment, configuring your first Substreams stream, and consuming account changes efficiently. | ||
|
||
By the end of this tutorial, you will have a working Substreams feed that allows you to track real-time account changes on the Solana blockchain, as well as historical account change data. | ||
|
||
{% hint style="info" %} | ||
History for the Solana Account Changes dates as of 2025, block 310629601. | ||
{% endhint %} | ||
|
||
For each Solana Account block, only the latest update per account is recorded. 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). | ||
|
||
## Prerequisites | ||
|
||
Before you begin, ensure that you have the following: | ||
|
||
1. [Substreams CLI](../../references/cli/installing-the-cli.md) installed. | ||
2. A [Substreams key](../../references/cli/authentication.md) for access to the Solana Account Change data. | ||
3. Basic knowledge of [how to use](../../references/cli/command-line-interface.md) the command line interface (CLI). | ||
|
||
## Step 1: Set Up a Connection to Solana Account Change Substreams | ||
|
||
Now that you have Substreams CLI installed, we can set up a connection to the Solana Account Change Substreams feed. | ||
|
||
Using the [Solana Accounts Foundational Module](https://substreams.dev/packages/solana-accounts-foundational/latest), you can choose to stream data directly or use the GUI for a more visual experience. The following `gui` example filters for Honey Token account data. | ||
|
||
```bash | ||
substreams gui solana-accounts-foundational filtered_accounts -t +10 -p filtered_accounts="owner:TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA || account:4vMsoUT2BWatFweudnQM1xedRLfJgJ7hswhcpz4xgBTy" | ||
``` | ||
This command will stream account changes directly to your terminal. | ||
|
||
```bash | ||
substreams run solana-accounts-foundational filtered_accounts -s -1 -o clock | ||
``` | ||
|
||
The Foundational Module has support for filtering on specific accounts and/or owners. You can adjust the query based on your needs. | ||
|
||
This tutorial will continue to guide you through filtering, sinking the data, and setting up reconnection policies. | ||
|
||
## Step 2: Sink the Substreams | ||
|
||
Consume the account stream [directly in your applicaion](../how-to-guides/sinks/stream/stream.md) using a callback or make it queryable by using the [SQL-DB sink](../../how-to-guides/sinks/sql/sql-sink.md). | ||
|
||
## Step 3: Setting up a Reconnection Policy | ||
|
||
[Cursor Management](../../references/reliability-guarantees.md) ensures seamless continuity and retraceability by allowing you to resume from the last consumed block if the connection is interrupted, preventing data loss and maintaining a persistent stream. | ||
|
||
The user's primary responsibility when creating or using a sink is to pass a BlockScopedDataHandler and a BlockUndoSignalHandler implementation(s) which has the following interface: | ||
|
||
```go | ||
import ( | ||
pbsubstreamsrpc "github.com/streamingfast/substreams/pb/sf/substreams/rpc/v2" | ||
) | ||
|
||
type BlockScopedDataHandler = func(ctx context.Context, cursor *Cursor, data *pbsubstreamsrpc.BlockScopedData) error | ||
type BlockUndoSignalHandler = func(ctx context.Context, cursor *Cursor, undoSignal *pbsubstreamsrpc.BlockUndoSignal) error | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters