_section: Documentation _subsection: 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](link-ethersio) 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](link-jsonrpc), [INFURA](link-infura), [Etherscan](link-etherscan), [Alchemy](link-alchemy), [Cloudflare](link-cloudflare) or [MetaMask](link-metamask). - **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](link-ethers-docs) - 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](link-legacy-docs4) - [version 3.0](link-legacy-docs3)