The Great Migration to WalletConnect v2.0
Skolem is excited to announce that we now support WalletConnect v2.0! The WalletConnect v1.0 protocol was shut down on June 28th, 2023 at 2pm UTC, meaning dapps and wallets should be migrating to v2.0 as soon as possible.
For readers who may be unfamiliar, WalletConnect is a Web3 communication layer that standardizes connectivity between wallets and decentralized applications. WalletConnect serves as a critical piece of infrastructure to support wallet-to-dapp interoperability in DeFi. Skolem’s execution platform provides support for WalletConnect’s infrastructure, allowing our users to access on-chain opportunities with a simple connection from their Skolem account. This means that our users are able to utilize Skolem’s full, custodian-agnostic platform offerings across execution, simulation security, monitoring and data, books and records, and user and access controls while navigating the wild west of Web3.
So, what’s the difference between v1.0 and v2.0?
- Enhanced Multi-chain Support: The v2.0 user interface remains mostly unchanged from that of its predecessor’s, but the most striking difference is in v2.0’s enhanced multi-chain support. WalletConnect v2.0 enables dapps to stipulate a set of multiple chains within the scope of a session, and wallets respond with a success or error message based on compatibility. This is in contrast to v1.0 and Metamask’s browser extension, whereby each session tracked a single chainId, an accounts array, and wallets controlled the chainId while dapps followed.
- Chain-agnostic Interfaces: WalletConnect v1.0 was designed solely for EVM-compatibility, limiting opportunities with other ecosystems. The v2.0 upgrade brings in a set of permissioned JSON-RPC methods for each session, where a dapp can now confirm if the wallet can sign required transactions or messages for the chain it needs or detect support for experimental methods (e.g. eth_signTypedData).
- Defined Session Lifetimes: In v1.0, WalletConnect carried sessions indefinitely, causing clients to remain connected until manual disconnection triggers. The v2.0 upgrade introduces expiry timestamps, defaulted at seven days. Even if a client does not emit a disconnect event, the session will be automatically disconnected!
- Pairings and Sessions: A new feature that was not in v1.0 is pairings, which are special sessions used to propose new sessions, which have a default lifetime of 30 days. Thus, when a session expires or terminates, clients do not need to pair again if there is an active pairing. These pairings are longer in their lifetimes than sessions because pairings are meant to be reused for session proposals, and clients can request an infinite number of these session proposals between dapps and wallets.
- Single Client Design: WalletConnect v1.0 only allowed one session per client, each maintaining a WebSocket connection with the Relay (Bridge) server, leading to inefficiencies and complexity. WalletConnect v2.0 solves this by allowing a single client to manage multiple sessions via one WebSocket connection! This also allows clients to manage their storage to keep track of multiple sessions and pairings.
- Message Acknowledgement Improvements: WalletConnect v1.0 had a shortcoming where clients did not acknowledge received server messages or keep track of JSON-RPC requests. WalletConnect v2.0 solves this by allowing clients to track all JSON-RPC requests sent and received, ignore duplicates, and acknowledge received messages. This improves the session behavior and allows state restoration without interruption, regardless of the server or node that WalletConnect v2.0 is connected to.
WalletConnect v2.0 is designed to level up the Web3 user experience for mainstream adoption. WalletConnect is planning to build all kinds of new features on v2.0 (e.g. push notifications), ultimately to build towards the decentralized WalletConnect Network, a communications network anchored in the WalletConnect protocol.
Skolem is ready and excited to continue supporting WalletConnect on its journey so that our clients can continue to leverage its infrastructure to access Web3 in an interoperable way.