Public
The publicProvider
configures the chains with a public RPC URL and also provides an ethers.js getpublicProvider
.
import { publicProvider } from 'wagmi/providers/public'
Usage
import { chain, configureChains } from 'wagmi'
import { publicProvider } from 'wagmi/providers/public'
const { chains, provider } = configureChains(
[chain.mainnet, chain.polygon],
[publicProvider()],
)
Only having publicProvider
in your providers will make the chain use the
public RPC URL which could lead to rate-limiting. It is recommended to also
include another provider in your list (such as: alchemyProvider
,
infuraProvider
or jsonRpcProvider
).
Return Value
{
chains: Chain[],
provider: BaseProvider,
webSocketProvider: WebSocketProvider
}
Configuration
pollingInterval (optional)
The frequency in milliseconds at which the provider polls.
import { chain, configureChains } from 'wagmi'
import { publicProvider } from 'wagmi/providers/public'
const { chains, provider } = configureChains(
[chain.mainnet, chain.polygon],
[publicProvider({ pollingInterval: 5000 })],
)
priority (optional)
The priority used for the provider. Lower-value priorities are favoured over higher-value priorities. If multiple providers share the same priority, they are chosen at random.
import { chain, configureChains } from 'wagmi'
import { publicProvider } from 'wagmi/providers/public'
const alchemyId = process.env.ALCHEMY_ID
const { chains, provider } = configureChains(
[chain.mainnet, chain.polygon],
[
alchemyProvider({ alchemyId, priority: 0 }),
publicProvider({ priority: 1 }),
],
)
stallTimeout (optional)
The timeout in milliseconds after which another provider will be attempted.
import { chain, configureChains } from 'wagmi'
import { publicProvider } from 'wagmi/providers/public'
const alchemyId = process.env.ALCHEMY_ID
const { chains, provider } = configureChains(
[chain.mainnet, chain.polygon],
[
alchemyProvider({ alchemyId, stallTimeout: 1000 }),
publicProvider({ stallTimeout: 1000 }),
],
)
weight (optional)
The weight a response from this provider provides. This can be used if a given provider is more trusted.
import { chain, configureChains } from 'wagmi'
import { publicProvider } from 'wagmi/providers/public'
const alchemyId = process.env.ALCHEMY_ID
const { chains, provider } = configureChains(
[chain.mainnet, chain.polygon],
[alchemyProvider({ alchemyId, weight: 1 }), publicProvider({ weight: 2 })],
)