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_transactionssubstreams gui my-project2@v0.1.0 solana:blocks_without_votessubstreams gui my-project2@v0.1.0 solana:transactions_by_programid_without_votessubstreams gui my-project2@v0.1.0 solana:transactions_by_programid_and_account_without_votesblocks_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_votesfiltered_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_votessubstreams gui my-project2@v0.1.0 solana:program_ids_without_votessubstreams gui my-project2@v0.1.0 solana:program_ids_and_accounts_without_votesprogram_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