Skip to content

Web3.js

Web3.js is a JavaScript EVM integration library sunset by ChainSafe in 2025. Existing applications need an inventory and tests to migrate queries, signing and events to maintained tools. Replacing the client library does not by itself change deployed contracts or addresses; migration checks data formats, transaction tracking and event recovery alongside API compatibility.

Written by Isaac GonzálezUpdated October 11, 2026

Key takeaways

  • Web3.js remains part of many inherited Ethereum integrations.
  • Review calls, events and dependencies before planning a migration.
  • Migration should preserve behaviour while improving maintainability.

What is Web3.js?

Web3.js is a JavaScript library for querying Ethereum and other EVM networks that remains in inherited applications. Its API covers RPC, contracts, accounts and utilities. Differences between package generations matter: a v1 integration does not necessarily behave like a v4 integration.

ChainSafe announced its sunset in 2025 and published migration guidance towards Ethers or Viem. Current work centres on identifying dependencies, preserving required behaviour and planning a tested transition to a maintained library rather than extending reliance on historical examples without checking their version.

How it works

Clients use HTTP, WebSocket or EIP-1193-compatible providers to access networks. Contracts are described by address and ABI. Versions differ in numeric formats, errors and APIs, so examples from another generation should not be assumed compatible with the installed package.

Subscriptions receive events but require reconnection and historical recovery after interruptions. Web3.js is a JavaScript project distinct from web3.py: provider names and AsyncWeb3 examples belong to Python and are not valid instructions for this library. Migration documentation needs to preserve that distinction.

What Web3.js offers

Migration starts with an inventory of reads, signatures, transaction submission, events and utilities. Each operation should retain a behavioural test covering response formats and expected errors. Components consuming those results should not change accidentally when the underlying client is replaced.

A bounded integration layer can support gradual migration. Compare balance reads and log decoding before changing signing flows, for example. State-changing transactions need particular attention to nonces, retries and receipt tracking so that the transition preserves operational behaviour as well as data formats.

Limitations and selection criteria

Temporary maintenance requires understanding support status and avoiding unjustified expansion of the dependency. Migration priority depends on exposure, versions and functions used; its duration cannot be estimated solely from the library name or a generic project size category.

The transition does not necessarily require changing deployed contracts. Its aim is to preserve interfaces and improve application maintainability. Verify unit conversion, errors, cancellations and event recovery, then remove old dependencies once they are no longer used by the project or its integration tools.

Also known as

  • web3
  • Web3.js v4
Development at Metlabs

How we approach a project with Web3.js

Development capabilities and use cases to assess how Web3.js fits your product.

What we build with Web3.js at Metlabs

  • Legacy dApp maintenance

    Support and evolution of frontends or backends depending on Web3.js.

  • Migration to Ethers/Viem

    We port legacy codebases to modern libraries keeping compatibility.

  • Reading and maintaining legacy code

    Inventory of versions, calls and formats to define a verifiable transition.

  • Use case

    2019 dApp upgrade

    Legacy Web3.js project that needs new features without breaking the existing base.

  • Use case

    Sunset exit plan

    We inventory Web3.js usage across a legacy codebase and plan a phased migration to Viem or Ethers without halting the product.

Related content

Go deeper on Web3.js

Other Metlabs pages that expand on this entry.

Building with Web3.js?

We analyze your case, pick the right stack and ship a production-ready solution.

Tell us about your project

As featured in

CointelegraphInvesting.comEl EspañolEmprendedoresEl ObservadorCriptoNoticias