This page is incomplete. If you’re an expert on the topic, please edit this page and sprinkle it with your wisdom.

Backend API libraries

William Entriken
Last edit: @fulldecent, November 30, 2020
Edit page

In order for a software application to interact with the Ethereum blockchain (i.e. read blockchain data and/or send transactions to the network), it must connect to an Ethereum node.

For this purpose, every Ethereum client implements the JSON-RPC specification, so there are a uniform set of endpoints that applications can rely on.

If you want to use a specific programming language to connect with an Ethereum node, roll your own solution but several convenience libraries exist within the ecosystem that make this much easier. With these libraries, developers can write intuitive, one-line methods to initialize JSON RPC requests (under the hood) that interact with Ethereum.

Prerequisites

It might be helpful to understand the Ethereum stack and Ethereum clients.

Why use a library?

These libraries abstract away much of the complexity of interacting directly with an Ethereum node. They also provide utility functions (e.g. converting ETH to Gwei) so as a developer you can spend less time dealing with the intricacies of Ethereum clients and more time focused on the unique functionality of your application.

Available libraries

Alchemy - Ethereum Development Platform.

Infura - The Ethereum API as a service.

Cloudflare Ethereum Gateway.

Nodesmith - JSON-RPC API access to Ethereum mainnet and testnets.

Ethercluster - Run your own Ethereum API service supporting both ETH and ETC.

Chainstack - Shared and dedicated Ethereum nodes as a service.

QuikNode - Blockchain developer platform.

Python Tooling - Variety of libraries for Ethereum interaction via Python.

web3j - A Java/Android/Kotlin/Scala integration library for Ethereum.

Rivet - Ethereum and Ethereum Classic APIs as a service powered by open source software.

Nethereum - An open source .NET integration library for blockchain.

Further reading

Know of a community resource that helped you? Edit this page and add it!