Consensys / ethql

A GraphQL interface to Ethereum :fire:
Apache License 2.0
622 stars 85 forks source link
api backend blockchain ethereum frontend graphql indexing typescript

A GraphQL interface to Ethereum 🔥

CircleCI Gitter

▶️ Try out the Alpha on Infura: https://ethql-alpha.infura.io/graphql

Example queries.

EthQL is a server that exposes a GraphQL endpoint to the public Ethereum ledger. It works against the standard JSON-RPC APIs offered by all Ethereum clients. It is built in TypeScript, and thus leverages the vast ecosystem of GraphQL tooling while preserving compile-time type safety.

EthQL regards blockchain data as a graph, and leverages the extensibility of GraphQL to introduce additional functionality, amongst which are:

NOTE: This project is under heavy development.

Quickstart

You need a running Node environment with at least:

Clone the repo and run:

$ yarn install
$ yarn bootstrap
$ yarn run dev
JSON-RPC (web3): Using HTTP(S) provider with endpoint: https://mainnet.infura.io/
Running a GraphQL API server at http://0.0.0.0:4000/graphql (browse here: http://localhost:4000/graphql)

This EthQL server uses Infura as a backend in anonymous mode. If you have an Infura project ID (and if you don't, you should sign up for one!) you can set it like this:

$ INFURA_ID=myid yarn run dev

Development

The debug module is included in Dev Dependencies

To turn on debugging:

DEBUG=ethql:*

Query Handbook

We suggest fiddling with some Example Use Cases to see some queries in action.

For an in-depth guide on how to use EthQL, please start with the document Top-Level Queries. This document shows all of the root fields available to query, including information on specific block(s), transaction(s), and account(s).

The following sections provide a deep dive into all of the fields available on top-level queries:

Contributing

If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute, which covers the following:

Please see also our Code of Conduct.

Feedback

Development team

Who we are

PegaSys logo

PegaSys’ mission is to build blockchain solutions ready for production in business environments. We are committed to open source, and are creating a framework for collaborative innovation for the public-chain community and leading enterprises.

Our team is composed of engineers leading in the areas of big data processing, applied cryptography, open source computing, cloud services, and blockchain development.

Learn more about PegaSys.