Skip to content

docs(solana): split Photon API into its own OpenRPC spec and sidebar group#1240

Open
JackReacher0807 wants to merge 3 commits intomainfrom
docs/openrpc/solana-photon-api-split
Open

docs(solana): split Photon API into its own OpenRPC spec and sidebar group#1240
JackReacher0807 wants to merge 3 commits intomainfrom
docs/openrpc/solana-photon-api-split

Conversation

@JackReacher0807
Copy link
Copy Markdown
Collaborator

What

Splits the 26 Photon methods (the Helius ZK Compression indexer surface) out of the Solana chain OpenRPC spec into a standalone solana-photon spec, and wires up a dedicated "Solana Photon API" sidebar group under both NFT API and the Solana chain section. This mirrors the earlier Solana DAS split.

Linear: DOCS-47

Follow-up to #1238 (DOCS-45 — overview page sections). Once this lands, the three-section Solana API overview page from #1238 will need a tiny redirect update so its Photon method links point at the new reference/alchemy-photon-apis-for-solana/... paths. I'll open that as a separate PR after #1238 merges so neither branch stomps on the other.

Why

Before this PR, Photon methods lived inside src/openrpc/chains/solana/solana.yaml alongside the Core RPC methods, so the left-sidebar "Solana API Endpoints" group was a single flat list of Core + Photon methods. Sahil wants Photon methods surfaced under their own sidebar group — same pattern as Solana DAS.

Changes

  • New src/openrpc/alchemy/solana-photon/solana-photon.yaml — standalone OpenRPC 1.2.4 spec with all 26 Photon methods. It references the existing method definitions in src/openrpc/chains/_components/solana/methods.yaml#/components/methods/<name> via cross-tree $refs (see "Ref approach" below), so the method schemas stay DRY.
  • Updated src/openrpc/chains/solana/solana.yaml — removes the 26 Photon $ref lines from the methods array and adds those method names to the x-bot-ignore list so Daikon stops managing them from the chain spec side. Core RPC ordering is preserved; existing DAS / legacy entries in x-bot-ignore keep their original grouping.
  • New content/api-reference/data/nft-api/alchemy-photon-apis-for-solana.mdx — overview page with frontmatter, a short ZK Compression / Photon background (with a link to https://github.com/helius-labs/photon), and a methods table linking to the new /docs/reference/alchemy-photon-apis-for-solana/solana-photon-api-endpoints/<method-kebab> endpoint slugs. Location mirrors where the DAS overview lives (data/nft-api/) for consistency.
  • Updated content/docs.yml — adds a Solana Photon API section under the NFT API area (with api-name: solana-photon) and a Solana Photon APIs link under the Solana chain section, matching the DAS entries right above them.

Method count: 26

getCompressedAccount, getCompressedAccountProof, getCompressedAccountsByOwner,
getCompressedBalance, getCompressedBalanceByOwner, getCompressedMintTokenHolders,
getCompressedTokenAccountBalance, getCompressedTokenAccountsByDelegate,
getCompressedTokenAccountsByOwner, getCompressedTokenBalancesByOwner,
getCompressedTokenBalancesByOwnerV2, getCompressionSignaturesForAccount,
getCompressionSignaturesForAddress, getCompressionSignaturesForOwner,
getCompressionSignaturesForTokenOwner, getLatestCompressionSignatures,
getLatestNonVotingSignatures, getMultipleCompressedAccountProofs,
getMultipleCompressedAccounts, getMultipleNewAddressProofs,
getMultipleNewAddressProofsV2, getTransactionWithCompressionInfo,
getValidityProof, getValidityProofV2, getIndexerHealth, getIndexerSlot

(Task description mentioned 27, but the list itself contained 26 unique method names — confirmed against src/openrpc/chains/solana/solana.yaml's existing Photon $refs.)

Ref approach: cross-tree $ref

I went with cross-tree $refs into src/openrpc/chains/_components/solana/methods.yaml#/components/methods/<name> rather than inlining the full method definitions the way solana-das.yaml does. Reasons:

  • The dereferencer used by scripts/generate-rpc.ts (@apidevtools/json-schema-ref-parser) handles cross-tree refs cleanly.
  • pnpm run generate:rpc produced a fully-dereferenced content/api-specs/alchemy/json-rpc/solana-photon.json with all 26 methods and their transitive compression.yaml schemas inlined correctly.
  • pnpm run validate:rpc passes on both the new spec and the trimmed solana.json.
  • Keeps Photon method definitions in one place (methods.yaml), which matches how the chain spec already referenced them — less drift risk than duplicating the bodies.

If the bundler ever starts rejecting cross-tree refs, the fallback (inline the method bodies as DAS does) is mechanical — just paste the entries from methods.yaml into solana-photon.yaml. Flagging for review in case there's a convention I missed.

CU costs in the overview table

The DAS overview has hardcoded CU cost / throughput values. Photon CU pricing isn't published yet, so the new page leaves those columns as - and includes a short note that they'll be filled in as the API exits Beta. Happy to swap in real numbers if there's a table somewhere I missed.

Redirects

Did not add per-method redirects in content/redirects.yml. The DAS split didn't add per-method redirects either when DAS moved to its own spec — it relied on the new slugs being the only canonical ones going forward. Following that precedent to keep the PRs symmetric. If you'd rather have 26 301s from /docs/chains/solana/solana-api-endpoints/<photon-method>/docs/reference/alchemy-photon-apis-for-solana/solana-photon-api-endpoints/<photon-method>, say the word and I'll add them in a follow-up.

What I did NOT touch

Validation

pnpm run generate:rpc    ✅
pnpm run validate:rpc    ✅
pnpm run typecheck       ✅
pnpm run lint:prettier   ✅ (warnings only on pre-existing untouched files)

Note: pnpm run lint runs eslint + prettier + typecheck in parallel; prettier flagged two unrelated files (scripts/upload-specs.ts, src/content-indexer/indexers/changelog.ts) and MDX_FEATURES.md had pre-existing remark warnings — none are in files this PR changes.

Testing this locally

  1. pnpm run generate:rpc — regenerates content/api-specs/alchemy/json-rpc/solana-photon.json (26 methods) and a trimmed content/api-specs/chains/solana.json (no more Photon methods).
  2. pnpm run validate:rpc — both specs pass validation.
  3. Preview build: the sidebar under NFT API should now show a "Solana Photon API" section with 26 endpoints; the Solana chain section should show a "Solana Photon APIs" link under "Solana DAS APIs".

@JackReacher0807 JackReacher0807 requested a review from a team as a code owner April 20, 2026 18:49
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 20, 2026

🔗 Preview Mode

Name Status Preview Updated (UTC)
Alchemy Docs ✅ Ready 🔗 Visit Preview Apr 20, 2026, 8:11 PM

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a652a58aec

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread src/openrpc/chains/solana/solana.yaml
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 20, 2026

🔍 Link Check

Status: ❌ Failed

Summary

Status Count
🔍 Total 7930
✅ Successful 6744
⏳ Timeouts 0
🔀 Redirected 403
👻 Excluded 675
❓ Unknown 0
🚫 Errors 107
⛔ Unsupported 1
Broken links (107) — click to expand

Errors per input

Errors in ./content/wallets/pages/smart-wallets/how-to-stamp-requests.mdx

Errors in ./content/wallets/pages/react-native/getting-started/getting-started-expo.mdx

Errors in ./content/wallets/pages/recipes/send-usdc.mdx

Errors in ./content/wallets/pages/authentication/overview.mdx

Errors in ./content/api-reference/arbitrum/arbitrum-api-faq/arbitrum-api-faq.mdx

Errors in ./content/wallets/pages/react-native/getting-started/getting-started-rn-bare.mdx

Errors in ./content/wallets/pages/recipes/onramp-funds.mdx

Errors in ./content/api-reference/introduction/api-overview.mdx

Errors in ./content/api-reference/katana/katana-api-overview.mdx

Errors in ./content/changelog/2025-09-18.md

Errors in ./content/api-reference/op-mainnet/op-mainnet-api-faq/op-mainnet-api-faq.mdx

Errors in ./content/changelog/2025-08-28.md

Errors in ./content/api-reference/arbitrum-nova/arbitrum-nova-deprecation-notice.mdx

Errors in ./content/wallets/pages/index.mdx

Errors in ./content/wallets/pages/recipes/smart-wallets-aave.mdx

Errors in ./content/changelog/2026-03-26.md

Errors in ./content/api-reference/data/nft-api/alchemy-photon-apis-for-solana.mdx

Errors in ./content/api-reference/hyperevm/hyperevm-api-overview.mdx

Errors in ./content/tutorials/alchemy-university/smart-contract-basics/multi-sig-contracts.mdx

Errors in ./content/wallets/pages/smart-wallets/quickstart/index.mdx

Errors in ./content/wallets/pages/recipes/upgrade-to-smart-accounts.mdx

Errors in ./content/changelog/2026-04-09.md

Errors in ./content/wallets/pages/bundler-api/bundler-faqs.mdx

Errors in ./content/wallets/pages/concepts/smart-account-client.mdx

View workflow run

The Photon methods were moved out of the Solana API endpoints list and
into a dedicated Solana Photon API spec. Their generated pages used to
live at /docs/chains/solana/solana-api-endpoints/<method-slug>; they now
live at /docs/reference/alchemy-photon-apis-for-solana/solana-photon-api-endpoints/<method-slug>.

Add permanent redirects for all 26 methods so existing links from the
Solana API overview (and anywhere else on the web) keep working.
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.

1 participant