Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploy subgraph #788

Merged
merged 16 commits into from
Oct 11, 2024
1 change: 0 additions & 1 deletion website/pages/en/deploying/_meta.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
export default {
'subgraph-studio': '',
idalithb marked this conversation as resolved.
Show resolved Hide resolved
'deploying-a-subgraph-to-studio': '',
'subgraph-studio-faqs': '',
}
118 changes: 98 additions & 20 deletions website/pages/en/deploying/deploying-a-subgraph-to-studio.mdx
Original file line number Diff line number Diff line change
@@ -1,17 +1,36 @@
---
title: Deploying a Subgraph to Subgraph Studio
title: Deploy Using Subgraph Studio
---

These are the steps to deploy your subgraph to Subgraph Studio:
Learn how to deploy your subgraph in Subgraph Studio.
idalithb marked this conversation as resolved.
Show resolved Hide resolved

- Install The Graph CLI (with either yarn or npm)
- Create your Subgraph in Subgraph Studio
- Authenticate your account from the CLI
- Deploying a Subgraph to Subgraph Studio
> Note: When you deploy a subgraph, you push it to Subgraph Studio, where you'll be able to stage it. It's important to remember that deploying is not the same as publishing. When you publish a subgraph, you're publishing it on-chain.
benface marked this conversation as resolved.
Show resolved Hide resolved

## Installing Graph CLI
## Subgraph Studio Overview

There is a CLI to deploy subgraphs to [Subgraph Studio](https://thegraph.com/studio/). Here are the commands to install `graph-cli`. This can be done using npm or yarn.
In [Subgraph Studio](https://thegraph.com/studio/), you can do the following:

- Create and manage your API keys for specific subgraphs
- Create your subgraph through the Studio UI
- Deploy your subgraph using the The Graph CLI
- Publish your subgraph with the Studio UI
- Stage your subgraph in the playground environment
idalithb marked this conversation as resolved.
Show resolved Hide resolved
- Integrate your subgraph in staging using the query URL
idalithb marked this conversation as resolved.
Show resolved Hide resolved
- Restrict your API keys to specific domains and allow only certain Indexers to query with them
idalithb marked this conversation as resolved.
Show resolved Hide resolved

You can also view the following:

- Your user account controls
idalithb marked this conversation as resolved.
Show resolved Hide resolved
- A list of subgraphs you've created
- A section to manage your API keys
- A section to manage, view details, and visualize the status of a specific subgraph
- A section to manage your billing
idalithb marked this conversation as resolved.
Show resolved Hide resolved

## Install The Graph CLI

Before deploying, you must install The Graph CLI.

You must have [Node.js](https://nodejs.org/) and a package manager of your choice (`npm`, `yarn` or `pnpm`) installed to use The Graph CLI. Check for the [most recent](https://github.com/graphprotocol/graph-tooling/releases?q=%40graphprotocol%2Fgraph-cli&expanded=true) CLI version.

**Install with yarn:**

Expand All @@ -25,44 +44,103 @@ yarn global add @graphprotocol/graph-cli
npm install -g @graphprotocol/graph-cli
```

## Create your Subgraph in Subgraph Studio
## Create your Subgraph

### Create an Account
idalithb marked this conversation as resolved.
Show resolved Hide resolved

Before deploying your subgraph you need to create a subgraph in [Subgraph Studio](https://thegraph.com/studio/).
idalithb marked this conversation as resolved.
Show resolved Hide resolved

1. Open [Subgraph Studio](https://thegraph.com/studio/).
2. Connect your wallet to sign in.
- You can do this via MetaMask, Coinbase Wallet, WalletConnect, or Safe.
idalithb marked this conversation as resolved.
Show resolved Hide resolved
3. After you sign in, your unique deploy key will be displayed on your account home page.
- The deploy key allows you to publish your subgraphs or manage your API keys and billing. It is unique but can be regenerated if you think it has been compromised.
idalithb marked this conversation as resolved.
Show resolved Hide resolved

> Important: You need an API key to query subgraphs

#### How to Create a Subgraph in Subgraph Studio

<VideoEmbed youtube="nGIFuC69bSA" />

> For additional written detail, review the [Quick-Start](/quick-start/).

#### Subgraph Compatibility with The Graph Network

In order to be supported by Indexers on The Graph Network, subgraphs must:

Before deploying your actual subgraph you need to create a subgraph in [Subgraph Studio](https://thegraph.com/studio/). We recommend you read our [Studio documentation](/deploying/subgraph-studio) to learn more about this.
- Index a [supported network](/developing/supported-networks)
- Must not use any of the following features:
- ipfs.cat & ipfs.map
- Non-fatal errors
- Grafting

## Initialize your Subgraph

Once your subgraph has been created in Subgraph Studio you can initialize the subgraph code using this command:
Once your subgraph has been created in Subgraph Studio, you can initialize its code through the CLI using this command:

```bash
graph init --studio <SUBGRAPH_SLUG>
```

The `<SUBGRAPH_SLUG>` value can be found on your subgraph details page in Subgraph Studio:
You can find the `<SUBGRAPH_SLUG>` value on your subgraph details page in Subgraph Studio, see image below:
idalithb marked this conversation as resolved.
Show resolved Hide resolved

![Subgraph Studio - Slug](/img/doc-subgraph-slug.png)

After running `graph init`, you will be asked to input the contract address, network, and ABI that you want to query. Doing this will generate a new folder on your local machine with some basic code to start working on your subgraph. You can then finalize your subgraph to make sure it works as expected.
After running `graph init`, you will be asked to input the contract address, network, and an ABI that you want to query. This will generate a new folder on your local machine with some basic code to start working on your subgraph. You can then finalize your subgraph to make sure it works as expected.

## Graph Auth

Before being able to deploy your subgraph to Subgraph Studio, you need to login into your account within the CLI. To do this, you will need your deploy key that you can find on your "My Subgraphs" page or your subgraph details page.
Before you can deploy your subgraph to Subgraph Studio, you need to login into your account within the CLI. To do this, you will need your deploy key, which you can find under your subgraph details page.

Here is the command that you need to use to authenticate from the CLI:
Then, use the following command to authenticate from the CLI:

```bash
graph auth --studio <DEPLOY KEY>
```

## Deploying a Subgraph to Subgraph Studio
## Deploying a Subgraph

Once you are ready, you can deploy your subgraph to Subgraph Studio. Doing this won't publish your subgraph to the decentralized network, it will only deploy it to your Studio account where you will be able to test it and update the metadata.
Once you are ready, you can deploy your subgraph to Subgraph Studio.

Here is the CLI command that you need to use to deploy your subgraph.
> Deploying a subgraph with the CLI pushes it to the Studio, where you can test it and and update the metadata. This action won't publish your subgraph to the decentralized network.
idalithb marked this conversation as resolved.
Show resolved Hide resolved

Use the following CLI command to deploy your subgraph:

```bash
graph deploy --studio <SUBGRAPH_SLUG>
```

After running this command, the CLI will ask for a version label, you can name it however you want, you can use labels such as `0.1` and `0.2` or use letters as well such as `uniswap-v2-0.1`. Those labels will be visible in Graph Explorer and can be used by curators to decide if they want to signal on this version or not, so choose them wisely.
After running this command, the CLI will ask for a version label.

- It's strongly recommended to use [semver](https://semver.org/) for versioning like `0.0.1`. That said, you are free to choose any string as version such as `v1`, `version1`, or `asdf`.
- The labels you create will be visible in Graph Explorer and can be used by curators to decide if they want to signal on a specific version or not, so choose them wisely.

## Testing your Subgraph

After deploying, you can test/stage your subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready.

Use Subgraph Studio’s playground to check your subgraph logs and see where a subgraph fails.
idalithb marked this conversation as resolved.
Show resolved Hide resolved

## Publish your Subgraph

In order to publish your subgraph successfully, review [publishing a subgraph](/publishing/publishing-a-subgraph/).

## Versioning your Subgraph with the CLI

If you want to update your subgraph, you can do the following:

- You can deploy a new version to Studio using the CLI (it will only be private at this point).
- Once you're happy with it, you can publish your new deployment to [Graph Explorer](https://thegraph.com/explorer).
- This action will create a new version of your subgraph that curators can start signaling on and Indexers can index.
idalithb marked this conversation as resolved.
Show resolved Hide resolved

You can also update your subgraph's metadata without publishing a new version. You can update your subgraph details in Studio (under the profile picture, name, description, etc.) by checking an option called **Update Details** in Graph Explorer. If this is checked, an on-chain transaction will be generated that updates subgraph details in Explorer without having to publish a new version with a new deployment.

> Note: There are costs associated with publishing a new version of a subgraph to the network. In addition to the transaction fees, you must also fund a part of the curation tax on the auto-migrating signal. You cannot publish a new version of your subgraph if Curators have not signaled on it. For more information on the risks of curation, please read more [here](/network/curating/).
idalithb marked this conversation as resolved.
Show resolved Hide resolved

## Automatic Archiving of Subgraph Versions

Whenever you deploy a new subgraph version in Subgraph Studio, the previous version will be archived. Archived versions won't be indexed/synced and therefore cannot be queried. You can unarchive an archived version of your subgraph in Studio UI.
idalithb marked this conversation as resolved.
Show resolved Hide resolved

> Note: Previous versions of non-published subgraphs deployed to Studio will be automatically archived.

Once deployed, you can test your subgraph in Subgraph Studio using the playground, deploy another version if needed, update the metadata, and when you are ready, publish your subgraph to Graph Explorer.
![Subgraph Studio - Unarchive](/img/Unarchive.png)
89 changes: 0 additions & 89 deletions website/pages/en/deploying/subgraph-studio.mdx

This file was deleted.

Loading