Some simple tips for Small Indexers "How to be more profitable"

Hello everyone.
This forum thread was created after the discussion about Stake decentralization. The goal of this thread is to help new and small Indexers get more profit from Indexer activity. I hope it will help us to have more Indexers and eventually make our community more diversified.

Some basic stuff about being an Indexer.
As an Indexers, your work is indexing data and then serve queries.

  1. You get indexing rewards when you allocated your stake (self-stake + delegated tokens) to some subgraph.
  2. You get query fees when you serving queries from dApps (or someone else, who want to get data).

For getting more from Indexing rewards, you should find a better possible proportion between Signaled tokens and allocated tokens to this subgraph(-s).
You can do that pretty simply, go to: Graphscan. Sort this list of subgraphs by Proportion column. Higher is better.

Indexing reward tips:

  1. Look at warning signs near of subgraph name. When you put your mouse arrow on the sign, you will find the text of this warning. If you see “Subgraph is denied to receive rewards” it means that this subgraph has some unsupported function or other restrictions, that will lead you to get zero rewards for indexing it. Don’t allocate to this subgraph until developers will fix everything.
  2. Look at the numbers in the column “Current signaled”. Pay attention that proportion will change when you allocate to some subgraph. If the subgraph has less than 1k GRT in signaled tokens it doesn’t make sense to allocate several million GRTs to it. Because it will ruin proportion and your profitability. So, calculate everything before actual allocation (at least in the google spreadsheet), verify that proportion after your allocation will be still suitable for you.
  3. Indexing rewards are distributing accordingly with the signal tokens around the whole network. It means, that if some subgraph will have only 1k signal tokens it will give you: ((Total signal tokens/total indexing rewards)*1k)/allocated share % to this subgraph between all Indexers who allocated on it. Why this is interesting? Because you can allocate 1 or 10 or 100GRT and get all rewards from a particular subgraph if you are only one Indexer who allocated to it. For large Indexers, it could be not so interesting, but you can find this kind of Diamonds and allocate to them wisely.
  4. Always calculate opportunity cost. Each time when you close and allocate you spend ETH. So, try to find a good moment when gas is lower than average and the cost for reallocation is significantly less than your rewards from it.
  5. (!)Be the first who allocated to subgraphs. This strategy is some kind of risky, but you have a chance to be one of the first who allocated to the subgraph and will get more rewards before other Indexers will join. Risks: subgraph could be broken somehow, or too big for index it during 28 epochs, or someone also jumps in pretty quick, or signals will jump out before you get more than you spend on gas.

Query fee tips (will be updated when query fees will be a significant part of the revenue):
For now, you can only try to monitor the Curators’ chat (Discord or TG group “Grt Curation station”) or trying to find it by yourself. What subgraph has comparable low signal volume (with good proportion) and at the same time has some queries. It will add you additional profit, but it’s more “bet on the future”.

Main tips:

  1. Set a good, preferable short, name instead of just an address for your Indexer.
  2. Set this name as a part of your name in the Discord and at the Forum. Like “Konstantin |”.
  3. Start answering questions inside of the Forum and Discord channels. Not only questions to you directly, but as a help to the community.
  4. Monitor Discord, especially #poi and #Subgraph-health channels, to be sure that your subgraphs are healthy.
  5. Monitor current proportion on subgraphs where you allocated. Someone else could jump in with allocation or jump out with signals and ruin proportion.
  6. Take part in the GRTiQ podcast and Know your Indexer - The Graph

When you just started as an Indexer you can reduce costs a lot by:

  1. Reducing amount of servers involved. It will be not an ideal solution from a Failure resistant point, but economically make sense, especially paying attention that you will not have a lot of queries and high load on your servers in the beginning.
  2. Share Ethereum node server with someone, or use trial periods from Ethereum-as-a-service providers. Also, consider starting from Erigon instead of OE, it will save you some funds on storage.
  3. Set query threshold parameter to high numbers. Calculate it by yourself depends on your total stake. With default numbers, you will collect 0.0001 GRT as a query reward from some subgraphs and will pay for it 10-100x more in ETH.

Everyone who wants to add some useful tips for small Indexers will be highly appreciated in this thread :slight_smile:


My colleagues also asked me to add some info about safety. It’s not about profitability directly, but I agree that it’s really important. So, a little bit more about it.

  1. Check your POI (via Poifer: POIFIER - user-friendly tool for verification of indexing data consistency or POI checker: GitHub - p2p-org/graphprotocol-poi-checker: Python script to check POI across multi indexers for defined subgraph). It’s really important because it will show you that the data Indexed by you is consistent with the network. And you don’t have this kind of problem with your Ethereum node. It will also provide you more confidence that you will not be slashed if you worked an honest way.
  2. As an opposite of #5 from “Indexing reward tips”. As I said before it’s quite risky to do like this but what I didn’t say is “how to do it the right way”. A more logical and safe way is off-chain sync potentially interesting subgraphs and only after they will be fully synced → allocate to them. It will protect you from all factors that I listed above in #5.
  3. I also mentioned that you need to calculate everything in #4. But I need to add, that in most cases, for small indexers, it doesn’t make sense to reallocate too often. Because it will be too expensive for you. In most cases, even if some Indexers jump in, the proportion will go down to the average, not lower. So it could be more profitable for you just to stay there till the 26-28 epoch and then jumping to something more profitable (diamonds again :wink: ).

Great guide! I think this is relevant to any new Indexer really, not specifically small ones, however I am starting to see (through my own experience of growing delegations) how a lot of the smaller Indexer strategy for quick wins becomes less relevant as your total stake becomes large. It becomes much harder to deploy the large total stake in this agile, opportunist way because you simply have so much stake to deploy and need to find ways to “fit” the allocations to quality subgraphs without overallocating and damaging your own and everyone else’s revenue. Managing to play both the short term opportunities and deploy large amounts of stake is probably out of scope for manual allocation management, more of a target for automation.

One tip I would add is around monitoring Pending Reward Rate per hour, or over time. This is specifically in reference to Indexer Rewards (not query fee rebates)

You can keep an eye on your total rate of return on @aderks dashboard or API:

See Pending Reward Rate field on the left

If this number doesn’t meet the benchmark potential return rate for your total stake (easy to calculate this I can add if people need it) then you know you need to go and assess the overall allocation state of all your allocated subgraphs and adjust any that are over-allocated.

For the historical view of the same metric, you can use @stakemachine dashboard to see the returns of your allocations over time:

Keep in mind these numbers are an estimate before closing allocations, taken by querying the contracts, and @aderks and @stakemachine may use slightly different calculations methods so will likely not match perfectly, but they can both be very powerful tools to tell an Indexer if they are meeting the benchmark return rate or not.


With regards to allocations, we from Anyblock are building the Allocation Optimization Tool with a TG grant - beta testing to start later to date, would be awesome to get feedback from large and small indexers with their particular ideas and strategies!
Watch The Graph Allocation Optimization Tooling and/or for details.


Looking forward to chatting with you guys on office hours next week!