Tiered Indexer Reward Percentage Caps

We have experienced a single point of failure when there is one indexer allocated to a subgraph. Should that indexer decide not to re-allocate to the subgraph at the end of their allocation, they will leave it unsupported and the consumer will experience downtime.

As a curator who is in touch with many developers from exterior projects, I share with them the trends that I have seen, but it would be a lot easier to give them an exact figure to target for their initial signal. They are usually ‘vaguely’ educated at best on the graphs economic structure (and we should make this as easy as possible for them).

Set an indexer reward percentage cap at signal tiers.
For example: At 5,000 signal and indexer can earn at most 50% of the rewards. If Indexer A allocated to this subgraph with a 9m stake (sub-optimal allocation), it would thus no longer prevent a second indexer from allocating to it thus removing the single point of failure.

It would not be viable to set this too low as a subgraph with only 2,000 may not warrant multiple indexers (especially with the current gas rates). What would the optimum amounts be? Initially, I feel that 5,000 - 10,000 should be the initial first tier.

What is the best calculation for the split?
If subgraph 1 had 5,000 signal achieving the 50% cap on indexer rewards. Indexer A allocated 9m and indexer B allocated 1m, should indexer B receive:

  • 10% (1m of the total 10m)
  • 16.6% (Indexer A’s allocation adjusted to 5m thus indexer B has 1m of the adjusted 6m)

I fully agree with your problem statement and that we need a mechanism to drive operational decentralisation of subgraphs.

I’m not convinced that capping the percentage of rewards received is the right approach. I think capping the total allocation to a deployment per indexer might be a more direct mechanism.

It has the same outcome, namely, that for deployments with a large amount of signal, a single indexer would not be able to saturate indexing rewards with a single allocation. This would keep allocation APR very high, and incentivise other indexers to allocate.

The problem with both mechanisms is that they incentivise sybil activity. Not sure how we get around that though.


I like this method better. Probably easier on the gas calculations as well.

The max allocation size should probably be a dynamically calculated value so it scales as more subgraphs are published.

1 Like