Spent two years building web 2.0 mobile apps and was recently wondering why web3 wallet adoption is not higher. Desktop wallets (i.e. Metamask and Phantom) are a great introduction to the blockchain. However, it is inevitable that mobile wallets will have to be more popularized.
Rainbow, Zerion, Trust Wallet, and other wallets are paving the way for mobile-first wallet interactions. But under the surface, they are all powered by WalletConnect so I decided to dive deeper.
WalletConnect is an open-source protocol that connects various wallets and decentralized applications (dApps). By scanning a QR code or clicking a deep link, WalletConnect establishes a secure and encrypted connection. This is done without sharing your private key. Since 2018, over 170 wallets have been integrated with them, and is the common standard for wallet connection.
Previous to WalletConnect, developers were writing separate authorization code for wallet connections. So having a unified protocol that is open-sourced allows users to connect to web3 is a win.
Note: This information pertains to v1, as is susceptible to change in their new v2 version. See Docs.
Currently, the WalletConnect protocol has references implementations for (written in TypeScript):
To establish a connection between the dApp and Wallet, the client and bridge servers interface together. The push server is an optional service for push notification subscriptions.
The above diagram from their docs illustrates this process by:
Once the wallet and dApp are authenticated, the Bridge Server allows any JSON-RPC call requests. The push server for notifications can also be utilized here.
After examining how WalletConnect is the middleware for web3 wallets and dApps, I started to realize its importance. If the App Store or Google Playstore is not going to support native wev3 products, the best gateway is WalletConnect.
They are the “narrow waist” for the web3 Ecosystem. As outlined by Nichanan Kesonpat in “WalletConnect: The Narrow Waist Protocol Between Wallets & Dapps”, they are akin to the TCP/IP of the web3 era. They are agnostic to chains, wallets, and dApps which is what TCP allowed for the Internet era.
Looking at their current Github also helped to provide a snapshot of what is being built:
This assumes that V2 is of high priority whilst maintaining existing libraries /tools such as Web3Modal and Gotrue are being worked on.
At the end of last year, Walletconnect V2 features were announced and it is being released in Q3 2022. As detailed in the official article, V2 introduces:
With V2, they have acknowledged that the world is multi-chain (i.e. Cosmos, Solana, and Polkadot). Users from various ecosystems will be able to access dApps. Additionally, they have improved the login-session pattern and are working on decentralized chat. It will be interesting to see if web3 chat takes off.
Future of WalletConnect
It was interesting to dive deeper into a core infrastructure protocol. With V2, it will be great to see more multi-chain wallets and dApps, and web3 messaging.
Other Companies / Mainly wallets talking about WC