Web3 libraries and 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.
thirdweb
thirdweb SDK SDK covers all aspects of the web3 development stack, including connecting to user’s wallets, interacting with the blockchain and smart contracts, decentralized storage, authentication, and more; enabling you to build scalable and performant web3 applications on any EVM-compatible blockchain. Out of the box, infrastructure is provided for everything required to create decentralized applications, including connection to the blockchain (RPC), decentralized storage (IPFS + pinning services), and tools to create powerful user experiences; such as gasless transactions, wallet connection components, FIAT on-ramps, data APIs, and more.
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.