6

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?

David Callanan
  • 5,601
  • 7
  • 63
  • 105

2 Answers2

5

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

Sumit Patel
  • 130
  • 11
  • Thanks, you lead me on the right track. I needed to add the following option when instantiating `WalletConnectProvider`: `rpc: {137: "https://matic-mainnet.chainstacklabs.com"}` from [the documentation](https://www.npmjs.com/package/@walletconnect/web3-provider#rpc-url-mapping). This seems to have fixed it. – David Callanan Oct 10 '21 at 18:25
  • Can you share the code? I am having the exact same error. I have tried adding rpc like this: ```const provider = new WalletConnectProvider({ rpc: { 43113: "https://api.avax-test.network/ext/bc/C/rpc" }, infuraId: INFURA_ID, }); ``` got another error: typeError e is not a contructor. – Mateen Kiani Jul 05 '22 at 12:01
2

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();

Mateen Kiani
  • 2,869
  • 2
  • 19
  • 29