WalletConnect is an open protocol to communicate securely between Dapps and Wallets. The protocol establishes a remote pairing between two apps and/or devices using a Relay server to relay payloads. These payloads are symmetrically encrypted through a shared key between the two peers. The pairing 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 pairing request.
Currently the WalletConnect protocol has references implementations written in Typescript for the Client and the Relay Server
To quickly setup for your Dapp or Wallet, go to Quick Start section for code examples.
To read in more detail about the WalletConnect protocol, go to Technical Specification
WalletConnect v2 is a complete rewrite and has many new features and advantages. Here are some new additions:
Interoperate with any blockchain. Support new blockchains and rollups out-of-the-box.
Connect to a wallet with one or more chains simultaneously and send transactions to different chains at the same time. No more chain switching.
Manage as many sessions as needed. A flexible API is provided to build the desired UX.
Establishes multiple sessions from a single pairing. Only one connection for an infinite number of sessions.
Websocket management efficiently re-uses resources to multiplex all messages through a single socket without interruption.
Message relaying now uses Waku network to gossip messages through all nodes. No more depending on centralized servers.
Explicitly require wallets to meet compatibility with all signing methods that your dapp requires.
Smarter caching mechanisms guarantee message delivery in more diverse network conditions.
Works everywhere across desktop apps, browser apps, mobile apps, gaming apps and much more.
Here are some demos that you can use to try the protocol yourself
Share your experience, contribute or ask questions with the WalletConnect Community