Skip to content

Commit d05af4b

Browse files
authored
Simplify feature support matrix - remove network duplication (reference the new registry) (#1143)
1 parent d94da7c commit d05af4b

1 file changed

Lines changed: 126 additions & 56 deletions

File tree

docs/feature-support-matrix.md

Lines changed: 126 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,129 @@
1-
# Feature support matrix
2-
3-
As described in [GIP-0008](https://snapshot.org/#/council.graphprotocol.eth/proposal/0xbdd884654a393620a7e8665b4289201b7542c3ee62becfad133e951b0c408444), the Feature support matrix defines indexing & querying features which are experimental or not fully supported for indexing & query rewards and arbitration.
4-
5-
The matrix below reflects the canonical Council-ratified version. As outlined in GIP-00008, Council ratification is currently required for each update, which may happen at different stages of feature development and testing lifecycle.
6-
7-
| Subgraph Feature | Aliases | Implemented | Experimental | Query Arbitration | Indexing Arbitration | Indexing Rewards | Deprecated |
8-
| --------------------------- | ------------- | ----------- | ------------ | ----------------- | -------------------- | ---------------- | ------------ |
9-
| **Core Features** | | | | | | | |
10-
| Full-text Search | | Yes | No | No | Yes | Yes | |
11-
| Non-Fatal Errors | | Yes | Yes | Yes | Yes | Yes | |
12-
| Grafting | | Yes | Yes | Yes | Yes | Yes | |
13-
| **Data Source Types** | | | | | | | |
14-
| eip155:\* | \* | Yes | No | No | No | No | |
15-
| eip155:1 | mainnet | Yes | No | Yes | Yes | Yes | |
16-
| eip155:100 | gnosis | Yes | Yes | Yes | Yes | Yes | |
17-
| near:\* | \* | Yes | Yes | No | No | No | |
18-
| ~~arweave:\*~~ (deprecated) | \* | Yes | Yes | No | No | No | v0.39.0 |
19-
| eip155:42161 | arbitrum-one | Yes | Yes | Yes | Yes | Yes | |
20-
| eip155:42220 | celo | Yes | Yes | Yes | Yes | Yes | |
21-
| eip155:43114 | avalanche | Yes | Yes | Yes | Yes | Yes | |
22-
| eip155:250 | fantom | Yes | Yes | Yes | Yes | Yes | |
23-
| eip155:137 | polygon | Yes | Yes | Yes | Yes | Yes | |
24-
| eip155:10 | optimism | Yes | Yes | Yes | Yes | Yes | |
25-
| eip155:8453 | base | Yes | Yes | Yes | Yes | Yes | |
26-
| eip155:534352 | scroll | Yes | Yes | Yes | Yes | Yes | |
27-
| eip155:59144 | linea | Yes | Yes | Yes | Yes | Yes | |
28-
| eip155:56 | bsc | Yes | Yes | Yes | Yes | Yes | |
29-
| eip155:7777777 | zora | Yes | Yes | Yes | Yes | Yes | |
30-
| eip155:1284 | moonbeam | Yes | Yes | Yes | Yes | Yes | |
31-
| eip155:30 | rootstock | Yes | Yes | Yes | Yes | Yes | |
32-
| eip155:11155111 | sepolia | Yes | Yes | Yes | Yes | Yes | |
33-
| eip155:97 | chapel | Yes | Yes | Yes | Yes | Yes | |
34-
| eip155:130 | unichain | Yes | Yes | Yes | Yes | Yes | |
35-
| **Data Source Features** | | | | | | | |
36-
| ipfs.cat in mappings | | Yes | Yes | No | No | No | |
37-
| ENS | | Yes | Yes | Yes | Yes | Yes | |
38-
| File data sources: Arweave | | Yes | Yes | No | Yes | Yes | |
39-
| File data sources: IPFS | | Yes | Yes | No | Yes | Yes | |
40-
| Substreams: mainnet | | Yes | Yes | Yes | Yes | Yes | |
41-
| Substreams: optimism | | Yes | Yes | Yes | Yes | Yes | |
42-
43-
Note: Items marked as deprecated are no longer supported in the specified version or later of `graph-node`.
44-
45-
The accepted `graph-node` version range must always be specified; it always comprises the latest available version and the one immediately preceding it.
46-
The latest for the feature matrix above:
1+
# Feature Support Matrix
2+
3+
As described in [GIP-0008](https://snapshot.org/#/council.graphprotocol.eth/proposal/0xbdd884654a393620a7e8665b4289201b7542c3ee62becfad133e951b0c408444), the Feature Support Matrix defines indexing & querying features which are experimental or not fully supported for indexing & query rewards and arbitration.
4+
5+
---
6+
7+
## Governance
8+
9+
As of [GGP-0057](https://snapshot.box/#/s:council.graphprotocol.eth/proposal/0x4eff14202f6204c0927860a9adff865fce33c32b6cbe7054227457631ee261b9), the Feature Support Matrix is maintained by The Graph core protocol developers, and indexing rewards for networks are managed by The Graph Foundation (with review by the Technical Advisory Board).
10+
11+
### Responsibilities
12+
13+
**The Graph Foundation** (with TAB review):
14+
- Adding or removing indexing rewards for networks
15+
- Since indexing rewards determine arbitration support, this also controls which networks have arbitration enabled
16+
17+
**Core Protocol Developers**:
18+
- Graph-node version requirements
19+
- Core feature support and experimental status
20+
- Data source feature support
21+
- Technical implementation details
22+
23+
**Council Approval Required For**:
24+
- Changes to arbitration eligibility for **existing features** or data sources
25+
- Determining which **new features** or **new data source types** are eligible for indexing rewards
26+
- Changes to arbitration policy that affect dispute resolution
27+
28+
**No Council Approval Required For**:
29+
- Adding/removing networks with indexing rewards (Foundation + TAB authority)
30+
- Adding new experimental features (not yet eligible for rewards)
31+
- Graph-node version updates
32+
- Documentation improvements and clarifications
33+
34+
---
35+
36+
## Graph Node Version Requirements
37+
38+
For arbitration to function fairly and consistently, indexers must run compatible versions of graph-node. As specified in the [Arbitration Charter (Section 10)](https://github.com/graphprotocol/graph-improvement-proposals/blob/main/gips/0009-arbitration-charter.md#10-subgraph-api-and-indexer-software-versioning), a defined version window ensures that:
39+
40+
1. **Consistent behavior**: All indexers subject to arbitration run compatible software
41+
2. **Fair disputes**: Fishermen and indexers are evaluated against the same implementation
42+
3. **Reasonable upgrade window**: Indexers have time to upgrade without being out of compliance
43+
44+
The accepted `graph-node` version range for indexers:
4745

4846
```
49-
graph-node: >=0.38.0 <=0.44.0
47+
graph-node: >=0.38.0 <=0.45.0
5048
```
51-
### Other notes
52-
53-
- Currently, one single matrix is used to reflect protocol behaviour for both Ethereum mainnet and Arbitrum One.
54-
- Aliases can be used in subgraph manifest files to refer to specific networks.
55-
- Experimental features are generally not fully supported for indexing rewards and arbitration, and usage of experimental features will be considered during any arbitration that does occur.
56-
- Query fees apply to all queries, regardless of the underlying features used by a subgraph.
57-
- Subgraph features not named in the matrix are assumed to be fully supported for indexing & query rewards and arbitration
58-
- [GGP-0057](https://snapshot.box/#/s:council.graphprotocol.eth/proposal/0x4eff14202f6204c0927860a9adff865fce33c32b6cbe7054227457631ee261b9) : Delegation of Chain Integration & Deprecation Authority to The Graph Foundation (with TAB Approval Requirement).
59-
This proposal delegates responsibility for approving new chain integrations (indexing rewards) and deprecating chains to The Graph Foundation, contingent upon receiving approval from the Technical Advisory Board (TAB). This change is intended to streamline operations while maintaining technical oversight. The Council retains override authority.
49+
50+
**Policy**: This range must always comprise the latest available version and one immediately preceding it, providing indexers with a reasonable window to upgrade while ensuring the network runs on recent, well-tested software.
51+
52+
**Last Updated**: 2026-08-03
53+
54+
---
55+
56+
## Network Support & Arbitration
57+
58+
### Default Policy
59+
60+
**Networks with indexing rewards have full arbitration support (both query and indexing).**
61+
62+
This is a bidirectional relationship:
63+
- **Indexing rewards enabled** → Arbitration support enabled
64+
- **Arbitration support enabled** → Indexing rewards enabled
65+
66+
### How to Check Network Support
67+
68+
To verify if a network supports arbitration:
69+
70+
1. Check the [Networks Registry - Networks Table](https://github.com/graphprotocol/networks-registry/blob/main/docs/networks-table.md)
71+
2. Look for ✅ in the **"Indexing Rewards"** column
72+
3. If ✅ present → Network has full arbitration support
73+
4. If no ✅ → Network does not have arbitration support
74+
75+
For complete network information (RPC endpoints, services, deprecation status, etc.), see the [Networks Registry](https://github.com/graphprotocol/networks-registry).
76+
77+
### Arbitration Policy Documentation
78+
79+
For detailed information about the arbitration policy and how it relates to indexing rewards, see [Network Arbitration Policy](https://github.com/graphprotocol/networks-registry/blob/main/docs/arbitration-policy.md).
80+
81+
### Exception Networks
82+
83+
Only networks that deviate from the default policy are listed here:
84+
85+
_Currently, all networks follow the default policy. This table will list exceptions if they arise._
86+
87+
| Network (CAIP-2) | Aliases | Query Arbitration | Indexing Arbitration | Notes |
88+
| --- | --- | --- | --- | --- |
89+
| | | | | |
90+
91+
---
92+
93+
## Core Subgraph Features
94+
95+
| Feature | Implemented | Experimental | Query Arbitration | Indexing Arbitration | Deprecated |
96+
| --- | --- | --- | --- | --- | --- |
97+
| Full-text Search | Yes | No | No | Yes | |
98+
| Non-Fatal Errors | Yes | Yes | Yes | Yes | |
99+
| Grafting | Yes | Yes | Yes | Yes | |
100+
101+
---
102+
103+
## Data Source Features
104+
105+
| Feature | Implemented | Experimental | Query Arbitration | Indexing Arbitration | Deprecated |
106+
| --- | --- | --- | --- | --- | --- |
107+
| ipfs.cat in mappings | Yes | Yes | No | No | |
108+
| ENS | Yes | Yes | Yes | Yes | |
109+
| File data sources: Arweave | Yes | Yes | No | Yes | |
110+
| File data sources: IPFS | Yes | Yes | No | Yes | |
111+
| Substreams: mainnet | Yes | Yes | Yes | Yes | |
112+
| Substreams: optimism | Yes | Yes | Yes | Yes | |
113+
114+
---
115+
116+
## Deprecated Features and Networks
117+
118+
For information about deprecated networks and features, including which graph-node version deprecated them, see the [Networks Registry](https://github.com/graphprotocol/networks-registry).
119+
120+
Networks with a `deprecatedAt` timestamp in their `graphNode` section are no longer supported for subgraph deployments.
121+
122+
---
123+
124+
## Notes
125+
126+
- Currently, one single matrix reflects protocol behaviour for both Ethereum mainnet and Arbitrum One.
127+
- Experimental features are generally not fully supported for indexing rewards and arbitration.
128+
- Query fees apply to all queries, regardless of features used.
129+
- Features not named in the matrix are assumed fully supported for indexing & query rewards and arbitration.

0 commit comments

Comments
 (0)