Web3 libraries for working with smart contracts on Ethereum

Today, we will list some of the most famous NodeJS libraries for building Web3 applications. These libraries are listed based on the number of downloads per month, in descending order:


web3.js is a collection of libraries which allow you to interact with a local or remote Ethereum node, using an HTTP or IPC connection. It’s a JavaScript implementation of the Ethereum JSON-RPC.

Weekly Downloads — 137,904


A collection of utility functions for Ethereum. It can be used in node.js or can be in the browser with Browserify. The library contains a good number of utility methods to manipulate strings and other Ethereum address related utility functions.

Weekly Downloads — 107,022


The ethers.js library aims to be a complete and compact library for interacting with the Ethereum Blockchain and its ecosystem. It’s a complete Ethereum wallet implementation and utilities in JavaScript (and TypeScript).

You can read a comparison between web3js and ethers.js here.

Weekly Downloads — 63,709


An implementation of Ethereum’s Virtual Machine (EVM) in JavaScript. The library supports all the forks of Ethereum and updates frequently.

Weekly Downloads— 47,512


Implements schema and functions related to Ethereum’s block. This library helps to build Ethereum mining software and working with Ethereum blocks.

Weekly Downloads — 46,236


A small collection of Ethereum signing functions. You can find examples here to how you can use this library.

Weekly Downloads — 30,429


A lightweight wallet implementation. At the moment it supports key creation and conversion between various formats. It has BIP32 HD keys support, it's lightweight and works in-browser. It doesn’t support signing transactions and managing storage.

Weekly Downloads — 29,577


If you want to hard-fork Ethereum, this is your library. It supports Ethereum Chain Logic, Parameters, and Configuration for hardfork. It has resources common to all Ethereum implementations.

Weekly Downloads — 26,675


This library implements the Ethereum ABI in JavaScript. Can be used with RPC libraries for communication or with ethereumjs-vm to implement a fully fledged simulator. This library also supports creating Solidity’s tightly packed data constructs, which are used together with sha3, sha256 and ripemd160 to create hashes.

Weekly Downloads — 24,457


Truffle is a development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier. With Truffle, you get:

  • Built-in smart contract compilation, linking, deployment and binary management.
  • Automated contract testing with Mocha and Chai.
  • Configurable build pipeline with support for custom build processes.
  • Scriptable deployment & migrations framework.
  • Network management for deploying to many public & private networks.
  • Interactive console for direct contract communication.
  • An instant rebuilding of assets during development.
  • External script runner that executes scripts within a Truffle environment.

Weekly Downloads — 22,250


This library supports Synchronized transactions for better control flow (i.e., transactions won’t finish until you’re guaranteed they’ve been mined). It also supports “Promises” and works well with ES6 and async/await. It provides default values for transactions, like from address or gas. The library returns logs, transaction receipt and transaction hash of every synchronized transaction.

Weekly Downloads — 20,760


Created by the Zeppelin team, OpenZeppelin is a library for secure smart contract development. It provides implementations of standards like ERC20 and ERC721 (which you can deploy as-is or extend to suit your needs), as well as Solidity components to build custom contracts and more complex decentralized systems.

Weekly Downloads — 13,482


Linting is the process of checking the source code for Programmatic as well as Stylistic errors. This is most helpful in identifying some common and uncommon mistakes that are made during coding.[source]

Ethlint analyzes your Solidity code for style & security issues, and fixes them. Standardize Smart Contract practices across your organization. Integrate with your build system. Deploy with confidence! Solium does not strictly follow Solidity Style Guide. The practices it enforces by default are best practices for the community at large.

Weekly Downloads — 6,690


Truffle Flattener concats Solidity files developed under Truffle with all of their dependencies. This tool helps you to verify contracts developed with Truffle on Etherscan, or debug them on Remix, by merging your files and their dependencies in the right order.

Weekly Downloads — 3,814


JavaScript bindings for the Solidity compiler. Uses the Emscripten compiled Solidity found in the solc-bin repository. The library exposes a high-level and a low-level API, giving a uniform interface to all compiler versions.

Weekly Downloads — 3,814


A JavaScript library for the ZeppelinOS smart contract platform. ZeppelinOS is a platform to develop, deploy and operate smart contract projects on Ethereum and every other EVM and eWASM-powered blockchain.

This is the repository for the ZeppelinOS JavaScript library. It is mainly used by the zoscommand-line interface, which is the recommended way to use ZeppelinOS. Howerver, this library can also be used directly to operate ZeppelinOS projects when a programmatic interface is preferred or more flexibility and lower-level access is required.

Weekly Downloads — 2,215


Embark is a framework that allows you to easily develop and deploy Decentralized Applications (DApps). A Decentralized Application is a serverless html5 application that uses one or more decentralized technologies. Embark currently integrates with EVM blockchains (Ethereum), Decentralized Storages (IPFS), and Decentralized communication platforms (Whisper and Orbit). Swarm is supported for deployment.

Weekly Downloads — 1,931


Waffle is a simplistic and minimalistic build for writing and testing smart contracts. It is minimalistic, has a only a few dependencies, a nice syntax, easy to extend, and a strong focus on the speed of tests execution.

Weekly Downloads — 1,519


Conclusion

We’ve scanned through NPM registry and curated this list. Let us know if we’ve missed something 😃. We know that the Ethereum ecosystem is highly active and a lot of new developments are happening daily. Let us know if you are building something cool 🆒 so we can feature it in our next articles!

About QuikNode

QuikNode is building infrastructure to support the future of Web3. Since 2017, we’ve worked with hundreds of developers & companies, helping scale dApps and providing high-performance Ethereum nodes. We’re working on something interesting from the past few months and will be launching soon, so subscribe our newsletter for more updates!! 😃