_title: Documentation _section: What is ethers? The ethers.js library aims to be a complete and compact library for interacting with the Ethereum Blockchain and its ecosystem. It was originally designed for use with [ethers.io](https://ethers.io/) and has since expanded into a much more general-purpose library. _subsection: Features - Keep your private keys in your client, **safe** and sound - Import and export **JSON wallets** (Geth, Parity and crowdsale) - Import and export BIP 39 **mnemonic phrases** (12 word backup phrases) and HD Wallets (English, Italian, Japanese, Korean, Simplified Chinese, Traditional Chinese; more coming soon) - Meta-classes create JavaScript objects from any contract ABI, including **ABIv2** and **Human-Readable ABI** - Connect to Ethereum nodes over [JSON-RPC](https://github.com/ethereum/wiki/wiki/JSON-RPC), [INFURA](https://infura.io/), [Etherscan](https://etherscan.io/), [Nodesmith](https://nodesmith.io), [Alchemy](https://alchemyapi.io), or [MetaMask](https://metamask.io/). - **ENS names** are first-class citizens; they can be used anywhere an Ethereum addresses can be used - **Tiny** (~88kb compressed; 284kb uncompressed) - **Complete** functionality for all your Ethereum needs - Extensive [documentation](https://docs.ethers.io/) - Large collection of **test cases** which are maintained and added to - Fully **TypeScript** ready, with definition files and full TypeScript source - **MIT License** (including //ALL// dependencies); completely open source to do with as you please _subsection: Developer Documentation _toc: getting-started concepts api cli cookbook migration testing contributing documentation license _subsection: Legacy Documentation This section will be kept up to date, linking to documentation of older versions of the library. - [version 4.0](https://docs.ethers.io/ethers.js) - [version 3.0](https://docs.ethers.io/ethers.js/v3.0/html/)