mcpField
S
subgraphs

subgraphs

github.com/goldsky-ioデータ・データベース1248 回インストール今日更新
リポジトリ

subgraphs について

Goldsky Subgraphs は、オンチェーンイベントをインデックス化し、GraphQL で構造化データを公開するスキルです。フロントエンドアプリや dApp 向けに、サブグラフの作成、デプロイ、エンドポイント管理を扱います。

主な機能

  1. 01サブグラフの初期化とデプロイ
  2. 02ABI、IPFS、The Graph からデプロイ
  3. 03GraphQL エンドポイントとタグの管理
  4. 04エンティティ変更 Webhook の設定
  5. 05ログとインデックス状態の確認

活用シーン

  1. 01フロントエンドアプリにオンチェーン GraphQL クエリを提供
  2. 02The Graph のサブグラフを Goldsky に移行
  3. 03エンティティ変更時の HTTP 通知を設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/goldsky-io/goldsky-agent --skill subgraphs

インストール後、Claude Code で/subgraphsを入力して読み込まれたか確認します。

同梱ファイルevals/trigger-eval.json

詳細

Goldsky サブグラフ

サブグラフは、オンチェーンイベントをインデックス化し、クエリ可能なエンドポイントを介して公開する、ホスト型の GraphQL API です。構造化されたオンチェーンデータに対して柔軟な GraphQL クエリを必要とする フロントエンドアプリケーションや dApp に最適です。

代わりに Turbo パイプラインで解決できるでしょうか? GraphQL でのクエリではなく、生のオンチェーンデータをデータベース(PostgreSQL、ClickHouse、Kafka、S3)にストリーミングすることが目的なら、Turbo パイプラインのほうが高速で低コストであり、カスタムのインデックス作成コードも必要ありません。「Turbo パイプラインの構築を手伝って」と伝えると、turbo-builder スキルが案内します。


サブグラフを使用する場面

ユースケース最適なツール
フロントエンド/dApp で GraphQL API が必要サブグラフ
インデックス作成ハンドラーにカスタムビジネスロジックが必要サブグラフ
既存の TheGraph サブグラフを移行サブグラフ
生のブロックチェーンデータをデータベースにストリーミングTurbo パイプライン
ClickHouse または Kafka でリアルタイム分析Turbo パイプライン
サブグラフのデータを独自のデータベースに同期Mirror + サブグラフソース

サブグラフを初期化する

新しいサブグラフプロジェクトをローカルでスキャフォールドします。

goldsky subgraph init my-subgraph/1.0.0 --target-path ./my-subgraph
主な初期化フラグ
フラグ説明
--target-path <path>サブグラフファイルを書き込むディレクトリ
--from-config <path>即時サブグラフ JSON 設定ファイルのパス
--abi <source>コントラクトの ABI ソース
--contract <address>監視するコントラクトアドレス
--contract-events <names>インデックス化するイベント名
--contract-calls <names>インデックス化する呼び出し名
--contract-name <name>コントラクト名
--network <network>コントラクトのネットワーク — 対応ネットワークについてはドキュメントを参照してください
--start-block <block>インデックス作成を開始するブロック
--description <text>サブグラフの説明
--call-handlers呼び出しハンドラーを有効化
--buildファイルの書き込み後にサブグラフをビルド
--deployビルド後にサブグラフをデプロイ
--force指定したパスにある既存ファイルを上書き

サブグラフをデプロイする

Goldsky は複数のデプロイ方法をサポートしています。

ソースから(最も一般的)

ローカルディレクトリにコンパイル済みのサブグラフが必要です。

# Install CLI and log in
curl https://goldsky.com | sh
goldsky login

# Deploy from local build output
goldsky subgraph deploy my-subgraph/1.0.0 --path ./build
ABI から(即時サブグラフ)

AssemblyScript を使わずに、コントラクト ABI からサブグラフを直接生成してデプロイします。

goldsky subgraph deploy my-subgraph/1.0.0 --from-abi ./MyContract.json
IPFS ハッシュから

すでに IPFS に公開されているサブグラフをデプロイします。

goldsky subgraph deploy my-subgraph/1.0.0 --from-ipfs-hash QmXyz...

カスタムゲートウェイを指定するには --ipfs-gateway <url> を使用します(デフォルトは https://ipfs.network.thegraph.com です)。

ノーコード(ダッシュボードウィザード)

Goldsky ダッシュボードを使用すると、コードを書かずに一般的な規格(ERC-20、ERC-721 など)向けのビルド済みサブグラフをデプロイできます。app.goldsky.com → サブグラフ → 作成に移動してください。

The Graph から移行する

ワンステップで移行でき、コードの変更は不要です。

goldsky subgraph deploy my-subgraph/1.0.0 \
  --from-url <your-thegraph-deployment-url>

docs.goldsky.com/subgraphs/deploying-subgraphs を参照してください。

デプロイフラグのリファレンス
フラグ説明
--path <dir>コンパイル済みサブグラフディレクトリのパス
--from-url <url>公開デプロイ済みサブグラフの GraphQL エンドポイント(The Graph の移行用)
--from-ipfs-hash <hash>公開デプロイ済みサブグラフの IPFS ハッシュ
--from-abi <path>ABI ファイルからサブグラフを生成
--ipfs-gateway <url>カスタム IPFS ゲートウェイ(デフォルト:https://ipfs.network.thegraph.com)
--tag <tags>デプロイ後にサブグラフにタグを付与(複数の場合はカンマ区切り)
--start-block <number>開始ブロックを上書き
--graft-from <name/version>既存のサブグラフの最新ブロックからグラフト
--remove-graftデプロイ前にサブグラフからグラフトを削除
--enable-call-handlers呼び出しハンドラーを有効化(--from-abi と併用する場合のみ)
--description <text>サブグラフの説明/メモ

注意: --path、--from-url、--from-ipfs-hash、--from-abi は同時に指定できません。いずれか1つだけを使用してください。


GraphQL エンドポイント

デプロイされたサブグラフごとに、パブリック GraphQL エンドポイントが用意されます。

https://api.goldsky.com/api/public/<project-id>/subgraphs/<name>/<version>/gn

エンドポイント URL を取得するには:

goldsky subgraph list
パブリックエンドポイントとプライベートエンドポイント

デフォルトでは、エンドポイントはパブリックです。エンドポイントの公開範囲を設定するには:

# Disable public endpoint
goldsky subgraph update my-subgraph/1.0.0 --public-endpoint disabled

# Enable private endpoint (requires API key)
goldsky subgraph update my-subgraph/1.0.0 --private-endpoint enabled

プライベートエンドポイントで API キーを必須にするには:

  1. app.goldsky.com → Settings → API Keys に移動し、キーを作成します。
  2. リクエストに Authorization ヘッダーを追加します:
    Authorization: Bearer <your-api-key>
    

サブグラフのタグ

タグを使うと、人が読みやすいエイリアス(prod など)を特定のサブグラフバージョンに固定できるため、再デプロイしてもフロントエンドの URL は変わりません。

# Create or update a tag
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

# Delete a tag
goldsky subgraph tag delete my-subgraph/1.0.0 --tag prod

デプロイ時にタグを付けることもできます:

goldsky subgraph deploy my-subgraph/2.0.0 --path ./build --tag prod

docs.goldsky.com/subgraphs/tags をご覧ください。


Webhook

サブグラフの Webhook は、エンティティが変更されるたび(INSERT、UPDATE、DELETE)に HTTP エンドポイントへペイロードを送信します。通知やプッシュ型のフローに便利です。

# Create a webhook
goldsky subgraph webhook create my-subgraph/1.0.0 \
  --name my-webhook \
  --url https://example.com/hook \
  --entity Transfer \
  --secret my-secret

# List all webhooks
goldsky subgraph webhook list

# List available entities for a subgraph
goldsky subgraph webhook list-entities my-subgraph/1.0.0

# Delete a webhook
goldsky subgraph webhook delete my-webhook
フラグ説明
--name <name>Webhook 名(重複不可)— 必須
--url <url>イベントの送信先 URL — 必須
--entity <entity>イベントを送信するサブグラフのエンティティ — 必須
--secret <secret>各 Webhook リクエストに含めるシークレット

ヒント: データベースへの確実な配信が必要な場合は、Webhook ではなく Mirror を使ってサブグラフのデータを同期してください。こちらのほうが信頼性が高くなります。

docs.goldsky.com/subgraphs/webhooks をご覧ください。


サブグラフの管理

サブグラフの一覧表示
# List all subgraphs
goldsky subgraph list

# List a specific subgraph
goldsky subgraph list my-subgraph/1.0.0

# Show only tags or deployments
goldsky subgraph list --filter tags
goldsky subgraph list --filter deployments

# Summary view
goldsky subgraph list --summary
サブグラフの更新
goldsky subgraph update my-subgraph/1.0.0 \
  --public-endpoint enabled \
  --private-endpoint disabled \
  --description "Production deployment"
フラグ値説明
--public-endpointenabled / disabledパブリックエンドポイントの公開設定を切り替えます
--private-endpointenabled / disabledプライベートエンドポイントを切り替えます(API キーが必要です)
--descriptiontextサブグラフの説明/メモ
一時停止と再開
# Pause a subgraph (stops indexing)
goldsky subgraph pause my-subgraph/1.0.0

# Resume a paused subgraph
goldsky subgraph start my-subgraph/1.0.0
サブグラフの削除
goldsky subgraph delete my-subgraph/1.0.0

# Skip confirmation prompt
goldsky subgraph delete my-subgraph/1.0.0 --force

ログとデバッグ

問題を診断するには、サブグラフのログを追跡します:

# View recent logs
goldsky subgraph log my-subgraph/1.0.0

# Logs from the last hour, errors only
goldsky subgraph log my-subgraph/1.0.0 --since 1h --filter error

# JSON format for parsing
goldsky subgraph log my-subgraph/1.0.0 --format json
フラグデフォルト説明
--since <duration>1m指定した期間より新しいログを表示します(例:5s、2m、3h)
--format <format>text出力形式:pretty、json、text
--filter <level>info最小ログレベル:error、warn、info、debug
--levels <levels>—含めるログレベルをカンマ区切りで明示的に指定します
--interval <seconds>5ログを確認する間隔(秒)
停止したサブグラフ

サブグラフの進行が止まると、Goldsky は自動的に一時停止し、メールで通知します。診断するには:

  1. ログを確認します:goldsky subgraph log my-subgraph/1.0.0 --since 1h --filter error
  2. ハンドラーエラー、RPC タイムアウト、またはメモリ不足の問題を確認します
  3. 問題を修正して再デプロイするか、[email protected] にお問い合わせください

クロスチェーンのサブグラフ

複数のチェーンにまたがって同じコントラクトをインデックスするには、チェーンごとに個別のサブグラフをデプロイし、Mirror パイプラインを使ってそれらを 1 つのデータベーステーブルに統合します。

docs.goldsky.com/subgraphs/introduction をご覧ください。


CLI コマンドリファレンス

アクションコマンド
サブグラフを初期化goldsky subgraph init <name/version>
ソースからデプロイgoldsky subgraph deploy <name/version> --path .
The Graph からデプロイgoldsky subgraph deploy <name/version> --from-url <url>
ABI からデプロイgoldsky subgraph deploy <name/version> --from-abi <path>
IPFS からデプロイgoldsky subgraph deploy <name/version> --from-ipfs-hash <hash>
サブグラフの一覧を表示goldsky subgraph list
サブグラフを削除goldsky subgraph delete <name/version>
サブグラフを一時停止goldsky subgraph pause <name/version>
サブグラフを開始goldsky subgraph start <name/version>
サブグラフを更新goldsky subgraph update <name/version> --public-endpoint enabled
ログを追跡goldsky subgraph log <name/version>
タグを作成goldsky subgraph tag create <name/version> --tag <tag>
タグを削除goldsky subgraph tag delete <name/version> --tag <tag>
Webhook を作成goldsky subgraph webhook create <name/version> --name <n> --url <u> --entity <e>
Webhook の一覧を表示goldsky subgraph webhook list
Webhook を削除goldsky subgraph webhook delete <webhook-name>
Webhook エンティティの一覧を表示goldsky subgraph webhook list-entities <name/version>

関連情報

  • /turbo-builder — GraphQL API の代わりに、データベースへのストリーミングパイプラインを構築します
  • Goldsky のドキュメント: docs.goldsky.com/subgraphs/introduction

コメント