Skip to main content


At the heart of WalletConnect is a relay server that transmits encrypted payloads between wallets and dapps. Our protocol establishes a remote pairing between two apps and/or devices using a relay server to relay payloads. You can run your own open source relay server, or use our cloud offering to get started right away.

The WalletConnect Cloud web app is available at, and is a developer portal to manage WalletConnect services and access.

It can be used for the following services:

  • Project management for generating projectId's for public relay server access
  • Regsitry management for creating and registry listings

Project ID

How to implement

The Project ID is consumed through URL parameters.

URL parameters used:

Example URL:

This can be instantiated from the client with the projectId in the WalletConnectClient constructor.

import WalletConnectClient from "@walletconnect/client";
const client = await WalletConnectClient.init({
projectId: "c4f79cc821944d9680842e34466bfb",


Since most of the wallet and dapp code will be client side, the security of the Project ID depends on the proper implementation of User Agent and HTTP Origin for wallets.


User Agent for wallets.

TODO insert screenshot of Allowlist for User Agent.



Website Origin.

TODO insert screenshot of Allowlist for HTTP Origin.

Error Codes

ReasonError Code
Project ID doesn't exist401
Exists and is invalid403