-----

Documentation: [html](https://docs-beta.ethers.io/)

-----


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.


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


Developer Documentation
-----------------------



* [Getting Started](getting-started)
  * [Installing](getting-started)
  * [Importing](getting-started)
* [Concepts](concepts)
  * [Events](concepts/events)
    * [Solidity Topics](concepts/events)
  * [Gas](concepts/gas)
    * [Gas Price](concepts/gas)
    * [Gas Limit](concepts/gas)
* [Application Programming Interface](api)
  * [Contracts](api/contract)
    * [Buckets](api/contract)
  * [Signers](api/signer)
    * [Signer](api/signer)
    * [Wallet inherits Signer](api/signer)
  * [Providers](api/providers)
    * [Provider](api/providers/provider)
      * [Accounts Methods](api/providers/provider)
      * [Blocks Methods](api/providers/provider)
      * [Ethereum Naming Service (ENS) Methods](api/providers/provider)
      * [Logs Methods](api/providers/provider)
      * [Network Status Methods](api/providers/provider)
      * [Transactions Methods](api/providers/provider)
      * [Event Emitter Methods](api/providers/provider)
      * [Inspection Methods](api/providers/provider)
    * [JSON-RPC Provider](api/providers/jsonrpc-provider)
      * [JsonRpcProvider](api/providers/jsonrpc-provider)
      * [JsonRpcSigner](api/providers/jsonrpc-provider)
      * [JsonRpcUncheckedSigner](api/providers/jsonrpc-provider)
    * [API Providers](api/providers/api-providers)
      * [EtherscanProvider](api/providers/api-providers)
      * [InfuraProvider](api/providers/api-providers)
      * [NodesmithProvider](api/providers/api-providers)
      * [AlchemyProvider](api/providers/api-providers)
      * [CloudfrontProvider](api/providers/api-providers)
    * [Other Providers](api/providers/other)
      * [FallbackProvider](api/providers/other)
      * [IpcProvider](api/providers/other)
    * [Types](api/providers/types)
      * [Blocks](api/providers/types)
      * [Events and Logs](api/providers/types)
      * [Transactions](api/providers/types)
  * [Utilities](api/utils)
    * [Addresses](api/utils/address)
    * [BigNumber](api/utils/bignumber)
      * [Types](api/utils/bignumber)
      * [Creating Instances](api/utils/bignumber)
      * [Methods](api/utils/bignumber)
      * [Notes](api/utils/bignumber)
    * [Byte Manipulation](api/utils/bytes)
      * [Types](api/utils/bytes)
      * [Inspection](api/utils/bytes)
      * [Converting between Arrays and Hexstrings](api/utils/bytes)
      * [Array Manipulation](api/utils/bytes)
      * [Hexstring Manipulation](api/utils/bytes)
      * [Signature Conversion](api/utils/bytes)
    * [Constants](api/utils/constants)
      * [Bytes](api/utils/constants)
      * [Strings](api/utils/constants)
      * [BigNumber](api/utils/constants)
    * [Display Logic and Input](api/utils/display-logic)
      * [Units](api/utils/display-logic)
      * [Functions](api/utils/display-logic)
    * [FixedNumber](api/utils/fixednumber)
      * [Types](api/utils/fixednumber)
      * [Creating Instances](api/utils/fixednumber)
      * [Properties](api/utils/fixednumber)
      * [Methods](api/utils/fixednumber)
    * [Hashing Algorithms](api/utils/hashing)
      * [Cryptographic Hashing](api/utils/hashing)
      * [Common Hashing Helpers](api/utils/hashing)
      * [Solidity Hashing Algorithms](api/utils/hashing)
    * [Strings](api/utils/strings)
      * [Bytes32String](api/utils/strings)
      * [UTF-8 Strings](api/utils/strings)
* [Cookbook](cookbook)
* [Migration Guide](migration)
  * [From Web3](migration)
  * [From ethers v4](migration)
* [Testing](testing)
* [Contributing and Hacking](contributing)
  * [Building](contributing)
* [Flatworm Docs](documentation)
  * [Fragments](documentation)
  * [Markdown](documentation)
* [License and Copyright](license)


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/)



-----
**Content Hash:** f1da4df3feeb06a567657ae41d8498ea3315f68d05dc2f9e86c2858b5d2b2f89