Your first 60h/month are free!
This will open a fully featured Devcontainer-based development environment, using GitHub Codespaces.
Within the IDE, in a Terminal (F1
-> Terminal: Create New Terminal
), run:
substreams init
substreams build
substreams auth
substreams gui
substreams registry login
substreams registry publish
Run help
to discover the development environment and then generate sink projects with:
substreams codegen subgraph
substreams codegen sql
Learn more:
Discover community Substreams modules:
VSCode has excellent support for such containers. See their documentation.
[!NOTE] Devcontainers, the environment proposed here, have greatly matured in the past 3 years. They have been standardized, implemented in multiple IDEs and tools, and are used at scale in great companies (eg. Shopify).
The Devcontainer is the preferred way to develop Substreams. Our documentation generally assumes this environment.
If you prefer, you can install all components locally by following our installation docs.
substreams
preinstalledbuf
and protobuf tooling,graph-node
, postgres
, ipfs
) directly accessible locally or remotely.substreams gui my-project2@v0.1.0 map_filtered_transactions
substreams gui my-project2@v0.1.0 solana:blocks_without_votes
substreams gui my-project2@v0.1.0 solana:transactions_by_programid_without_votes
substreams gui my-project2@v0.1.0 solana:transactions_by_programid_and_account_without_votes
blocks_without_votes
allows you to consume a full Solana Block without Vote instructions (Vote111111111111111111111111111111111111111
).
If you consume it on HISTORICAL data (+1000 blocks from HEAD), you will be reading from the StreamingFast cache, thus saving costs on the amount of TB read.
substreams gui my-project2@v0.1.0 solana:v020:blocks_without_votes
filtered_transactions_without_votes
allows you to consume transactions containing instructions from specific program_id based on a filter string.
Supported operators are: logical or ||
, logical and &&
and parenthesis: ()
.
Example: to only consume TRANSACTIONS containing Token or ComputeBudget instructions: program:TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA || program:ComputeBudget111111111111111111111111111111
.
Transactions containing Vote111111111111111111111111111111111111111
are always excluded.
substreams gui my-project2@v0.1.0 solana:v020:filtered_transactions_without_votes
substreams gui my-project2@v0.1.0 solana:program_ids_without_votes
substreams gui my-project2@v0.1.0 solana:program_ids_and_accounts_without_votes
program_ids_without_votes
creates a cache to efficiently retrieve instructions based on the program ID.
For example, the following sets keys for the Token program:
substreams gui my-project2@v0.1.0 solana:v020:program_ids_without_votes