_section: Providers A **Provider** is an abstraction of a connection to the Ethereum network, providing a concise, consistent interface to standard Ethereum node functionality. The ethers.js library provides several options which should cover the vast majority of use-cases, but also includes the necessary functions and classes for sub-classing if a more custom configuration is necessary. Most users should be able to simply use the [[get-default-provider]]. _subsection: Default Provider @ The default provider is the safest, easiest way to begin developing on //Ethereum//, and it is also robust enough for use in production. It creates a [[provider-fallback]] connected to as many backend services as possible. When a request is made, it is sent to multiple backends simulatenously. As responses from each backend are returned, they are checked that they agree. Once a quorum has been reached (i.e. enough of the backends agree), the response is provided to your application. This ensures that if a backend has become out-of-sync, or if it has been compromised that its responses are dropped in favor of responses that match the majority. _property: ethers.getDefaultProvider([ network ]) => [[provider]] Returns a new Provider, backed by multiple services, connected to //network//. Is no //network// is provided, **homestead** (i.e. mainnet) is used. _subsection: Provider Documentation _toc: provider jsonrpc-provider api-providers other types