fix(chain): include Solana in chain list - #89
Merged
Zuhwa merged 1 commit intoAug 19, 2026
Conversation
`chain list` sourced its output solely from EVM_MAINNET_CHAINS /
EVM_TESTNET_CHAINS, which are EVM-only by construction. Solana was
therefore never listed, even though ACP jobs on it work end to end:
a job created with `--chain-id 501` progresses through
created -> budget_set -> funded -> submitted -> completed against the
Solana ACP program in ACP_CONTRACT_ADDRESSES.
The discovery surface disagreed with the supported surface, so anyone
using `chain list` to decide where they can transact concluded Solana
was unavailable.
List the Solana chain alongside the EVM ones, keyed off
SOLANA_MAINNET_CHAIN_ID (501) and SOLANA_DEVNET_CHAIN_ID (500) so the
mainnet/testnet split stays consistent with IS_TESTNET.
Also add a `family` field ("evm" | "solana") to the JSON output and the
TTY view, since chain ids alone no longer imply an address format. The
non-TTY tab-separated output keeps its two-column CHAIN_ID/NAME contract
so existing scripts that parse it are unaffected.
celesteanglm
force-pushed
the
fix/chain-list-include-solana
branch
from
August 19, 2026 09:11
5d6b756 to
1d13164
Compare
Zuhwa
approved these changes
Aug 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
acp chain listnever lists Solana:This is not a stale-data issue. It is structural. The command reads only from
EVM_MAINNET_CHAINS/EVM_TESTNET_CHAINS:and in
acp-node-v2:Both arrays are EVM-only by definition, so no version bump can surface Solana.
SUPPORTED_CHAINSdoes not help either, since it is also EVM-only. The SDK exposes Solana solely as scalars (SOLANA_MAINNET_CHAIN_ID,SOLANA_DEVNET_CHAIN_ID), plus a program address inACP_CONTRACT_ADDRESSESand a USDC mint in the payment-token map. Confirmed unchanged in acp-node-v2 0.1.12.Why it matters
Solana jobs work. Full lifecycle on chain 501, mainnet, CLI 1.0.32:
job.created7iJY5Zdy…SSNRbudget.setjob.fundedjob.submittedjob.completedclient create-job --chain-id 501,client fund --chain-id 501, andjob history --chain-id 501all succeeded against ACP program2heRZzq7QY8EX2hLceTron7jkzQe8uqsRztQnseavCcx.So the discovery surface contradicts the supported surface. Anyone using
chain listto decide where they can transact concludes Solana is unavailable.Change
List Solana alongside the EVM chains, keyed off the SDK scalars so the mainnet/testnet split stays consistent with
IS_TESTNET.Also adds a
familyfield ("evm"or"solana") to the JSON and TTY output, since chain ids alone no longer imply an address format and callers need to know whether to expect an EVM or base58 address.After
Compatibility
CHAIN_ID/NAMEcontract, so scripts parsing it are unaffected.npm run typecheckandnpm run buildboth pass.Not addressed here
Two adjacent observations from the same run, left out to keep this focused. Happy to file them separately.
events listenappears lossy on Solana. Across the job above, the client listener captured 1 of 5 system events and the provider listener captured 0. Pollingjob historywas reliable throughout. I have not diagnosed the cause and am reporting the symptom only.SOLANA_NO_EVALUATOR_ADDRESS(1111…1111) is the default evaluator when--evaluatoris omitted, andjob.completedfired in the same second asjob.submitted. This looks intentional, but at a non-zero price it releases escrow with no client inspection window, so it may be worth documenting prominently.Note
Low Risk
Discovery-only CLI change with additive JSON; non-TTY tab output unchanged.
Overview
acp chain listnow surfaces Solana alongside EVM chains, using SDKSOLANA_*_CHAIN_IDconstants and the sameIS_TESTNETsplit as the rest of the CLI (mainnet → Solana 501, testnet → Solana Devnet 500).Each chain in JSON and TTY output gets a
familyfield ("evm"|"solana") so callers know which address format applies. Tab-separated non-TTY output stays two columns (CHAIN_ID/NAME) for script compatibility.Reviewed by Cursor Bugbot for commit 1d13164. Bugbot is set up for automated code reviews on this repo. Configure here.