We’ve been spending a lot of time thinking about where value is going to accrue in the Web3 Stack, and we’ve come to the conclusion that the query layer is going to capture a lot.
Without exception, every single team building on Ethereum — both centralized apps like Etherscan and decentralized apps like Augur — have the same problem: they need to query data out of the Ethereum blockchain. To date, everyone has solved this problem by building a haphazard, fragile, proprietary, centralized indexing server.
But why can’t developers just query Ethereum clients like Geth or Parity directly? They can, but neither Geth or Parity offers a robust indexing function, nor any way to scale to support queries at scale. As such, every team building on Ethereum to date has built a proprietary, centralized, fragile indexing function.
The Graph solves this problem by exposing both Ethereum and IPFS (and other data sources over time) to developers using a distributed, redundant, permissionless network via a GraphQL endpoint. Why GraphQL? Because it provides an elegant query interface — so much so that many web2 companies are transitioning away from REST to GraphQL — and because it’s extremely flexible. Given the breadth of data stored across Ethereum, IPFS, and other chains, this level of flexibility is essential.
So, how big is this problem? Although the Ethereum network is logging under 1M transactions per day, developers are querying Infura, a centralized key:value lookup service (Infura does not provide indexing and query services) over 10B times per day. As web3 adoption grows and consumers generate millions and eventually billions of web3 transactions every day, usage of The Graph will exponentially increase.
As part of a decentralized network, why would anyone voluntarily host a Graph node? The short answer is: because they can be paid for doing so. The Graph will adopt a work token model, among some other mechanics to allow developers to parameterize the data they’d like The Graph to index.