Key takeaways
- Ethers.js provides clients for reading contracts, signing and submitting EVM transactions.
- Providers and signers separate network access from operation authorization.
- Version migrations require reviews of types, responses and error handling.
What is Ethers.js?
Ethers.js is a JavaScript and TypeScript library for interacting with EVM networks. It organises queries, signing and contracts through abstractions usable in web interfaces and backend services. It connects to network providers and accounts rather than operating blockchain infrastructure by itself.
Separating providers from signers distinguishes reading from authorisation. A service can query balances without holding signing keys, while state-changing operations require an account or wallet with the relevant permissions. This separation helps define which components need access to sensitive capabilities.
How it works
A provider retrieves network data and a signer authorises operations. A Contract object combines address and ABI with available reading or signing capabilities. In browsers, BrowserProvider adapts an EIP-1193 provider; HTTP node access uses a different configuration and should not be confused with wallet authorisation.
Ethers v6 uses native bigint instead of v5's familiar BigNumber. Migration requires checking imports, responses and conversions, particularly JSON serialization. Token amounts need decimal-aware handling rather than indiscriminate conversion to floating-point numbers that can lose precision for valid on-chain quantities.
What Ethers.js offers
A distribution backend can prepare transactions, request authorisation and track receipts. It retains nonce, hash, network and intended finality, distinguishing pending operations from reverts. Receiving a hash does not establish that the business process completed or the recipient received the asset.
Keeping Ethers in an existing application can avoid a migration without sufficient benefit. Tests should cover errors, network changes and formats consumed by other components. Library migration should compare behaviour at those boundaries rather than only the syntax of a successful read call.
Limitations and selection criteria
Library types do not establish that the ABI matches deployed implementation. Configuration should connect network, address and contract version. Simulations can detect reverts at a particular state, but that state may change before a transaction executes on the destination network.
Selection against Viem depends on existing integrations, ergonomics and team needs. Frontend size should be measured with actual imports and bundler settings. Generic kilobyte claims or style preferences do not replace evidence about application behaviour, integration compatibility and maintenance effort.
Also known as
- Ethers
- Ethers v5
- Ethers v6





