Wallet Connect: No RPC Url available for chainId: 137
Asked Answered
B

2

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?

Boykins answered 8/10, 2021 at 10:57 Comment(0)
S
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

Souther answered 10/10, 2021 at 16:24 Comment(2)
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. This seems to have fixed it.Boykins
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.Sisely
S
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();

Sisely answered 6/7, 2022 at 10:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.