---
title: Publishing a Substreams Package
sidebarTitle: Publishing
---

Learn how to publish a Substreams package to the [Substreams Registry](https://substreams.dev).

## Overview

### What is a package?

A Substreams package is a precompiled binary file that defines the specific data you want to extract from the blockchain, similar to the `mapping.ts` file in traditional Subgraphs.

## Publish a Package

### Prerequisites

- You must have the Substreams CLI installed.
- You must have a Substreams package (`.spkg`) that you want to publish.

### Step 1: Run the `substreams publish` Command

1. In a command-line terminal, run `substreams publish <YOUR-PACKAGE>.spkg`.

2. If you do not have a token set in your computer, navigate to `https://substreams.dev/me`.

![get token](/img/1_get-token.png)

### Step 2: Get a Token in the Substreams Registry

1. In the Substreams Registry, log in with your GitHub account.

2. Create a new token and copy it in a safe location.

![new token](/img/2_new_token.png)

### Step 3: Authenticate in the Substreams CLI

1. Back in the Substreams CLI, paste the previously generated token.

![paste token](/img/3_paste_token.png)

2. Lastly, confirm that you want to publish the package.

![confirm](/img/4_confirm.png)

That's it! You have successfully published a package in the Substreams registry.

![success](/img/5_success.png)

## Additional Resources

Visit [Substreams](https://substreams.dev/) to explore a growing collection of ready-to-use Substreams packages across various blockchain networks.
