Supported Chains/Networks

We support EVM, Solana, Eclipse, Bitcoin, Flow, StarkNet, Cosmos and Algorand out of the box. If you don’t see the chain/network you need and it’s not EVM compatible, just let us know!

We also support all EVM networks. You can currently turn on many via the dashboard (simply go to the EVM tab in your dashboard and flip the toggle). For any not shown there, you can easily add them manually using our evmNetworks prop.

Enabling a Chain/Network

To integrate a specific chain/network, you should first enable it in the dashboard. You’ll also see that you can add custom RPC URLs for each network. 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:

NetworkPublic RPC Url
Ethereumhttps://cloudflare-eth.com
Optimismhttps://mainnet.optimism.io
Gnosis Chainhttps://rpc.gnosischain.com
Aurorahttps://mainnet.aurora.dev
Polygonhttps://polygon-rpc.com
Palmhttps://palm-mainnet.infura.io/v3/3a961d6501e54add9a41aa53f15de99b
BNB Smart Chainhttps://arb1.arbitrum.io/rpc
Solanahttps://api.mainnet-beta.solana.com
Eclipsehttps://mainnetbeta-rpc.eclipse.xyz

Once your chains are enabled and you’re happy with your RPC providers, you’re going to want to add the appropriate Wallet Connector to the Dynamic Context Provider that you integrated when getting started.

Each chain has it’s own wallet connector, and there are also some add on wallet connectors used to enable things like smart wallets. Follow the steps below and you’ll be up and running in no time!

1

Find the right packages

Below is a list of all the available wallet connectors and their corresponding packages.

Package NameChainWalletConnector to include
@dynamic-labs/ethereumEVMEthereumWalletConnectors
@dynamic-labs/algorandALGOAlgorandWalletConnectors
@dynamic-labs/solanaSOLSolanaWalletConnectors or SolanaWalletConnectorsWithConfig
@dynamic-labs/eclipseECLIPSEEclipseWalletConnectors or EclipseWalletConnectorsWithConfig
@dynamic-labs/flowFLOWFlowWalletConnectors
@dynamic-labs/starknetSTARKStarknetWalletConnectors
@dynamic-labs/cosmosCOSMOSCosmosWalletConnectors
@dynamic-labs/bitcoinBTCBitcoinWalletConnectors
EVM Addon Wallets
Package NameWhich WalletsWalletConnector to include
@dynamic-labs/magicmagicMagicWalletConnectors
@dynamic-labs/blocto-evmbloctoBloctoEvmWalletConnectors
@dynamic-labs/starknetSTARKStarknetWalletConnectors
@dynamic-labs/ethereum-aaZeroDevZeroDevSmartWalletConnectors

EthereumWalletConnectors (@dynamic-labs/ethereum) also includes all EVM compatible chains including layer 2’s i.e. Base as well as Dynamic Embedded Wallets.

2

Install the connectors

Install 1 or more wallet connectors from the packages listed above. Here is an example for Ethereum and Solana:

3

Add the connectors to DynamicContextProvider

Add to an array in your settings under walletConnectors. Here is an example for Ethereum and Solana:

import { DynamicContextProvider, DynamicWidget} from '@dynamic-labs/sdk-react-core';
import { EthereumWalletConnectors } from '@dynamic-labs/ethereum';
import { SolanaWalletConnectors } from '@dynamic-labs/solana';

const App = () => (
<DynamicContextProvider
    settings={{
    ...
    walletConnectors: [ EthereumWalletConnectors, SolanaWalletConnectors ],
        ...
    }}>
</DynamicContextProvider>
);

export default App;

Configurable Wallet Connectors

Some wallet connectors come with a configurable alternative. This is useful if you want to customize the wallet connector to your needs.

For example, you can pass a ConnectionConfig to set the commitement level or define HTTP request headers for Solana and Eclipse.

See an example of how to use the configurable wallet connector for Solana:

import { DynamicContextProvider } from '@dynamic-labs/sdk-react-core';
import { SolanaWalletConnectorsWithConfig } from '@dynamic-labs/solana';

<DynamicContextProvider
  settings={{
    walletConnectors: [
      SolanaWalletConnectorsWithConfig({
        commitment: 'confirmed',
        httpHeaders: {
          'X-Requested-With': 'XMLHttpRequest',
        },
      }),
    ],
  }}
>
  {...}
</DynamicContextProvider>

Here are our available configurable wallet connectors:

ChainWallet Connector with ConfigType of Wallet Connector with Config
SolanaSolanaWalletConnectorsWithConfig(connectionConfig: ConnectionConfig) => WalletConnector
EclipseEclipseWalletConnectorsWithConfig(connectionConfig: ConnectionConfig) => WalletConnector

ConnectionConfig is the object type that can be passed as second argument to @solana/web3.js’s Connection constructor. You can find more information about it here.

What next?

Click here to learn how to enable chains for embedded wallets!