subgraph-migrate — скилл для Claude Code: что делает и как установить
Переносит существующий субграф с The Graph в Goldsky без правки кода. Помогает переключить GraphQL-эндпоинт dApp на новую инфраструктуру по URL или IPFS-хешу.
npx skills add goldsky-io/goldsky-agent --skill subgraph-migrate -a claude-codeЧто делает subgraph-migrate
Скилл переносит субграфы с The Graph в инфраструктуру Goldsky в формате прямой замены без изменения исходного кода. Он оценивает задачу и предлагает выбрать один из трёх путей развёртывания: через публичный GraphQL-эндпоинт с флагом --from-url, через идентификатор развёртывания --from-ipfs-hash или из локального билда через --path.
Для работы требуется установленный и авторизованный CLI Goldsky. В окружении Windows запуск выполняется через WSL. После деплоя командой goldsky subgraph deploy скилл помогает проверить синхронизацию запросом _meta и закрепить постоянный псевдоним версии через goldsky subgraph tag create. Если хеш IPFS уже индексировался в Goldsky, статус может сразу дойти до 100%.
В правилах скилла зафиксирован строгий запрет на подбор чужих URL наугад и оценку стоимости миграции. Если у субграфа возникают ошибки валидации схемы или расхождения версий apiVersion, скилл перенаправляет разбор в /subgraph-doctor.
Какие задачи решает
- Перенести субграф с The Graph в Goldsky без переписывания логики маппингов
- Развернуть существующий субграф по хешу IPFS или ссылке на публичный GraphQL-эндпоинт
- Закрепить постоянный тег для новой версии субграфа без смены URL во фронтенде
- Проверить статус индексации блоков через GraphQL-запрос к
_meta
Примеры запросов агенту
- Помоги перенести субграф с The Graph в Goldsky по IPFS-хешу
Qm... - Разверни субграф в Goldsky из публичного GraphQL-эндпоинта
- Нужно переключить dApp с The Graph на Goldsky без изменения исходного кода
Как установить subgraph-migrate
1Через Skills CLI (Vercel)
npx skills add goldsky-io/goldsky-agent --skill subgraph-migrate -a claude-code2Вручную: положить файлы
~/.claude/skills/subgraph-migrate/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/subgraph-migrate/
1Через Skills CLI (Vercel)
npx skills add goldsky-io/goldsky-agent --skill subgraph-migrate -a codex2Вручную: положить файлы
.agents/skills/subgraph-migrate/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add goldsky-io/goldsky-agent --skill subgraph-migrate -a cursor2Вручную: положить файлы
.cursor/skills/subgraph-migrate/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install goldsky-io/goldsky-agent subgraph-migrate2Вручную: положить файлы
.github/skills/subgraph-migrate/SKILL.md1Через Skills CLI (Vercel)
npx skills add goldsky-io/goldsky-agent --skill subgraph-migrate -a gemini-cli2Командой платформы
gemini skills install https://github.com/goldsky-io/goldsky-agent --path skills/subgraph-migrateВручную: положить файлы
.devin/skills/subgraph-migrate/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add goldsky-io/goldsky-agent --skill subgraph-migrate -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о subgraph-migrate
Как установить subgraph-migrate в Claude Code?
Выполните команду npx skills add goldsky-io/goldsky-agent --skill subgraph-migrate -a claude-code. Конфигурация сохранится по пути ~/.claude/skills/subgraph-migrate/SKILL.md.
Что делает скилл subgraph-migrate?
Он пошагово проводит миграцию субграфа с The Graph в Goldsky без изменения схемы и кода обработчиков. Скилл помогает выбрать способ деплоя по URL, IPFS-хешу или локальной сборке, запустить синхронизацию и настроить тег для продакшена.
Нужно ли переписывать код маппингов при переносе в Goldsky?
Нет, миграция работает как прямая замена исходного субграфа. Достаточно иметь публичный GraphQL-эндпоинт, IPFS-хеш развёртывания или локальную сборку, а также авторизованный goldsky CLI.
Исходный текст
SKILL.md · MIT
--- name: subgraph-migrate description: "Migrate a subgraph from The Graph to Goldsky as a drop-in replacement — no code changes required. Use this skill when the user wants to move, switch, port, or migrate a subgraph off The Graph (hosted service, Subgraph Studio, or the decentralized network) onto Goldsky, or when a subgraph endpoint they relied on (e.g. The Graph hosted service) was sunset. Triggers on: 'migrate from The Graph', 'move my subgraph to Goldsky', 'switch off The Graph', 'redeploy a TheGraph subgraph', 'my subgraph endpoint is gone', 'from-url', 'from-ipfs-hash', 'drop-in replacement for The Graph'. For diagnosing a subgraph that fails after migrating, use /subgraph-doctor. For building/authoring or general deploy/tag/endpoint reference, use /subgraph-builder." --- # Migrate a Subgraph from The Graph Migrating an existing subgraph from The Graph to Goldsky is a **drop-in replacement** — you don't change your subgraph code. You point Goldsky at your published subgraph (by URL or IPFS hash) or redeploy from source, then swap the endpoint your app queries. > **Worth a quick check first: do they still need a subgraph?** > Migration is a natural moment to reconsider. If the dApp needs a hosted **GraphQL API**, migrating the subgraph is the right move — continue below. But if the real goal is getting this data into a database for analytics or a backend, a **Turbo pipeline** is faster, more reliable, and cheaper (`/turbo-builder`) — they may not need a subgraph at all. Surface this once; if they clearly want GraphQL, proceed with the migration. ## Boundaries - This skill is for migrating **from The Graph** (hosted service, Subgraph Studio, or decentralized network). - For diagnosing a subgraph that fails to deploy or sync after migrating, use `/subgraph-doctor`. - For deploy/tag/endpoint/webhook reference, use `/subgraph-builder`. - For migrating from Alchemy, follow the dedicated Alchemy migration docs (not covered here). ## Two hard rules > **1. Never invent the source URL or IPFS hash.** Always have the user provide their actual deployment URL or IPFS hash. Do not construct or guess `api.thegraph.com/...` or gateway URLs — fabricated source URLs are a top failure mode and waste deploy attempts. If you don't have a verified source, ask for it (see Step 2). > **2. Never quote pricing.** Do not tell the user migration is "free" or "cheap" or estimate a price. Subgraph pricing depends on usage and plan, and a wrong guess erodes trust (one customer was told "cheap" then quoted $10k+). For any cost question, route them to a Goldsky quote: [email protected] or their account/sales contact. ## Step 1: Choose a migration path | You have… | Use | Notes | |-----------|-----|-------| | A public GraphQL endpoint for the deployed subgraph | `--from-url <url>` | Simplest. Works for publicly deployed subgraphs. | | The subgraph's IPFS hash (deployment ID) | `--from-ipfs-hash <hash>` | Use when you have the hash but not a queryable URL. | | The original source code locally | `--path .` (build first) | Use if the published version is unavailable or you want to change code. | Recommend `--from-url` when the user has a working endpoint; otherwise `--from-ipfs-hash`. ## Step 2: Get the real source identifier Before deploying, get the user's actual source — do not guess it. - **From-URL:** Ask the user to paste the GraphQL endpoint they currently query on The Graph. - **From-IPFS-hash:** The IPFS hash is the deployment ID (`Qm...`). The user can find it on The Graph's explorer/Studio, or by querying their existing endpoint: ```graphql { _meta { deployment } } ``` `deployment` is the IPFS hash. If the user can't produce either, fall back to deploying from source (`--path`) and point them to `/subgraph-builder` for `init`/build. ## Step 3: Install the CLI and log in CLI setup is the most common migration sticking point — confirm it before deploying. ```bash # Follow /auth-setup and run its installer with cli; Windows uses WSL. export PATH="$HOME/.local/bin:$HOME/.goldsky/bin:$PATH" # Have the user authenticate manually in this same environment. goldsky login ``` Verify with `goldsky project list`. If login fails, use `/auth-setup`. ## Step 4: Deploy to Goldsky Pick the line matching the path from Step 1. Choose your own `name/version` for the Goldsky deployment: ```bash # From a public GraphQL endpoint goldsky subgraph deploy my-subgraph/1.0.0 --from-url <your-thegraph-endpoint> # From an IPFS hash (deployment ID) goldsky subgraph deploy my-subgraph/1.0.0 --from-ipfs-hash <Qm...> # From source (build first per /subgraph-builder) goldsky subgraph deploy my-subgraph/1.0.0 --path ./build ``` > If a subgraph with the same IPFS hash was already indexed on Goldsky, it can sync **instantly** to 100% — that's expected, not an error. You still get your own endpoint with your own rate limits. > Deployments with a lot of metadata can hit IPFS timeouts (`524`). Retry — usually a later attempt succeeds. If it keeps failing, escalate to support to port it manually. ## Step 5: Verify it's syncing ```bash goldsky subgraph list my-subgraph/1.0.0 ``` Then run the `_meta` query against the new Goldsky endpoint to confirm the indexed head is advancing: ```graphql { _meta { hasIndexingErrors block { number } } } ``` - A fresh migration that wasn't pre-indexed syncs from the start block — this can take a while. That's normal. - **Stuck at a low %** (e.g. 0.05%) is usually a mapping/handler error or a wrong network, **not** a slow sync. Hand off to `/subgraph-doctor`. - `hasIndexingErrors: true` → `/subgraph-doctor`. ## Step 6: Migrate tags and swap your endpoint Goldsky tags pin a stable alias (like `prod`) to a version so your frontend URL never changes on redeploy: ```bash goldsky subgraph tag create my-subgraph/1.0.0 --tag prod # Tagged endpoint: # https://api.goldsky.com/api/public/<project-id>/subgraphs/my-subgraph/prod/gn ``` Once synced, point your app at the Goldsky endpoint (use the tagged URL so future redeploys don't break the frontend). See `/subgraph-builder` for endpoints, private endpoints/API keys, and webhooks. ## Common migration gotchas These show up because a subgraph authored for The Graph hits Goldsky's spec validation on first deploy. If any occur, hand the exact error to `/subgraph-doctor`: - `subgraph must use a single apiVersion across its data sources` — unify `apiVersion`. - `Interface '<X>' not defined`, or timeseries/aggregation spec errors — fix the schema. - `no network <slug> found` — the chain slug differs on Goldsky; use the correct supported-network slug. - `A deployment with this name & version already exists` — bump the version. - CLI deploy keeps failing on a valid subgraph — the no-code/dashboard deploy path is a fallback; escalate if both fail. ## Related - **`/subgraph-builder`** — Build, author, and deploy subgraphs; endpoints, tags, webhooks reference - **`/subgraph-doctor`** — Diagnose a subgraph that fails to deploy or sync after migrating - **`/auth-setup`** — CLI installation and login - **Goldsky docs:** [docs.goldsky.com/subgraphs/migrate-from-the-graph](https://docs.goldsky.com/subgraphs/migrate-from-the-graph)
© goldsky-io · MIT · goldsky-io/goldsky-agent