By defining a schema that exists only in our client, we can use GraphQL as an abstraction layer over our collection of contracts. This allows us to query the current state of our platform as if it was a traditional server and resolve queries against the blockchain.
TheGraph, SubQuery, Any Blockchain Network, Taking Any Data using ABI data, and Taking All history and State from the contract and transaction and event. No more backend required.