Provider Configuration

In the upcoming documents, you will see that we are passing the provider argument whenever we perform a write operation on the blockchain. You may want to create a standalone provider.js file and reuse it whenever required.

JSON RPC Provider

import { ethers } from 'ethers'
import dotenv from 'dotenv'
dotenv.config()
const getProvider = () => {
const provider = new ethers.providers.JsonRpcProvider(process.env.RPC)
return new ethers.Wallet(process.env.PRIVATE_KEY, provider)
}
export { getProvider }

Web3 Provider (Metamask, Trust Wallet, Coinbase Wallet, etc)

import { ethers } from 'ethers'
const getProvider = () => {
return new ethers.providers.Web3Provider(window.ethereum)
}
export { getProvider }

Other Providers

Based on your setup, you may want to create a custom provider or signer. Read the ethers.js documentation to learn more.