Transactions & Instructions
In this tutorial, you'll learn how to initialize a Solana-based Substreams project using the Substreams CLI (substreams init
command).
Step 1: Initialize Your Solana Substreams Project
Running
substreams init
will give you the option to choose between two Solana project options. Select the one that best fits your requirements:sol-hello-world: Creates a simple Substreams that outputs the accounts used in the Pump.Fun smart contract. It demonstrates how to access to full Solana Block, iterate over instructions and filter on a specific program ID.
sol-transactions: Creates a Substreams that filters Solana transactions based on one or more Program IDs and/or Account IDs, using the cached Solana Foundational Module.
sol-anchor-beta: Given an Anchor IDL, create a Substreams that decodes instructions and events. If an IDL isn’t available using the
idl
subcommand within the Anchor CLI, you’ll need to provide it yourself.
The modules within Solana Common exclude voting transactions, to benefit from a 75% reduction in data processing size and costs, delay your stream by over 1000 blocks from head. This can be done using the sleep
function in Rust.
Step 2: Visualize the Data
Run
substreams auth
to create your account and generate an authentication token (JWT), then pass this token back as input.Run
substreams build
to compile the project.Run
substreams gui
to visualize and iterate on your extracted data.
Step 2.5: (Optionally) Transform the Data
Open the
src/lib.rs
file that has been generated.Modify the transformations made to the data as needed. Every time you modify the code, you will have to recompile the project with
substreams build
.
Step 3: Load the Data
To make your Substreams queryable (as opposed to direct streaming), you can automatically send the data to a SQL data by using the SQL sink or through PubSub.
Additional Resources
You may find these additional resources helpful for developing your first Solana application.
Dev Container Reference
The Dev Container Reference helps you navigate the container and its common errors.
CLI Reference
The CLI reference lets you explore all the tools available in the Substreams CLI.
Substreams Components Reference
The Components Reference dives deeper into navigating the substreams.yaml
.
Last updated
Was this helpful?