Using RPC Providers
Summary
Rpc providers can be used to make RPC calls to the blockchain while also providing convenience methods without going through a wallet.
Each provider will use the RPC configured in the Dashboard if present, otherwise they fall back to public RPCs urls. By default, all EVM and Solana networks have public default providers as shown in this table:
Network | Public RPC Url |
---|---|
Ethereum | https://cloudflare-eth.com |
Solana | https://api.mainnet-beta.solana.com |
Optimism | https://mainnet.optimism.io |
Gnosis Chain | https://rpc.gnosischain.com |
Aurora | https://mainnet.aurora.dev |
Polygon | https://polygon-rpc.com |
Palm | https://palm-mainnet.infura.io/v3/3a961d6501e54add9a41aa53f15de99b |
BNB Smart Chain | https://arb1.arbitrum.io/rpc |
Dashboard Configuration
To enter your provider url for a given network:
- Go to the Chains & Networks page in your Dashboard.
- Click on the chain to open the details tab
- Click the down down arrow to expand a network
- Enter your Provider Url
- Click the test button to check url
Usage
You get the provider from the useDynamicContext
hook.
const { rpcProviders } = useDynamicContext();
The rpcProvider is an object with the following fields:
export type DynamicRPCProviders = {
evmDefaultProvider: EvmRpcProvider | undefined;
evmProviders: EvmRpcProvider[] | undefined;
getEvmRpcProviderByChainId: (chainId: number) => EvmRpcProvider | undefined;
solanaDefaultProvider: SolanaRpcProvider | undefined;
solanaProviders: SolanaRpcProvider[] | undefined;
};
Expanding on the EVM providers, there are 3 fields/methods:
- evmDefaultProvider: This returns a provider for Ethereum Mainnet if mainnet is enabled
- evmProviders: Is a full list of all EVM providers that have been configured
- getEvmRpcProviderByChainId: a convenience method that lets you retrieve a provider for a specific Chain ID
export type EvmRpcProvider = {
chainId: number;
chainName: string;
provider: ethers.providers.JsonRpcProvider;
};
Solana Providers
Expanding on the Solana providers, there are 2 fields/methods:
- solanaDefaultProvider: Returns the provider for Solana Mainnet (101)
- **solanaProviders:**Is a full list of all Solana providers that have been configured
These providers are also available on the WalletConnector through getRpcProvider
export type SolanaRpcProvider = {
chainId?: number;
chainName: string;
provider: Connection;
};
Example
Below is a simple example to fetch an arbitrary ENS mapping:
const mainnetProvider = rpcProviders.evmDefaultProvider?.provider;
const ensAddress = mainnetProvider.resolveName('myname.eth');
console.log('address for myname.eth', ensAddress);
Was this page helpful?