The Graph: Indexing Economy

Indexers, or node operators, are one of the most important participants in the Graph network. These nodes are designed to listen to on-chain events, calls and other function happening on Ethereum while also tracking IPFS’s distributed file storage. Operating from a financial incentive, Indexers build and monitor indexer node infrastructure, whose function is to allocate their initial stake on particular subgraphs in great demand, who are in turn recognized by Curator signalling. This symbiosis between Curators and Indexers allows the platform to provide an effective, redundant and secure service to 3rd party end-users, which require the data indexed by indexer nodes.

When users request query on a particular subgraph, the base protocol checks the data availability across multiple nodes and selects a single Indexer based on a variety of factors node reputation, up-time and most importantly, price per query. When chosen for a specific data feed, an Indexer checks multiple subgraphs for their schemas and overall quality of a subgraph, which is determined by Curator signalization. Upon selection of a subgraph, an Indexer allocates tokens to it and is thus able to serve the data to the end user. The end user locks a conditional micropayment beforehand which is unlocked when an Indexer determines data feed to be of sufficient quality and sent as query response. This conditional micropayment is called a query fee, which is sent to the rebate pool from which all Indexers are paid.

Indexer Query Flow Visualization

So far, we’ve discussed query fees. But another financial stimulation is designed to reward Indexers for their indexing efforts dubbed Indexer reward. The base protocol generates constant inflation per epoch which is distributed per subgraph based on their signalization and later distributed to Indexers allocating on that specific subgraph, based on the proportion of their share and total allocation to it. Right now, only one Subgraph is being used on the main network — PoolTogether.

Such an elaborate design of the indexer ecosystem demands Indexers have proficient programming skills with deep understanding of decentralized infrastructure in order to provide a secure and reliable node capable of serving queries to end-users. Additionally, Indexers as a whole are forced to cooperate and structure their expected query fees and experiment with reward strategies in order to build and maintain a stable long-term service which ultimately acts as the backbone of The Graph protocol.

To sum it up, Indexers are dependent on the following factors:
• Building and maintaining the necessary decentralized infrastructure capable of servicing the Graph ecosystem
• Paying attention to Curator signalling in order to pick valuable and in-demand Subgraphs to allocate their stake to, old and new (currently in development)
• Monitoring and adjusting their allocated stakes for reward optimization based on the query rebate function of the pool
• Experimenting and designing a competitive query pricing strategy
• Maintaining transparency and reputation on both the protocol and community level

So, where are we?

With the main network launch just a couple of days ago, everyone is still learning the ropes. The test-net anticipated a lot of variables, but no test run can fully anticipate all the variables the real-world brings to the table.

Not only are Indexers currently faced with operational tasks when it comes to node functionality, they are also open to additional allocations provided by Delegators. These individuals may loan, or delegate their GRT stake to an Indexer for 28 days in order to earn a portion of indexer rewards and fees, without having to personally run a Graph Node. This function is described as a productive use of the tokens in order to secure the network while providing a risk-free mechanic in exchange for receiving a portion of the querying rewards. Moreover, through the use of delegation, smaller Indexers, defined by a smaller Indexer stake, can leverage these allocations to provide a higher quality of service by being more competitive.

The launch presented Indexers with an abundance of overhead work. The launch presented a significant challenge in maintaining basic node functionality while giving them with the ability to experiment with allocating indexer rewards to the larger Delegator community. So early on in the network when protocol economics are not fully fleshed out, Indexers must maintain a careful balance of receiving sufficient indexing rewards for securing long-term node sustainability, while also competitively pricing their delegator allocation rewards to secure a larger pool of delegator GRT pool.

The scenario described above played out in the initial days of the launch. Delegators allocated their stakes to the Indexer nodes that first came online, who were still experimenting with overall indexing variables, which also included the reward allocation set for Delegators. With some initial confusion, it was exciting to see the two communities come together to explain their motivations and intentions. Delegators expressed their expectations of Indexer transparency when it comes to changes in the reward strategies and allocation, while Indexers described the obstacles they face. Everyone is aware of the importance of reputation and general transparency that is required when operating on such a protocol and have made significant strides to that end. Several Indexers have come forward presenting their motivation and ethos to the community, while Delegators are learning the technicalities of node operations so they can plan accordingly.

Additionally, in order for Delegators to keep track of their individual rewards, Indexers must close their allocation. By understanding each other’s motives, Indexers have started to close allocations more frequently, which also updated Delegator rewards more frequently, bringing more transparency into the fold.

Indexing operations are also complicated in and of itself, which is why Indexers are inter-dependent on each other’s contributions. Optimal indexing rewards are essential to sustaining a long-term service, which is why they designed a calculator which helps define the optimal point between indexing and delegating rewards. Reporting and mutual cooperation in debugging indexing node errors is also on a phenomenal level. Graph-ing (pun intended) and visualization is also a quick way to present a lot of data in a convenient way.

Several planned UI improvements are in the works which will significantly enhance user experience, which include easier tracking of delegation rewards, node reputation & statistics, and direct Indexer-Delegator communication. There is also a significant chance of querying rewards launching through on-boarding of 3rd party users requesting subgraph queries happening within a month, further increasing financial incentive of removing GRT from circulating supply and increasing protocol security. Ford Nickels, a software engineer at Graph also confirmed revamping of vesting contracts to allow withdrawing indexing rewards without also withdrawing the initial stake sometime next year.

Network statistics:
• Around ~100 Indexer nodes up and running on the network
• Total of 2,100,000 GRT indexing rewards spread in 2:1 ratio between Indexers and Delegators — ratio is expected to increase with time
• ~ 600,000 GRT generated every epoch
• Indexer Slashing Percentage set at 2.5%
• Burned tokens through deposit tax at 1,300,000 GRT
• Initial back-of-the-envelope calculations set query pricing at $0.00001/query

A lot of people on Discord contributed their findings, tools and other valuable feedback that helped me further my understanding of indexing side of the protocol and include it in this post. It would be extremely unfair to point out a handful of individuals as everyone in the #indexers, #curators and #delegators channel made enormous contributions in helping each other (myself included) understand the protocol’s intricacies and contribute to it. Thank you!

The Graph:
The Graph Blog:
The Graph Network:



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store