5 minutes
Быстрый старт
Learn how to easily build, publish and query a subgraph on The Graph.
Prerequisites
- Криптовалютный кошелек
- A smart contract address on a supported network
- Node.js installed
- A package manager of your choice (
npm
,yarn
orpnpm
)
How to Build a Subgraph
1. Create a subgraph in Subgraph Studio
Перейдите в Subgraph Studio и подключите свой кошелек.
Subgraph Studio позволяет создавать, управлять, развертывать и публиковать субграфы, а также создавать и управлять API-ключами.
Нажмите “Создать субграф”. Рекомендуется называть субграф с использованием Заглавного регистра: “Subgraph Name Chain Name”.
2. Установка Graph CLI
Выполните одну из следующих команд на своём локальном компьютере:
Использование npm:
1npm install -g @graphprotocol/graph-cli@latest
Использование yarn:
1yarn global add @graphprotocol/graph-cli
3. Инициализация Вашего cубграфа
Вы можете найти команды для своего конкретного субграфа на странице субграфа в Subgraph Studio.
The graph init
command will automatically create a scaffold of a subgraph based on your contract’s events.
Следующая команда инициализирует ваш субграф из существующего контракта:
1graph init
If your contract is verified on the respective blockscanner where it is deployed (such as Etherscan), then the ABI will automatically be created in the CLI.
При инициализации субграфа CLI запросит у Вас следующую информацию:
- Protocol: Choose the protocol your subgraph will be indexing data from.
- Subgraph slug: Create a name for your subgraph. Your subgraph slug is an identifier for your subgraph.
- Directory: Choose a directory to create your subgraph in.
- Ethereum network (optional): You may need to specify which EVM-compatible network your subgraph will be indexing data from.
- Contract address: Locate the smart contract address you’d like to query data from.
- ABI: If the ABI is not auto-populated, you will need to input it manually as a JSON file.
- Start Block: You should input the start block to optimize subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed.
- Contract Name: Input the name of your contract.
- Index contract events as entities: It is suggested that you set this to true, as it will automatically add mappings to your subgraph for every emitted event.
- Add another contract (optional): You can add another contract.
На следующем скриншоте показан пример того, чего следует ожидать при инициализации субграфа:

4. Edit your subgraph
Команда init
на предыдущем шаге создает шаблон субграфа, который Вы можете использовать в качестве отправной точки для его разработки.
При внесении изменений в субграф Вы будете работать в основном с тремя файлами:
- Манифест (
subgraph.yaml
) — определяет, какие источники данных Ваш субграф будет индексировать. - Схема (
schema.graphql
) - Схема GraphQL определяет, какие данные Вы хотите извлечь из субграфа. - AssemblyScript Mappings (mapping.ts) - это код, который преобразует данные из Ваших источников данных в объекты, определенные в схеме.
Для получения более детальной информации о том, как создать свой субграф, ознакомьтесь с разделом Creating a Subgraph.
5. Развертывание Вашего субграфа
Remember, deploying is not the same as publishing.
When you deploy a subgraph, you push it to Subgraph Studio, where you can test, stage and review it. A deployed subgraph’s indexing is performed by the Upgrade Indexer, which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A deployed subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes.
После того как Ваш субграф будет написан, выполните следующие команды:
1```sh2graph codegen && graph build3```
Аутентифицируйте и разверните свой субграф. Ключ развертывания можно найти на странице Subgraph в Subgraph Studio.

1```sh23graph auth <DEPLOY_KEY>45graph deploy <SUBGRAPH_SLUG>6```
The CLI will ask for a version label. It’s strongly recommended to use semantic versioning, e.g. 0.0.1
.
6. Просмотр Вашего субграфа
If you’d like to test your subgraph before publishing it, you can use Subgraph Studio to do the following:
-
Запустить пример запроса.
-
Проанализировать Ваш субграф на панели управления для проверки информации.
-
Проверить логи на панели управления, чтобы убедиться, нет ли ошибок в Вашем субграфе. Логи рабочего субграфа будут выглядеть следующим образом:
Subgraph logs
Публикация Вашего субграфа в сети The Graph
When your subgraph is ready for a production environment, you can publish it to the decentralized network. Publishing is an onchain action that does the following:
- It makes your subgraph available to be to indexed by the decentralized Indexers on The Graph Network.
- It removes rate limits and makes your subgraph publicly searchable and queryable in Graph Explorer.
- It makes your subgraph available for Curators to curate it.
The greater the amount of GRT you and others curate on your subgraph, the more Indexers will be incentivized to index your subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your subgraph.
Публикация с помощью Subgraph Studio
Чтобы опубликовать свой субграф, нажмите кнопку «Опубликовать» на панели управления.

Выберите сеть, в которую хотите опубликовать свой субграф.
Публикация с помощью CLI
Начиная с версии 0.73.0, Вы также можете публиковать свой субграф с помощью Graph CLI.
Откройте graph-cli
.
Используйте следующие команды:
1```sh2graph codegen && graph build3```45Then,67```sh8graph publish9```
- Откроется окно, где Вы сможете подключить свой кошелек, добавить метаданные и развернуть финализированный субграф в выбранной Вами сети.

To customize your deployment, see Publishing a Subgraph.
Добавление сигнала к Вашему субграфу
-
To attract Indexers to query your subgraph, you should add GRT curation signal to it.
- Это действие улучшает качество обслуживания, снижает задержку и увеличивает надежность и доступность сети для Вашего субграфа.
-
Если индексаторы имеют право на получение вознаграждений за индексацию, они получат вознаграждения в GRT, в соответствии с количеством поданного сигнала.
- Рекомендуется добавить как минимум 3,000 GRT, чтобы привлечь 3 индексаторов. Проверьте право на вознаграждение на основе использования функций субграфа и поддерживаемых сетей.
To learn more about curation, read Curating.
Чтобы сэкономить на расходах на газ, Вы можете курировать свой субграф в той же транзакции, в которой Вы его публикуете, выбрав эту опцию:

8. Запрос Вашего субграфа
You now have access to 100,000 free queries per month with your subgraph on The Graph Network!
You can query your subgraph by sending GraphQL queries to its Query URL, which you can find by clicking the Query button.
For more information about querying data from your subgraph, read Querying The Graph.