---
title: The Graph Market
sidebarTitle: The Graph Market
---

[The Graph Market](https://thegraph.market/) is a data services marketplace where you can provision an API key and stream on-chain data through Substreams and Firehose, along with the Token API, Hosted Sinks, and other services.

## Overview

The Graph Market lets you find a provider for the network you're building on, create an API key, and start consuming data — without providing personal information. From a single dashboard you can manage keys, monitor usage, and deploy Hosted Sinks.

The platform serves several data services:

- **Substreams & Firehose**: High-throughput, parallelized streaming of blockchain data.
- **Token API**: Live and historical token data (balances, transfers, holders, and DEX swaps) across multiple chains.
- **Hosted Sinks**: Managed sink deployments that write Substreams output to a destination for you.
- **Subgraphs, JSON-RPC, and Webhooks**: Additional data services available across supported networks.

## Get Started

### Create an Account

Go to [thegraph.market](https://thegraph.market/) and sign in. Once you're in, you'll land on the **Dashboard**, which summarizes your usage for Substreams & Firehose and the Token API, your Hosted Sinks, and your API keys.

### Create an API Key

From the **Dashboard** or the **API keys** page, select **Create new key** and give it a name (for example, `my-substreams-key`). Each key exposes two credentials:

- **API Key**: An identifier (for example, `server_1...`) used for services that authenticate with a key.
- **API Token (JWT)**: A JSON Web Token used to authenticate Substreams and Firehose requests.

For security, the API token is hidden by default. Use the reveal (eye) icon to display it, then copy and store it securely. You can rotate or delete a key at any time from the **API keys** page.

> Note: Treat your API token like a password. Don't commit it to source control or expose it in client-side code.

## Use Your Key with Substreams

### Authenticate the CLI

Substreams authenticates with the JWT token from your API key. Export it as an environment variable so the CLI can pick it up automatically:

```bash
export SUBSTREAMS_API_TOKEN="<YOUR-JWT-TOKEN>"
```

Replace `<YOUR-JWT-TOKEN>` with the API token you copied from The Graph Market.

### Choose an Endpoint

Substreams runs against a provider endpoint for your target network, passed to the CLI with the `-e` flag. Endpoints follow the pattern `{network}.{provider}.io:443`. A few examples:

| Network          | Endpoint                            |
| ---------------- | ----------------------------------- |
| Ethereum Mainnet | `mainnet.eth.streamingfast.io:443`  |
| Solana Mainnet   | `mainnet.sol.streamingfast.io:443`  |
| Base Mainnet     | `base-mainnet.streamingfast.io:443` |
| Arbitrum One     | `arb-one.streamingfast.io:443`      |
| Polygon Mainnet  | `polygon.streamingfast.io:443`      |

> Note: Select your network on The Graph Market to see the providers and endpoints available for it. For the full, up-to-date list, see [Chains & Endpoints](https://docs.substreams.dev/reference-material/chain-support/chains-and-endpoints) on the Substreams docs.

### Run a Substreams

With your token exported, run a package against the endpoint for your network:

```bash
substreams gui \
  -e mainnet.eth.streamingfast.io:443 \
  ethereum-common@v0.3.1 \
  all_events \
  --start-block=15000000
```

A successful run confirms your key is authenticated. To find ready-to-use packages, browse the [Substreams Registry](https://substreams.dev/).

## Deploy a Hosted Sink

If you'd rather have your data written to a destination automatically, use **Hosted Sinks**. From the **Sinks** page, select **New Sink**, then point it at a Substreams package and configure the destination. The Dashboard tracks each deployment's status (deployed, syncing, error, or stopped). To learn more about sink types, see [Sink your Substreams](/substreams/developing/sinks/).

## Use the Token API

The Token API uses the same API token for authentication. Send it as a bearer token against the Token API base URL:

```bash
curl --request GET \
  --url "https://token-api.thegraph.com/v1/evm/balances?network=mainnet&address=0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208" \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer <YOUR-JWT-TOKEN>'
```

See the [Token API Quick Start](https://thegraph.com/docs/en/token-api/quick-start/) for the full list of endpoints.

## Plans and Usage

The Graph Market offers a **Free** plan for both Substreams & Firehose and the Token API, with monthly included usage (for example, egress bytes and processed blocks for Substreams & Firehose, and request counts for the Token API). The Dashboard shows your consumption against these limits. Review the [Pricing](https://thegraph.market/) page for current plan tiers and included quotas.

## Additional Resources

- [The Graph Market](https://thegraph.market/) — provision keys and manage data services.
- [Substreams Quick Start](/substreams/quick-start/) — start streaming on-chain data.
- [Sink your Substreams](/substreams/developing/sinks/) — send data to a destination.
- [Chains & Endpoints](https://docs.substreams.dev/reference-material/chain-support/chains-and-endpoints) — provider endpoints per network.
- [Token API Quick Start](https://thegraph.com/docs/en/token-api/quick-start/) — access token data.
