Blog>Top Libraries For Ethereum Smart Contract Developers

Top Libraries For Ethereum Smart Contract Developers

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

Quicknode

Quicknode

February 25, 2019 — 5 min read

Top Libraries For Ethereum Smart Contract Developers

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
    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


  • ethereumjs-util
    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


  • ethers.js
    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


  • ethereumjs-vm
    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


  • ethereumjs-block
    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


  • eth-sig-util
    A small collection of Ethereum signing functions. You can find examples here to how you can use this library.

Weekly Downloads — 30,429


  • ethereumjs-wallet
    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


  • ethereumjs-common
    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


  • ethereumjs-abi
    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
    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


  • truffle-contract
    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


  • openzeppelin-solidity
    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


  • Ethlint (formerly Solium)
    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
    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


  • solc-js
    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


  • zos-lib
    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
    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


  • ethereum-waffle
    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!


Need help with your project or have questions? Contact us via this form, on Twitter @Quicknode, or ping us on Discord!

About Quicknode

Founded in 2017, Quicknode deploys institutional-grade blockchain infrastructure for developers and enterprises. With 99.99% uptime and support for 77+ chains, teams build and scale onchain applications without compromise.

Start building today

Stay updated

The latest engineering insights, product updates, and web3 news delivered straight to your inbox.