Skip to content
3 changes: 2 additions & 1 deletion website/pages/en/developing/supported-networks.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
"chainId": "Chain ID",
"hostedService": "Hosted Service",
"subgraphStudio": "Subgraph Studio",
"decentralizedNetwork": "Decentralized Network"
"decentralizedNetwork": "Decentralized Network",
"integrationType": "Integration Type"
}
18 changes: 7 additions & 11 deletions website/pages/en/developing/supported-networks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,15 @@ export const getStaticProps = getStaticPropsForSupportedNetworks(__filename)

<SupportedNetworksTable networks={props.networks} />

\* Preliminary network support via the [upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/)
&#8288;<sup>†</sup> Supports Substreams
\* Baseline network support provided by the [upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/).
\*\* Integration with Graph Node: `evm`, `near`, `cosmos`, `osmosis` and `ar` have native handler and type support in Graph Node. Chains which are Firehose- and Substreams-compatible can leverage the generalised [Substreams-powered subgraph](/cookbook/substreams-powered-subgraphs) integration (this includes `evm` and `near` networks). &#8288;<sup>†</sup> Supports deployment of [Substreams-powered subgraphs](/cookbook/substreams-powered-subgraphs).

The hosted service relies on the stability and reliability of the underlying technologies, namely the provided JSON RPC endpoints.
- The hosted service and Subgraph Studio rely on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints.
- Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. `xdai` is still supported for existing hosted service subgraphs.
- For a full list of which features are supported on the decentralized network, see [this page](https://github.com/graphprotocol/indexer/blob/main/docs/feature-support-matrix.md).

Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. `xdai` is still supported for existing hosted service subgraphs.

For a full list of which features are supported on the decentralized network, see [this page](https://github.com/graphprotocol/indexer/blob/main/docs/feature-support-matrix.md).

Substreams-powered subgraphs indexing `mainnet` Ethereum are supported in Subgraph Studio and on the decentralized network.

## Graph Node
## Running Graph Node locally

If your preferred network isn't supported on The Graph's decentralized network, you can run your own [Graph Node](https://github.com/graphprotocol/graph-node) to index any EVM-compatible network. Make sure that the [version](https://github.com/graphprotocol/graph-node/releases) you are using supports the network and you have the needed configuration.

Graph Node can also index other protocols, via a Firehose integration. Firehose integrations have been created for NEAR, Arweave and Cosmos-based networks.
Graph Node can also index other protocols, via a Firehose integration. Firehose integrations have been created for NEAR, Arweave and Cosmos-based networks. Additionally, Graph Node can support Substreams-powered subgraphs for any network with Substreams support.
15 changes: 8 additions & 7 deletions website/src/supportedNetworks.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export async function getSupportedNetworks() {
const supportedNetworksQueryResult: ExecutionResult<SupportedNetworksQuery> = await execute(SupportedNetworksDocument)
const fullySupportedNetworkIds = (supportedNetworksQueryResult.data?.networks ?? []).map((network) => network.id)

// Fallback in case the GraphQL query fails (last updated 2023-12-14)
// Fallback in case the GraphQL query fails (last updated 2024-06-04)
if (fullySupportedNetworkIds.length === 0) {
fullySupportedNetworkIds.push(
'eip155:1',
Expand All @@ -21,6 +21,7 @@ export async function getSupportedNetworks() {
'eip155:42161',
'eip155:42220',
'eip155:43114',
'eip155:10',
)
}

Expand All @@ -36,7 +37,6 @@ export async function getSupportedNetworks() {

const fullySupportedOnNetwork =
network.id === 'evm' && fullySupportedNetworkIds.includes(`eip155:${chain.chainId}`)
const partiallySupportedOnNetwork = ['evm', 'near'].includes(network.id) && !fullySupportedOnNetwork

return {
uid: chain.uid,
Expand All @@ -47,8 +47,10 @@ export async function getSupportedNetworks() {
supportedOnHostedService,
supportedOnStudio,
fullySupportedOnNetwork,
partiallySupportedOnNetwork,
substreams: chain.substreams ?? [],
integrationType: ['evm', 'near', 'cosmos', 'osmosis', 'ar'].includes(chain.network)
? chain.network
: 'substreams',
}
})
.filter(Boolean),
Expand All @@ -64,7 +66,7 @@ export function SupportedNetworksTable({ networks }: { networks: Awaited<ReturnT
<tr>
<th>{t('supportedNetworks.network')}</th>
<th>{t('supportedNetworks.cliName')}</th>
<th align="center">{t('supportedNetworks.chainId')}</th>
<th align="center">{t('supportedNetworks.integrationType')}**</th>
<th align="center">{t('supportedNetworks.hostedService')}</th>
<th align="center">{t('supportedNetworks.subgraphStudio')}</th>
<th align="center">{t('supportedNetworks.decentralizedNetwork')}</th>
Expand All @@ -75,16 +77,15 @@ export function SupportedNetworksTable({ networks }: { networks: Awaited<ReturnT
<td>
<CodeInline>{network.cliName}</CodeInline>
</td>
<td align="center">{network.chainId}</td>
<td align="center">{network.integrationType}</td>
<td align="center">{network.supportedOnHostedService ? '✓' : null}</td>
<td align="center">
{network.supportedOnStudio ? '✓' : null}
{network.substreams.includes('studio') ? <sup>†</sup> : null}
</td>
<td align="center">
{network.fullySupportedOnNetwork ? '✓' : null}
{network.partiallySupportedOnNetwork ? '*' : null}
{network.substreams.includes('network') ? <sup>†</sup> : null}
{!network.fullySupportedOnNetwork && network.supportedOnStudio ? '*' : null}
</td>
</tr>
))}
Expand Down