OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

Ethereumex

Ethereumex is an open-source Elixir library that sends JSON-RPC requests to Ethereum nodes over HTTP, IPC or WebSocket. It includes methods for network and chain data, contract calls and transaction requests, plus WebSocket subscriptions for block headers, contract logs and pending transactions.

Independent OpenViST project profile, based on linked sources.

Ethereumex — OpenViST project profile in Developer Tools.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use Ethereumex when an Elixir application needs a client library for Ethereum JSON-RPC and the team has an endpoint available through HTTP, IPC or WebSocket.

Who it is for

  • Elixir developers integrating Ethereum JSON-RPC into an application
  • Teams that need WebSocket subscriptions to Ethereum headers, logs or pending transaction hashes

Documented uses

  • Retrieve Ethereum network, block, balance or transaction information from an application
  • Make read-only smart-contract calls and estimate gas through JSON-RPC
  • Send transaction requests through an Ethereum node
  • Receive selected Ethereum events through WebSocket subscriptions
Before you choose

Requirements & limits

  • The application must configure a node endpoint; Ethereumex is not itself an Ethereum node.
  • HTTP, IPC and WebSocket require different configuration, and IPC additionally needs an IPC path.
  • Contract-call data must be encoded for the contract method and arguments; the README suggests manual encoding or ExABI.
  • The README documents Jason as the default JSON library and allows a custom module implementing the required encode and decode functions.
  • HTTP pool and response timeouts can be configured globally or overridden per request.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Configure Ethereumex for HTTP requests

Add the library to an Elixir project and configure its HTTP endpoint and request options.

Before you start

  • An Elixir project using Mix
  • An Ethereum JSON-RPC HTTP endpoint
  • Jason or another JSON module implementing the documented encode and decode functions

Steps

  1. Add :ethereumex and a JSON library such as :jason to the dependencies in mix.exs.

  2. Set the Ethereum JSON-RPC URL under config :ethereumex in config/config.exs.

  3. Optionally configure HTTP headers and pool or receive timeouts; per-request :http_options can override configured values.

Expected outcome

The project is configured to make Ethereum JSON-RPC calls through Ethereumex's HTTP client.

Guide limitations

  • The guide covers dependency and HTTP configuration, not provisioning or operating an Ethereum node.
  • Actual RPC responses depend on the configured endpoint.
Source-based practical guide

Set up WebSocket subscriptions

Configure Ethereumex to connect over WebSocket and subscribe to supported blockchain notifications.

Before you start

  • An Elixir application with Ethereumex installed
  • An Ethereum WebSocket JSON-RPC endpoint

Steps

  1. Set websocket_url and client_type: :websocket in the Ethereumex configuration.

  2. Use the WebSocket client to subscribe to :newHeads, :logs with an optional filter, or :newPendingTransactions.

  3. Handle eth_subscription notifications in the application process and unsubscribe with the returned subscription ID when finished.

Expected outcome

The application is configured to receive notifications for the selected subscription type.

Guide limitations

  • The guide does not cover setting up the WebSocket endpoint.
  • The README documents these subscription types; available notifications depend on the connected endpoint.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
9 October 2026
Original website title
mana-ethereum/ethereumex · Official homepage title · retained in its source language