Build decentralized finance (DeFi) applications that read balances and execute trades on Ethereum.
Create NFT platforms that query blockchain data and mint or transfer digital assets.
Develop wallet software that signs transactions and manages user accounts on Ethereum.
Build developer tools that interact with smart contracts and monitor blockchain events.
Library is discontinued; use ethers.js or viem instead
Web3.js is a TypeScript library that lets developers interact with the Ethereum blockchain from JavaScript or TypeScript applications. Ethereum is a public blockchain network where programs called smart contracts run. To communicate with Ethereum, reading data from the blockchain, sending transactions, or calling smart contract functions, your application needs to speak the Ethereum JSON RPC protocol, a specific message format that Ethereum nodes understand. Web3.js handles all of that communication so developers can work with familiar JavaScript function calls instead of raw protocol messages. The library is modular: it ships as a collection of packages covering different areas. The core ethereum interaction module handles blocks, transactions, and smart contract calls. Separate packages handle ABI encoding and decoding (the format used to encode data for smart contracts), account management and signing, ENS (Ethereum's human-readable naming system for wallet addresses), and utility functions for working with Ethereum data formats. An important note from the README: the Web3.js library was sunset on March 4, 2025, the project has officially been discontinued by its maintainer ChainSafe Systems, which has published migration guidance on its blog. Developers starting new Ethereum projects should use alternative libraries like ethers.js or viem instead. When it was actively maintained, you would use Web3.js for any JavaScript or TypeScript application that needed to read from or write to the Ethereum blockchain, decentralized finance apps, NFT platforms, wallets, or developer tools.
Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.