Web3.js libraries are being sunset on March 4th, 2025. For migration guides and more details please refer toChainsafe blog

Trusted by







Web3.js was established in 2014, making it the oldest web3 library. With extensive documentation, an active community and modular design, Web3.js is powerful and easy-to-use.
Deploy and interact with smart contracts as TS/JS objects
Subscribe to specific on-chain or smart contract events
Interact with the Ethereum Name Service (ENS)
Create and import accounts, sign data and transactions
Get block and state information from Ethereum nodes
Have access to utilities with built-in helpers for Ethereum dApps and web3 packages
  import {Web3} from "web3";
  // set a provider in the sepolia testnet using node rpc url
  const web3 = new Web3("https://rpc.sepolia.org");
  
  // interacting with the smart contract
  const abi = [
      {
      outputs: [
          {
          internalType: "uint256",
          name: "randomNo",
          type: "uint256",
          },
      ],
      name: "generateRandomNumber",
      stateMutability: "nonpayable",
      type: "function",
      },
  ] as const;
  
  const address = "0xA36432F7B12f160F685717c4Ab12EB883a682810";
  
  // create a new contract object, providing the ABI and address
  const contract = new web3.eth.Contract(abi, address);
  
  // using contract.methods to get value
  contract.methods
      .generateRandomNumber()
      .call()
      .then(console.log);
  import {Web3} from "web3";
  
  // set a provider to the sepolia testner using node rpc url
  const web3 = new Web3("wss://sepolia.infura.io/ws/v3/API_KEY");
  // interacting with the smart contract
  const abi = [
    {
      inputs: [
        {
          internalType: "uint256",
          name: "randomNo",
          type: "uint256",
        },
      ],
      name: "RandomNo",
      type: "event",
    },
  ] as const;
  const address = "0xA36432F7B12f160F685717c4Ab12EB883a682810";
  // create a new contract object, providing the ABI and address
  const contract = new web3.eth.Contract(abi, address);
// using contract.methods to get value
const subscription = contract.events.RandomNo()
subscription.on("data", console.log); // new value every time the event is emitted
  import {Web3} from "web3"
  
  // set a provider such as using infura
  const web3 = new Web3("https://rpc.sepolia.org") 
  
  // Get the balance of an Ethereum address
  web3.eth.getBalance("0xF8561Dc64E577B0CF53dd3FC11329e80B1A8343e").then(console.log) // result: 1.000.000 eth
  
  // Get the latest block number
   web3.eth.getBlockNumber().then(console.log) // result: BigInt(xxx)


