Wallet Connect: No RPC Url available for chainId: 137

15.3k Views Asked by At

enter image description here

I am trying to create a WalletConnect provider.

I am using the @walletconnect/web3-provider package along with Web3Modal for UI.

I am instantiating the WalletConnectProvider using my Infura client ID

let web3Modal = new Web3Modal({
    network: "matic",
    cacheProvider: true,
    providerOptions: {
        walletconnect: {
            package: WalletConnectProvider,
            options: {
                infuraId: "c22c90a767684c5fbd7257da57802b35" ,
            },
        },
    },
});

web3Modal.clearCachedProvider();
await web3Modal.connect();

When I run my app and connect my wallet, I get the following error:

Error: No RPC Url available for chainId: 137

I am trying to connect to the Polygon network (which is chainId 137).

Infura does seem to support the Polygon Mainnet chain.

Also, I have this chain added to my MetaMask mobile wallet, which is the wallet I am using when connecting to WalletConnect.

So it should work..

Any ideas how to fix this?

2

There are 2 best solutions below

2
On BEST ANSWER

You can try using this RPC URL - https://matic-mainnet.chainstacklabs.com

More references can be found here - https://github.com/maticnetwork/static/blob/master/network/mainnet/v1/index.json

0
On

I was facing the exact same issue. Here is how I resolved this error:

import WalletConnectProvider from '@walletconnect/web3-provider';
import Web3Modal from 'web3modal';
const options = new WalletConnectProvider({
  rpc: {
    137: 'https://matic-mainnet.chainstacklabs.com',
  },
  infuraId: INFURA_ID,
});

const providerOptions = {
  walletconnect: {
    package: WalletConnectProvider, // required
    options: options,
  },
};
const web3Modal = new Web3Modal({
    network: 'mainnet',
    cacheProvider: true,
    providerOptions, 
  });
}

const provider = await web3Modal.connect();