Skip to main content
Tags are used to maintain a consistent GraphQL endpoint. You can treat them like pointers or aliases to specific versions, allowing you to swap in new subgraphs in your app without changing your front-end code. Both Alchemy and Goldsky support this concept, but they implement it differently. This guide will help you understand the differences and migrate your workflow.

How Alchemy handles versions

Alchemy Subgraphs uses a “live version” promotion system:
  • Each subgraph has a live version that serves traffic at a static endpoint
  • Each subgraph version also gets its own version-specific endpoint
  • When deploying a new subgraph, the first version is automatically set to live
  • When deploying new versions of existing subgraphs, they are not automatically promoted to live; you manually promote versions to live via the dashboard or API, or enable auto-promotion for a version to become live once it finishes syncing.
Alchemy endpoint structure:
Promoting a version to live: You can promote via the dashboard or make an API call:
Auto-promote (for CI/CD): You can enable auto-promote so a version automatically becomes live once it finishes syncing:

How Goldsky handles tags

Goldsky uses a simpler, explicit tagging system:
  • Subgraph endpoints are named after the subgraph name and version by default
  • You create tags explicitly using the CLI to create stable endpoint aliases
  • Tags can be moved between versions seamlessly
  • No concept of “live version” - tags are the primary mechanism for stable endpoints
Goldsky endpoint structure:
Goldsky deployment:

Migrating your workflow

Step 1: Create a tag for your production endpoint

Instead of promoting to “live”, create a tag that represents your production environment:
This creates a stable endpoint at:

Step 2: Update your application code

Replace your Alchemy endpoint with the Goldsky tag-based endpoint: Before (Alchemy):
After (Goldsky):

Step 3: Deploy new versions and update tags

When you deploy a new version, the tag workflow is straightforward:
Your application will now seamlessly query the new version without any code changes.

Benefits of Goldsky’s approach

  • More explicit: Tags are clearly defined, not implicit “live” promotions. While this means additional effort in switching the tags once a subgraph is sycned, it allows for more explicit control over when frontend changes go live.
  • Multiple stable endpoints: Create as many tags as you need (prod, staging, dev, etc.), and name them as appropriate in your workflow. This is a simpler mental model where all tags are just pointers to a specific subgraph version, there is no special “live” state.