What the protocol pays for
I want The Graph to be where developers get any blockchain data they need, reliably and at a low price, across every data service it runs. For subgraphs, that starts with indexing everything. So my aim is simple: if a subgraph exists on a network governance has chosen to reward, I want it indexed. I don’t try to guess which subgraphs will be queried, and the protocol doesn’t ask me to. A Principal Systems Architect presenting the 2024 protocol economics proposal put it plainly: “indexers are not well positioned to predict consumer demand”, and it’s not “the role of an indexer to try and figure out what queries are going to happen on which subgraphs” (Office Hours 187). Indexing rewards exist so that data is indexed before demand appears: “you need some amount of indexers that have stepped up and indexed the data before that query demand exists and and so that is what indexing rewards are for” (Indexer Office Hours 77).
I’ve put my own capital behind that. I index 37% of all the subgraphs that rewards-earning indexers cover (1,829 of 5,003, counting current versions with stake allocated), and serve queries on all of them, while holding 1.3% of the network’s signal. For my size, nobody indexes more: I cover nearly 9 times as many subgraphs per GRT of stake as any other indexer that earns rewards, and over 450 times the median, and I keep the 2nd most subgraphs synced to chain head on the network: 1,943 on their current versions, behind Ellipfra’s 2,753 and ahead of the 1,335 the upgrade indexer’s public status endpoint reports. The protocol has already approved paying indexers directly for this kind of coverage (GIP-0087 and GIP-0088); until that runs, curation is how it gets paid for.
How I counted, on 19 October 2026: subgraphs where an indexer has stake allocated, on the subgraph’s current version, and synced to within 100 blocks of chain head according to that indexer’s own public status endpoint, divided by its provisioned plus delegated stake. The comparison is with the 47 other indexers that earned rewards in the previous 30 days and whose status endpoints answered.
How I fund it
I curate with my own GRT, from my indexer address, on subgraphs I index, on networks governance chose to reward: the Council chose Arbitrum Sepolia and Base Sepolia (GGP-0052 and GGP-0053), and the Foundation chose Sepolia and Chapel (GGP-0057). Every position is public: today about 129,000 GRT across 1,705 subgraphs, about 76 GRT each on average.
Signal is a capital allocation, not a forecast of demand. My signal says one thing: I’m willing to pay for these subgraphs to be indexed. On 1,306 of the 1,705 subgraphs I curate, nobody else is. Those subgraphs received about 1.1 million gateway queries in the 30 days to 18 October, and I served about 548,000 of them (the gateway’s own QoS oracle, published on-chain). If no one paid for the long tail, rewards-earning indexers would have little reason to index it.
Why my signal moves when larger indexers arrive
I aim to size signal at roughly what makes a subgraph worth indexing for an efficient operator, and no more. Above that, issuance pays for duplicate indexing the subgraph doesn’t need. As the Principal Systems Architect quoted above put it, “you might have 100 indexes index it and when you don’t really need 100 indexes maybe you only need 10 … it becomes inefficient” (Office Hours 187). So when a much larger indexer arrives on a subgraph I’m funding, the market is already paying for it to be indexed. I reduce my signal there and put that capital on subgraphs nobody else covers. Finding the right level means adjusting and watching how the market responds, like any price discovery.
I keep indexing what I reduce: 1,838 of my 1,840 reductions in the last 30 days were on subgraphs I’m still allocated to. Anyone who arrives is free to stay. I won’t pretend I mind when a much larger indexer decides one of my subgraphs isn’t worth its time at that level. But that’s its decision.
My own returns over the last month were high, and I don’t dispute the figures. They came from being the only indexer on hundreds of small subgraphs: an average 89 GRT return per allocation over 30 days, against 1,338 for the median indexer, and the rate falls as others arrive. To the indexers objecting: if you can be bothered to scrape the bottom of the barrel for 89 GRT a subgraph a month, be my guest. The network wants this work done. The protocol pays for it. You’ve had years to do it, and you didn’t.
The capital gap
Rewards on a subgraph are split by allocated stake, so whoever has the most capital can take most of any pool. Among rewards-earning indexers with 500 or more active allocations, I have by far the smallest stake: the next is nearly 8 times mine and the largest over 200 times. Ellipfra’s allocations on subgraphs I curate come to about 2.8M GRT. That’s 1.7% of his stake, and about 3.5 times everything I have allocated. What do they call this in poker, the big stack bully, or something? On 17 October he wrote on Discord that he “could probably make this attack unprofitable with allocations”. That’s free market competition, and so is my deciding where my own signal goes. I can’t compete on stake; where my signal goes is the lever I have.
Competing in the open
The protocol assumes everyone acts in their own interest: indexers allocate for rewards, resize, and compete for the same pools. If wanting to beat competitors were the offence, every indexer would be guilty. What matters is how you compete, not whether you want to win. The GDR-15 investigation (post 38) found a separate curator wallet and signal on a deprecated version used “as a form of deception”. I do the opposite: I index 37% of the subgraphs rewards-earning indexers cover, my signal sits on the versions apps actually use, and every move is made in the open from my indexer address, where anyone can see it and price it before deciding.
The rules
The charter treats an indexing dispute as a challenge to a POI, and the Arbitrators have said there isn’t a problem with the POI here. After GDR-15 they recommended adding “a specific clause about indexing rewards manipulation through gaming the curation mechanism to avoid doubt that this is a penalized behavior”, and asked for “a mechanism that eliminates any room for interpretation and the need for social consensus” (post 43). Neither happened: when the Council approved a new charter 32 months later (GGP-0056, September 2025), it added no such clause. I’m not saying that makes anything right. I’m saying no written rule covers this, and slashing for it now would leave every indexer who curates guessing where the line is.
It’s also worth noticing who asked for this. On Discord, decisionbasis’s operator, whose indexer I disputed twice earlier this year (GDR-48 and GDR-49), wrote “can someone slash 0xbadcoffee”. Public choice economics has a name for competitors asking the rule-makers to remove a rival instead of out-competing it: rent-seeking. Arbitration shouldn’t be a way to remove a competitor the protocol rules allow.
Curation is meant to be permissionless; this would add an unwritten permission on top of it. In practice, no indexer could ever reduce its signal without fearing a slash. Signal would become a one-way door, and few indexers would risk funding new subgraphs at all. That means fewer subgraphs indexed, a network less useful to the developers and consumers who rely on it, weaker network effects, and slower growth for everyone.