Walletconnect Association is the company behind WalletConnect, an open protocol designed to enable secure communication between wallets and dApps (Web3 apps).
Walletconnect Association is the company behind WalletConnect, an open protocol designed to enable secure communication between Walletswallets and DappsdApps (Web3 Appsapps).
November 3, 2022
Walletconnect Association is a company founded in 2018 by Pedro Gomes and is the company behind WalletConnect, an open protocol designed to enable secure communication between Wallets and Dapps (Web3 Apps).
Company
Walletconnect Association is a company founded in 2018 by Pedro Gomes and is the company behind WalletConnect, an open protocol designed to enable secure communication between Wallets and Dapps (Web3 Apps).
WalletConnect is an open protocol to communicate securely between Wallets and Dapps (Web3 Apps). The protocol establishes a remote connection between two apps and/or devices using a Bridge server to relay payloads. These payloads are symmetrically encrypted through a shared key between the two peers. The connection is initiated by one peer displaying a QR Code or deep link with a standard WalletConnect URI and is established when the counter-party approves this connection request. It also includes an optional Push server to allow Native applications to notify the user of incoming payloads for established connections.
The architecture consists essentially of a websocket server (Bridge) between two peers (Dapp and Wallet) that use the Client.
The initiator, is the first peer who requests connection (Dapp). Dapp posts an encrypted payload consisting of one-time topic (used for handshake only) and connection request details to the Bridge Server. Then using the WalletConnect Standard URI format (EIP-1328) Dapp assembles together the required parameters to establish the connection: (handshake) topic, bridge (url) and (symmetric) key.
Other query string parameters are all optional.
// Example URL
wc:8a5e5bdc-a0e4-4702-ba63-8f1a5655744f@1?bridge=https%3A%2F%2Fbridge.walletconnect.org&key=41791102999c339c844880b23950704cc43aa840f3739e365323cda4dfa89e7a
The second peer (Wallet) will read the URI using either a QR Code or a deep link. After reading the URI the peer will immediately receive and decrypt the connection request payload.
The Wallet will then display to the user request details provided by the Dapp. The user will then approve or reject the connection. If rejected, the Dapp will disconnect from the Bridge Server immediately and throw an error message if provided by the Wallet. If approved, the Dapp will receive provided account and chainId from the Wallet.
Once the connection is established, the Dapp will be able to send any JSON-RPC call requests to be handled by the Wallet either to read data from its node or make signing requests for transactions or messages.
Additionally, there is an option from the Wallet side to subscribe for push notifications using a Push Server. This push notification subscription will be registered only when connection request has been approved by the user. This subscription can be customized with varying degrees of privacy. It can either display a generic message, include the name of the peer making the request or even display a localized message. (read Push Notifications sections for more details)