Skip to content

Conversation

@DemidovVladimir
Copy link
Contributor

@DemidovVladimir DemidovVladimir commented Nov 13, 2025

https://linear.app/molecule-to/issue/IP-1245/be-alchemy-subgraphs-are-getting-deprecated-on-dec-8-2025

Summary by CodeRabbit

  • Chores
    • Switched Sepolia and Mainnet deployment workflow to a Goldsky-based flow.
    • Deployment commands now accept IPFS-based package identifiers and support specifying an IPFS gateway.
    • Adopted explicit versioning for release deployments and simplified the deployment pipeline.
    • Removed two environment variables from the example environment file.

@coderabbitai
Copy link

coderabbitai bot commented Nov 13, 2025

Walkthrough

Removed two environment variables from .env.example and replaced Alchemy/graph-deploy commands in subgraph/package.json with Goldsky/IP-NFT based deployment commands referencing ip-nft-sepolia/1.3.2 and ip-nft-mainnet/1.3.2 and using --ipfs-gateway.

Changes

Cohort / File(s) Summary
Environment Configuration
\.env\.example
Removed THEGRAPH_API_TOKEN and SATSUMA_DEPLOY_KEY; no new variables added.
Subgraph Deployment Scripts
subgraph/package.json
Replaced graph deploy Alchemy-based scripts (used --node, --deploy-key, --version-label) for deploy:sepolia and deploy:mainnet with Goldsky workflow run ip-nft-.../1.3.2 commands, added --ipfs-gateway, and removed env-cmd devDependency.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Dev as Developer / CI
  participant Scripts as package.json scripts
  participant Goldsky as Goldsky Runner
  participant IPFS as IPFS Gateway
  participant Alchemy as Alchemy (legacy)

  rect rgba(220,245,230,0.9)
    Note right of Scripts: New flow (this PR)
    Dev->>Scripts: run `npm run deploy:sepolia` / `deploy:mainnet`
    Scripts->>Goldsky: `goldsky workflow run ip-nft-.../1.3.2 --from-ipfs-hash $IPFS_HASH --ipfs-gateway ...`
    Goldsky->>IPFS: fetch artifact via IPFS gateway
    Goldsky-->>Dev: deployment result (success / error)
  end

  rect rgba(245,235,230,0.9)
    Note right of Alchemy: Old flow (replaced)
    Dev->>Scripts: run `npm run deploy:*`
    Scripts->>Alchemy: `env-cmd ... graph deploy --node ... --version-label ... --deploy-key ...`
    Alchemy-->>Dev: deployment result (success / error)
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify Goldsky command strings (ip-nft-sepolia/1.3.2, ip-nft-mainnet/1.3.2) and --ipfs-gateway URL.
  • Confirm CI, deployment docs, or pipelines do not still expect THEGRAPH_API_TOKEN or SATSUMA_DEPLOY_KEY.
  • Check removal of env-cmd does not break any local/dev scripts or CI that relied on it.

Possibly related PRs

Suggested reviewers

  • 0xmme

Poem

🐰 I tunneled through envs and scripts at night,
Swapped Alchemy pathways for Goldsky's light,
IPFS crumbs now lead each gentle deploy,
Old keys tucked away, the new flow hops with joy,
Tiny whiskers twitch — a cleaner flight.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning Code changes address the primary objective of migrating from Alchemy to Goldsky, but do not fully meet acceptance criteria including testing, documentation, logging, and security verification requirements. Add unit/integration tests, ensure CI pipeline passes, implement logging and Sentry integration, update documentation, and complete security vulnerability checks before merge.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly references issue IP-1245 and clearly summarizes the main change: migrating Alchemy subgraph deployment to Goldsky.
Out of Scope Changes check ✅ Passed All changes are directly related to the Alchemy-to-Goldsky migration: removing Alchemy-related environment variables and updating deployment commands to use Goldsky.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/IP-1245/swap-to-goldsky

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 67bf482 and e1aa5f3.

⛔ Files ignored due to path filters (1)
  • subgraph/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (1)
  • subgraph/package.json (1 hunks)

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
.env.example (1)

15-22: Consider reordering IPFS_HASH before SATSUMA_DEPLOY_KEY.

The static analysis tool (dotenv-linter) flags an UnorderedKey warning, suggesting that IPFS_HASH should be placed before SATSUMA_DEPLOY_KEY for consistency with the expected key ordering convention. This is a minor style preference but helps maintain consistency in the configuration file.

Apply this diff to reorder the variables:

 ALCHEMY_KEY=
 THEGRAPH_API_TOKEN=
+# You can find the IPFS hash by querying your Alchemy subgraph endpoint:
+# query {
+#   _meta {
+#     deployment
+#   }
+# }
+#
+IPFS_HASH=
 SATSUMA_DEPLOY_KEY=
-# You can find the IPFS hash by querying your Alchemy subgraph endpoint:
-# query {
-#   _meta {
-#     deployment
-#   }
-# }
-#
-IPFS_HASH=
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 7346358 and dbaf0de.

📒 Files selected for processing (2)
  • .env.example (1 hunks)
  • subgraph/package.json (1 hunks)
🧰 Additional context used
🪛 dotenv-linter (4.0.0)
.env.example

[warning] 22-22: [UnorderedKey] The IPFS_HASH key should go before the SATSUMA_DEPLOY_KEY key

(UnorderedKey)

🔇 Additional comments (1)
subgraph/package.json (1)

11-12: Verify Goldsky deployment command syntax and hardcoded values.

The deployment scripts have been migrated from graph deploy (Alchemy) to goldsky subgraph deploy (Goldsky). A few items warrant verification:

  1. Goldsky CLI command syntax: Confirm that --from-ipfs-hash and --ipfs-gateway flags are correct and still supported in the version of Goldsky CLI being used.
  2. Hardcoded IPFS gateway: The gateway URL https://ipfs.satsuma.xyz is hardcoded. Verify this is the intended/only gateway or if it should be configurable.
  3. Hardcoded subgraph version: Both scripts reference v1.3.2. Confirm this version tag exists and is the correct target for deployment.
  4. Deployment paths: Verify that the subgraph names (ip-nft-sepolia and ip-nft-mainnet) are correctly registered in Goldsky.

To verify the Goldsky CLI command syntax, you may want to check the Goldsky documentation or test the deployment in a staging environment before merging. Additionally, ensure that:

  • The IPFS_HASH environment variable is correctly populated before running these scripts.
  • The SATSUMA_DEPLOY_KEY has appropriate permissions for Goldsky deployments.
  • All existing tests and CI pipelines pass with the new deployment flow.

@DemidovVladimir DemidovVladimir changed the title alchemy subgraph to goldsky move IP-1245-alchemy-subgraph-to-goldsky-move Nov 13, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between dbaf0de and fd3645d.

📒 Files selected for processing (1)
  • subgraph/package.json (1 hunks)
🔇 Additional comments (3)
subgraph/package.json (3)

1-26: LGTM — JSON structure and deploy command syntax look correct.

The migration from graph deploy (Alchemy) to goldsky subgraph deploy follows the expected pattern. The escaping of environment variables (\\$IPFS_HASH, \\$SATSUMA_DEPLOY_KEY) is correct for JSON. The use of env-cmd to load variables from .env is appropriate.

However, successful deployment depends on proper environment configuration and documentation, which I'm verifying separately above.


11-12: Deploy key security is properly configured.

Verification confirms all security measures are in place:

  • .env is properly ignored by .gitignore
  • .env.example contains only placeholder values (SATSUMA_DEPLOY_KEY= is empty)
  • README.md instructs developers to copy .env.example to .env and populate it locally
  • No secrets found in git history
  • No .env file exists in the repository

11-12: Verify environment variables are properly set in local .env file before deployment.

The deploy scripts reference $IPFS_HASH and $SATSUMA_DEPLOY_KEY from a local .env file (which is git-ignored). These variables must be populated before running the deploy commands. Use .env.example as a template—specifically ensure:

  1. SATSUMA_DEPLOY_KEY is set to your Satsuma deployment API key
  2. IPFS_HASH is set to the current subgraph IPFS deployment hash

Note: The -x flag in env-cmd enables variable expansion, not syntax validation. If the .env file is missing or contains invalid variable values, the deploy command will fail.

Comment on lines 11 to 12
"deploy:sepolia": "env-cmd -x -f ../.env goldsky subgraph deploy ip-nft-sepolia/1.3.2 --from-ipfs-hash \\$IPFS_HASH --ipfs-gateway https://ipfs.satsuma.xyz --deploy-key \\$SATSUMA_DEPLOY_KEY",
"deploy:mainnet": "env-cmd -x -f ../.env goldsky subgraph deploy ip-nft-mainnet/1.3.2 --from-ipfs-hash \\$IPFS_HASH --ipfs-gateway https://ipfs.satsuma.xyz --deploy-key \\$SATSUMA_DEPLOY_KEY",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify environment variables are properly documented in .env.example.

The deploy scripts now require IPFS_HASH and SATSUMA_DEPLOY_KEY environment variables to be set in .env. While the AI summary indicates .env.example was updated, I need to confirm these variables are documented with clear descriptions for developers.

Run the following script to verify the environment variable documentation:


🏁 Script executed:

#!/bin/bash
# Description: Verify IPFS_HASH and SATSUMA_DEPLOY_KEY are defined in .env.example

# Check if .env.example exists and contains required variables
if [ -f ".env.example" ]; then
  echo "=== Checking .env.example for required variables ==="
  grep -E "IPFS_HASH|SATSUMA_DEPLOY_KEY" .env.example || echo "WARNING: Required variables not found in .env.example"
else
  echo "ERROR: .env.example file not found at repository root"
fi

# Also check if there's any README or setup documentation
if [ -f "README.md" ]; then
  echo -e "\n=== Checking README.md for deployment documentation ==="
  grep -A5 -B5 "deploy\|Goldsky\|IPFS_HASH" README.md || echo "No Goldsky/deployment documentation found in README.md"
fi

# Check if there's a subgraph-specific README or deployment guide
if [ -f "subgraph/README.md" ]; then
  echo -e "\n=== Checking subgraph/README.md for deployment instructions ==="
  grep -A10 -B5 "deploy\|Goldsky\|environment" subgraph/README.md || echo "No deployment instructions found in subgraph/README.md"
fi

Length of output: 8853


Update subgraph/README.md to document Goldsky deployment workflow.

Environment variables IPFS_HASH and SATSUMA_DEPLOY_KEY are properly documented in .env.example. However, the deployment documentation in subgraph/README.md still references the deprecated hosted-service method (yarn graph deploy --product hosted-service). Add a new section documenting the updated Goldsky deployment commands (yarn deploy:sepolia and yarn deploy:mainnet) to ensure developers understand the new deployment workflow.

🤖 Prompt for AI Agents
In subgraph/package.json around lines 11-12, the project scripts use Goldsky for
deployments but subgraph/README.md still documents the deprecated hosted-service
workflow; update README.md to add a new "Goldsky deployment" section that
replaces the old hosted-service instructions, show the exact new commands (yarn
deploy:sepolia and yarn deploy:mainnet), note the required environment variables
IPFS_HASH and SATSUMA_DEPLOY_KEY (pointing readers to ../.env.example), and
include usage notes about env-cmd, the --from-ipfs-hash and --ipfs-gateway flags
and how to export or load the vars before running the deploy commands.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Confirm goldsky CLI is available as a dependency or global tool.

The deploy scripts invoke goldsky command directly. Verify that:

  1. The goldsky CLI is installed (either globally or via npm/yarn)
  2. The command path is available in the deployment environment
  3. Developers have clear setup/installation instructions

Run the following script to verify goldsky CLI availability:


🏁 Script executed:

#!/bin/bash
# Description: Verify goldsky CLI is properly configured

# Check if goldsky is listed in package.json dependencies
echo "=== Checking for goldsky in package.json ==="
jq '.dependencies.goldsky // .devDependencies.goldsky // "NOT FOUND"' subgraph/package.json

# Check if there are any installation or setup scripts in package.json
echo -e "\n=== Checking for setup/install scripts ==="
jq '.scripts | keys[]' subgraph/package.json | head -20

# Check if goldsky is mentioned in any documentation
echo -e "\n=== Searching for goldsky setup instructions ==="
find . -name "*.md" -type f 2>/dev/null | xargs grep -l "goldsky\|Goldsky" 2>/dev/null | head -5 || echo "No setup docs found"

Length of output: 299


I need to verify a few more things to understand the deployment setup:

Now let me check for documentation and env-cmd dependency:

I need to check if env-cmd is listed as a dependency and look for any setup documentation:

Missing @goldskycom/cli dependency in deploy scripts.

The Goldsky CLI (@goldskycom/cli) must be installed as an npm dependency, but it is not listed in subgraph/package.json. This CLI is required to deploy subgraphs. Additionally, env-cmd (used to load environment variables from .env files) should also be verified as a dependency.

Add @goldskycom/cli and env-cmd to subgraph/package.json dependencies/devDependencies, or document clear setup instructions for developers on how to install these tools globally. Without these dependencies, the deploy scripts (deploy:sepolia and deploy:mainnet) will fail in CI/CD and local environments.


🏁 Script executed:

#!/bin/bash
# Final verification: check for env-cmd and README files

echo "=== Checking for env-cmd in subgraph/package.json ==="
jq '.dependencies.["env-cmd"] // .devDependencies.["env-cmd"] // "NOT FOUND"' subgraph/package.json

echo -e "\n=== Checking for env-cmd in root package.json ==="
if [ -f package.json ]; then
  jq '.dependencies.["env-cmd"] // .devDependencies.["env-cmd"] // "NOT FOUND"' package.json
else
  echo "Root package.json not found"
fi

echo -e "\n=== Looking for README files ==="
find . -maxdepth 2 -name "README*" -type f 2>/dev/null | head -10

echo -e "\n=== Checking subgraph root for documentation ==="
ls -la subgraph/ | grep -iE "readme|setup|install|contributing" || echo "No setup docs found in subgraph/"

Length of output: 558


Let me correct the script syntax and explore the directory structure:


🏁 Script executed:

#!/bin/bash
# Corrected verification script

echo "=== Current directory structure ==="
pwd
ls -la | head -20

echo -e "\n=== Checking for subgraph/package.json ==="
if [ -f subgraph/package.json ]; then
  echo "Found subgraph/package.json"
  echo "=== env-cmd in subgraph/package.json ==="
  jq '.dependencies."env-cmd" // .devDependencies."env-cmd" // "NOT FOUND"' subgraph/package.json
  echo "=== goldsky in subgraph/package.json ==="
  jq '.dependencies | keys[] | select(. | contains("goldsky"))' subgraph/package.json 2>/dev/null || echo "Not in dependencies"
  jq '.devDependencies | keys[] | select(. | contains("goldsky"))' subgraph/package.json 2>/dev/null || echo "Not in devDependencies"
else
  echo "subgraph/package.json not found in current directory"
fi

echo -e "\n=== Search for README files in repo ==="
find . -type f \( -name "README.md" -o -name "README.txt" -o -name "SETUP*" \) 2>/dev/null | grep -v node_modules | grep -v ".git" | head -10

echo -e "\n=== Search for goldsky/Goldsky mentions in root directory files ==="
grep -r "goldsky\|@goldskycom" . --include="*.md" --include="*.txt" 2>/dev/null | head -5 || echo "No mentions found"

Length of output: 845


I need to navigate to the cloned repository directory:


🏁 Script executed:

#!/bin/bash
# Navigate to repo and verify dependencies

cd git

echo "=== Working directory ==="
pwd

echo -e "\n=== Content of subgraph/package.json (dependencies section) ==="
jq '.dependencies' subgraph/package.json 2>/dev/null | head -20

echo -e "\n=== Content of subgraph/package.json (devDependencies section) ==="
jq '.devDependencies' subgraph/package.json 2>/dev/null | head -20

echo -e "\n=== Search for goldsky or env-cmd ==="
jq '.dependencies + .devDependencies | keys[] | select(. | test("goldsky|env-cmd"))' subgraph/package.json 2>/dev/null || echo "Neither found in dependencies"

echo -e "\n=== README files in repository ==="
find . -maxdepth 3 -name "README*" -type f 2>/dev/null | grep -v node_modules | head -10

echo -e "\n=== GitHub workflows or CI config mentioning goldsky ==="
find . -path "*/.github/workflows/*.yml" -o -path "*/.github/workflows/*.yaml" 2>/dev/null | xargs grep -l "goldsky" 2>/dev/null || echo "No CI workflow references to goldsky"

Length of output: 606


Now let me check the README files for deployment setup instructions:


🏁 Script executed:

#!/bin/bash
cd git

echo "=== Root README.md (deployment section) ==="
grep -A 20 -B 2 -i "deploy\|goldsky\|setup" README.md | head -50

echo -e "\n=== Subgraph README.md (full content) ==="
cat subgraph/README.md

Length of output: 8907


Add @goldskycom/cli dependency or document Satsuma deployment setup.

The deploy:sepolia and deploy:mainnet scripts invoke the goldsky CLI command, but @goldskycom/cli is not listed in subgraph/package.json dependencies. Additionally, the README does not document the setup required for Satsuma deployments.

Either:

  1. Add @goldskycom/cli to subgraph/package.json as a dev dependency, or
  2. Document clear setup instructions for developers to install the Goldsky CLI globally and configure Satsuma deployment credentials

Note: env-cmd is already properly included as a devDependency, so that is not a concern.

🤖 Prompt for AI Agents
In subgraph/package.json around lines 11-12 the npm scripts call the external
goldsky CLI but @goldskycom/cli is not declared; add @goldskycom/cli as a
devDependency (run npm install --save-dev @goldskycom/cli and update
package.json) so CI and local installs can run the scripts, and also update the
repository README with a short Satsuma deployment section that documents either
installing the Goldsky CLI globally (npm i -g @goldskycom/cli) or using the
local devDependency, and the required env vars/steps to obtain and set
SATSUMA_DEPLOY_KEY and IPFS_HASH for deploys.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
subgraph/package.json (1)

11-12: Unresolved critical issue: Missing @goldskycom/cli dependency.

The deploy:sepolia and deploy:mainnet scripts invoke the goldsky command, but @goldskycom/cli is not listed in package.json dependencies or devDependencies. The deploy scripts will fail without this package.

Add @goldskycom/cli as a devDependency to resolve this blocker.

Apply this diff to add the missing dependency:

  "devDependencies": {
-   "env-cmd": "^10.1.0"
+   "env-cmd": "^10.1.0",
+   "@goldskycom/cli": "^0.1.0"
  }

Alternatively, if @goldskycom/cli is installed globally in the CI/CD environment, document this clearly in the deployment section of subgraph/README.md and add a setup instruction in .env.example or a separate SETUP.md file.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between fd3645d and cfb247d.

📒 Files selected for processing (1)
  • subgraph/package.json (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Smart contract tests

Comment on lines 11 to 12
"deploy:sepolia": "env-cmd -x -f ../.env goldsky subgraph deploy ip-nft-sepolia/1.3.3 --from-ipfs-hash \\$IPFS_HASH --ipfs-gateway https://ipfs.satsuma.xyz",
"deploy:mainnet": "env-cmd -x -f ../.env goldsky subgraph deploy ip-nft-mainnet/1.3.3 --from-ipfs-hash \\$IPFS_HASH --ipfs-gateway https://ipfs.satsuma.xyz",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify .env.example and subgraph/README.md are updated with deployment documentation.

The deploy scripts reference the IPFS_HASH environment variable (Line 11-12). Developers need clear documentation on:

  1. Where to find/generate the IPFS_HASH value for deployments
  2. How to obtain and set SATSUMA_DEPLOY_KEY
  3. Step-by-step deployment instructions

Run the following script to verify environment variable documentation and README updates:


🏁 Script executed:

#!/bin/bash
# Description: Verify .env.example and README files have Goldsky deployment documentation

echo "=== Checking .env.example for IPFS_HASH and SATSUMA_DEPLOY_KEY ==="
if [ -f ".env.example" ]; then
  grep -A 2 "IPFS_HASH\|SATSUMA_DEPLOY_KEY" .env.example || echo "⚠️  Missing environment variable documentation"
else
  echo "⚠️  .env.example not found"
fi

echo -e "\n=== Checking subgraph/README.md for Goldsky deployment documentation ==="
if [ -f "subgraph/README.md" ]; then
  grep -i "goldsky\|deploy:sepolia\|deploy:mainnet\|IPFS_HASH" subgraph/README.md && echo "✓ Found Goldsky deployment docs" || echo "⚠️  Missing Goldsky deployment documentation in subgraph/README.md"
else
  echo "⚠️  subgraph/README.md not found"
fi

echo -e "\n=== Checking root README.md for deployment setup instructions ==="
if [ -f "README.md" ]; then
  grep -A 10 -i "deploy\|goldsky" README.md | head -20 || echo "⚠️  Missing deployment section in root README"
else
  echo "⚠️  README.md not found"
fi

Length of output: 3983


Add Goldsky deployment documentation to subgraph/README.md.

Verification shows .env.example contains IPFS_HASH and SATSUMA_DEPLOY_KEY environment variables with basic documentation. However, subgraph/README.md is missing Goldsky deployment workflow instructions. Developers need clear steps in the subgraph README explaining how to:

  • Obtain and set IPFS_HASH from the Alchemy subgraph endpoint
  • Obtain and set SATSUMA_DEPLOY_KEY
  • Run npm run deploy:sepolia and npm run deploy:mainnet
🤖 Prompt for AI Agents
In subgraph/package.json around lines 11 to 12, the repo defines npm scripts
deploy:sepolia and deploy:mainnet using IPFS_HASH and a Goldsky (Satsuma) deploy
key but subgraph/README.md lacks instructions; update subgraph/README.md to add
a "Goldsky / Satsuma deployment" section that (1) shows how to obtain the
IPFS_HASH by fetching the Alchemy subgraph endpoint (include the exact curl/HTTP
request pattern and where to copy the returned IPFS hash), (2) explains how to
obtain/set SATSUMA_DEPLOY_KEY (where to get the key from Goldsky/Satsuma and how
to store it in .env or environment), (3) documents running the scripts npm run
deploy:sepolia and npm run deploy:mainnet (including the requirement to have
.env populated, env-cmd usage, and the IPFS gateway), and (4) add a brief
verification step to confirm deployment succeeded; keep the instructions concise
and copy-pastable for developers.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
subgraph/package.json (1)

11-12: @goldskycom/cli dependency is missing from package.json.

The deploy scripts invoke the goldsky command, which requires @goldskycom/cli to be installed. However, this dependency is not declared in either dependencies or devDependencies. This will cause the scripts to fail in CI/CD pipelines and local environments.

Add @goldskycom/cli as a dev dependency:

  "devDependencies": {
    "env-cmd": "^10.1.0"
+   "@goldskycom/cli": "^0.1.0"
  }

Then run npm install to update package-lock.json.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between cfb247d and cdcc613.

📒 Files selected for processing (1)
  • subgraph/package.json (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Smart contract tests

Comment on lines 11 to 12
"deploy:sepolia": "env-cmd -x -f ../.env goldsky subgraph deploy ip-nft-sepolia/1.3.2 --ipfs-gateway https://ipfs.satsuma.xyz",
"deploy:mainnet": "env-cmd -x -f ../.env goldsky subgraph deploy ip-nft-mainnet/1.3.2 --ipfs-gateway https://ipfs.satsuma.xyz",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify IPFS_HASH environment variable is correctly used in the deploy command.

The deploy scripts reference IPFS_HASH via env-cmd -x -f ../.env, but the goldsky command syntax does not show how it is consumed. The command is:

goldsky subgraph deploy ip-nft-sepolia/1.3.2 --ipfs-gateway https://ipfs.satsuma.xyz

Typically, Goldsky deployments using IPFS require a flag like --from-ipfs-hash <hash> or similar. Confirm that:

  1. The IPFS_HASH variable is actually used by the goldsky command in the environment
  2. The deploy command syntax is complete and correct
  3. Documentation clearly shows developers how to obtain and set IPFS_HASH

Run the following script to verify the Goldsky CLI documentation and expected deploy command syntax:


🌐 Web query:

What is the correct syntax for goldsky subgraph deploy command with IPFS hash?

💡 Result:

Use the --from-ipfs-hash flag. Example:

goldsky subgraph deploy your-subgraph-name/your-version --from-ipfs-hash <YOUR_IPFS_HASH> [--ipfs-gateway https://ipfs.satsuma.xyz]. (docs.goldsky.com)

Sources:
[1] Goldsky docs — Migrate from The Graph.
[2] Goldsky docs — Migrate from Alchemy (example with --ipfs-gateway).

Citations:


Add missing --from-ipfs-hash flag to deploy commands.

The deploy scripts are incomplete. The correct syntax requires the --from-ipfs-hash flag, but your commands omit it:

"deploy:sepolia": "env-cmd -x -f ../.env goldsky subgraph deploy ip-nft-sepolia/1.3.2 --from-ipfs-hash $IPFS_HASH --ipfs-gateway https://ipfs.satsuma.xyz",
"deploy:mainnet": "env-cmd -x -f ../.env goldsky subgraph deploy ip-nft-mainnet/1.3.2 --from-ipfs-hash $IPFS_HASH --ipfs-gateway https://ipfs.satsuma.xyz",

Without this flag, the IPFS_HASH environment variable loaded by env-cmd is never consumed by the goldsky command.

🤖 Prompt for AI Agents
In subgraph/package.json around lines 11 to 12 the deploy scripts omit the
required --from-ipfs-hash flag so the IPFS_HASH loaded by env-cmd is never
passed to goldsky; update both "deploy:sepolia" and "deploy:mainnet" script
values to include --from-ipfs-hash $IPFS_HASH before the --ipfs-gateway option
(ensuring the environment variable is exported/available via env-cmd) so goldsky
receives the IPFS hash during deployment.

@DemidovVladimir DemidovVladimir merged commit 53ccace into main Nov 13, 2025
2 checks passed
@DemidovVladimir DemidovVladimir deleted the fix/IP-1245/swap-to-goldsky branch November 13, 2025 15:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants