# Getting Started

Integrating Substreams can be quick and easy. This guide will help you get started with consuming ready-made Substreams packages or developing your own. Substreams are permissionless. Grab a key [here](https://thegraph.market/), no personal information required, and start streaming on-chain data.

## Build

### Explore Available Substreams Packages

There are many ready-to-use Substreams packages available. You can explore these packages using the [**Substreams Registry**](https://substreams.dev). The registry lets you search for and find packages that meet your needs.

Once you find a package that fits your needs, you can choose how you want to consume the data:

* [**SQL Database**](https://docs.substreams.dev/how-to-guides/sinks/sql): Send the data to a database.
* [**Direct Streaming**](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly to your application.
* [**PubSub**](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic.

<figure><img src="https://2510971185-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FerQrzMtqELZRGAdugCR2%2Fuploads%2Fgit-blob-485bafc126c632414b625f7bdab47a52acb77e58%2Fconsume-flow.png?alt=media&#x26;token=754af1af-83f7-409d-aa19-680f27928d0f" alt="" width="100%"><figcaption></figcaption></figure>

### Optionally Develop Your Own Substreams

If you can't find a Substreams package that meets your specific needs, you can develop your own. Substreams are built with Rust, so you’ll write functions that extract and filter the data you need from the blockchain. The easiest way to get started is by referring to the [tutorial](https://docs.substreams.dev/tutorials/intro-to-tutorials) section, enabling you to quickly filter data:

* [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm)
* [Solana](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-solana/solana)
* [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet)
* [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/injective)
* [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/mantra)

To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](https://docs.substreams.dev/reference-material/development-tools/devcontainer-ref) to setup your environment and follow the [How-To Guides](https://docs.substreams.dev/how-to-guides/develop-your-own-substreams).

### Learn

* **Substreams Reliability Guarantees**: With a simple reconnection policy, Substreams guarantees you'll [Never Miss Data](https://docs.substreams.dev/reference-material/core-concepts/reliability-guarantees).
* **Substreams Architecture**: For a deeper understanding of how Substreams works, explore the [architectural overview](https://docs.substreams.dev/reference-material/core-concepts/architecture) of the data service.
* **Supported Networks**: Check-out which endpoints are supported [here](https://docs.substreams.dev/reference-material/chain-support/chains-and-endpoints).
