Skip to main content

Web3 libraries and tools

KNOW MORE TOOLS?

See something missing? Let us know on the Arbitrum Discord or by opening an issue on GitHub.

The following frameworks will help you build your decentralized apps (dApps):

Ethers

Ethers.js is a comprehensive and compact library designed for seamless interaction with the Ethereum, Arbitrum and other EVM-compatible blockchains and their ecosystems. With secure client-side private key management, compatibility with various nodes, and ENS name integration, it serves as a one-stop solution for decentralized application development needs. The library supports JSON wallet import/export, BIP 39 mnemonic phrases, and HD wallets, while remaining lightweight. Ethers.js also offers extensive documentation, full TypeScript readiness, and a generous collection of test cases, all under the open-source MIT License.

Viem

Viem is a lightweight and modular tool designed to build applications and libraries interfacing with Ethereum, Arbitrum and other EVM-compatible blockchains. It's optimized for performance and provides flexible programmatic APIs with extensive TypeScript typing. It offers features such as abstractions over the JSON-RPC API, APIs for smart contract interaction, language closely aligned with official Ethereum terminology, and utilities for working with ABIs. It also provides support for Anvil, Hardhat, and Ganache.

Web3.js

Web3.js is a versatile JavaScript library enabling developers to interact with Ethereum, Arbitrum and other EVM compatible nodes via HTTP, IPC, or WebSocket. It simplifies tasks like sending Ether, checking smart contract data, and creating contracts. As a JavaScript binding for the JSON RPC interface, web3.js is easily usable in popular web browsers, server-side Node.js applications, and Electron-based apps. Often used with the MetaMask browser extension, web3.js helps developers create decentralized applications and manage transactions directly from their preferred browser.

Web3.py

Web3.py is a Python library designed for interacting with Ethereum, Arbitrum and other EVM compatible blockchains. It's widely used in decentralized apps (dapps) to manage transactions, work with smart contracts, and access block data. Originally derived from the web3.js JavaScript API, it has evolved to cater to the needs of Python developers. The library enables users to develop clients for reading and writing data on the blockchain, including smart contract interactions, making it a versatile tool for Ethereum-based applications.