Ethers - An Elixir first-class library for interacting with smart contracts

Hello Elixir community!

I am excited to announce the release of a new Elixir library for interacting with the Ethereum blockchain: Ethers!

Ethers is heavily inspired by the popular ethers.js library and aims to provide a comprehensive and easy-to-use solution for Elixir developers working with Ethereum smart contracts. With Ethers, you can effortlessly interact with Ethereum contracts using automatically generated Elixir modules, complete with documentation and type-specs.

Here are some of the key features that differentiate Ethers from other Ethereum Clients.

  • Compile-time contract ABI to Elixir module conversion. This means it is faster in runtime and easier to use than other libraries like exw3
  • Out of the box support for standard contract interfaces such as ERC20, ERC721, ERC1155 and ERC777
  • Easy contract function calling and transaction sending
  • Simple log fetching and event filter creation
  • Developer first experience with typespecs and generated documentation
  • Portable RPC modules (Want to use a different RPC or want to add a feature to the RPC? You can swap it with your own)

Right now this is considered beta-testing release. I would encourage and also ask everybody who is interested to interact with and test Ethers. Did I mentioned that contribution is really welcomed?

Happy coding!

GitHub: alisinabh/elixir_ethers
Hex: ethers


Ethers version 0.0.1 of Ethers is now published on

This initial beta version is now shipped with the following functionalities.

  • Contract function generation during compile time from ABIs.
  • Ability to deploy a contract with its byte-code and constructor.
  • Common contract interfaces like ERC20, ERC721, ERC777 and ERC1155. (built-ins)
  • ENS and other name services resolve functionality and contracts.
  • Implicit type conversion and common type utility functions.

Feel free to give it a try and file your issues in github or your suggestions here.