Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Consensys/ethql
A GraphQL interface to Ethereum :fire:
https://github.com/Consensys/ethql
api backend blockchain ethereum frontend graphql indexing typescript
Last synced: about 1 month ago
JSON representation
A GraphQL interface to Ethereum :fire:
- Host: GitHub
- URL: https://github.com/Consensys/ethql
- Owner: Consensys
- License: apache-2.0
- Archived: true
- Created: 2018-02-17T00:34:40.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-01-13T10:12:07.000Z (almost 3 years ago)
- Last Synced: 2024-11-14T17:48:16.952Z (about 2 months ago)
- Topics: api, backend, blockchain, ethereum, frontend, graphql, indexing, typescript
- Language: TypeScript
- Homepage:
- Size: 4.09 MB
- Stars: 624
- Watchers: 53
- Forks: 85
- Open Issues: 48
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# A GraphQL interface to Ethereum 🔥
[![CircleCI](https://circleci.com/gh/ConsenSys/ethql.svg?style=svg)](https://circleci.com/gh/ConsenSys/ethql)
[![Gitter](https://img.shields.io/gitter/room/ethql/lobby.js.svg?style=flat-square)](https://gitter.im/ethql/Lobby)**▶️ Try out the Alpha on Infura:
[https://ethql-alpha.infura.io/graphql]()**[Example queries.](#query-handbook)
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:- Decoding of standard transactions (e.g. ERC20, ENS, ERC223, etc.) out of the box.
- New query patterns enabled by indexing solutions (e.g. all transactions between any two accounts).
- Automatic batching and caching of requests.
- New filtering capabilities.
- Simple, inline unit conversions.
- Enhancing public data with information overlays imported from other sources._NOTE: This project is under heavy development._
## Quickstart
You need a running Node environment with at least:
- nodejs >= 8.0.0
- [yarn](https://yarnpkg.com/)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](https://infura.io/) 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 DependenciesTo turn on debugging:
```
DEBUG=ethql:*
```## Query Handbook
We suggest fiddling with some [Example Use Cases](https://github.com/ConsenSys/ethql/wiki/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](https://github.com/ConsenSys/ethql/wiki/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:
- [Block Query Fields](https://github.com/ConsenSys/ethql/wiki/Block-Query-Fields)
- [Account Query Fields](https://github.com/ConsenSys/ethql/wiki/Account-Query-Fields)
- [Transaction Query Fields](https://github.com/ConsenSys/ethql/wiki/Transaction-Query-Fields)
- [Log Query Fields](https://github.com/ConsenSys/ethql/wiki/Log-Query-Fields)
- [Decoded Transaction Query Fields](https://github.com/ConsenSys/ethql/wiki/Decoded-Transaction-Query-Fields)## Contributing
If you are interested in fixing issues and contributing directly to the code base, please see the document
[How to Contribute](https://github.com/ConsenSys/ethql/wiki/How-to-Contribute), which covers the following:- [Submitting Bugs and Suggestions](https://github.com/ConsenSys/ethql/wiki/Submitting-Bugs-and-Suggestions)
- [Feedback Channels](https://github.com/ConsenSys/ethql/wiki/Feedback-Channels)
- [Coding Guidelines](https://github.com/ConsenSys/ethql/wiki/Coding-Guidelines)
- [Contributor License Agreement](https://github.com/ConsenSys/ethql/wiki/Contributor-License-Agreement)Please see also our [Code of Conduct](https://github.com/ConsenSys/ethql/wiki/Contributor-Code-of-Conduct).
## Feedback
- Request a new feature on [GitHub](https://github.com/ConsenSys/ethql/wiki/Submitting-Bugs-and-Suggestions).
- Vote for
[popular feature requests](https://github.com/ConsenSys/ethql/issues?q=is%3Aopen+is%3Aissue+label%3A%22Type%3A+Feature%22).
- File a bug in [GitHub Issues](https://github.com/ConsenSys/ethql/issues).
- [Tweet](https://twitter.com/PegasysEng) us with other feedback## Development team
- RaĂşl Kripalani [(contact)](mailto:[email protected])
- Akhila Raju [(contact)](mailto:[email protected])# Who we are
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.](https://pegasys.tech/?utm_source=github&utm_medium=source&utm_campaign=ethql)