How to Prepare for the WalletConnect v1.0 Shutdown
EDIT: The shutdown was extended to June 28 (read about it here)
The massive migration to WalletConnect v2.0 has now entered the final stretch. With three weeks to go until the WalletConnect v1.0 shutdown, wallets and apps MUST upgrade before the M̶a̶r̶c̶h̶ ̶1̶ June 28 deadline in order to ensure continued connectivity for your users. Here is how you can proceed.
Wallets
Wallets are able to support both versions of WalletConnect in parallel, and we strongly suggest that you do at this time. This also means that you can go live on WalletConnect v2.0 immediately. Please refer to the wallet migration page in our docs for more details.
Step one: Integrate the Web3Wallet SDK.
- iOS wallets: Integrate the Web3Wallet SDK for Swift.
- Android wallets: Integrate the Web3Wallet SDK for Kotlin.
- React-Native wallets: Integrate the Web3Wallet SDK for JavaScript. Check out our examples on GitHub.
- Browser-based wallets: Integrate the Web3Wallet SDK for JavaScript. Check out our web examples on GitHub.
- Unity wallets: Integrate the Sign Client for Unity.
- Flutter wallets: Integrate the Sign Client for Flutter.
If you are a wallet that has already integrated WalletConnect Sign v2.0 or WalletConnect Auth v2.0, the process only takes minutes. Check out our blog post announcing the Web3Wallet SDK for a step-by-step explanation.
If you are a wallet that uses WalletConnect Sign v1.0, you can integrate the Web3Wallet SDK in parallel and use the URI version to route to the correct SDK per the EIP-1328 specification.
Step two: Test it out on Web3Modal Lab.
You’ll find examples of different Web3Modal configurations, ranging from Web3Modal v1.0 to Web3Modal v2.0 with wagmi as well as in standalone mode. This allows you to test every single scenario before deployment.
WalletConnect v2.0 supports multiple chains and has granular controls. We recommend that these scenarios be validated:
- Wallet handles namespaces that have extra or unsupported chains, methods, events via giving feedback to the user or still approving them to handle requests for supported cases or showing user feedback later on when performing requests for unsupported ones.
- Wallet handles disconnecting sessions correctly from both wallet and dapp side (also if this event occurs in the background i.e. user’s wallet is closed and they disconnect from dapp side. Wallet should cleanup and delete such sessions when it boots up by listening to appropriate events).
- Wallet handles signing requests and sends responses correctly. After connection is established, there is a test “sign message” action in the laboratory.
- Wallet sends the correct response when the user rejects connection. Not doing this results in web3modal not knowing when to refresh qr code / connection string for further connection attempts.
Have a wallet-specific migration question?
For support, please direct your questions to the “v1-to-v2 migration” thread in our Discord.
Apps
Unlike wallets, apps are unable to support both versions of WalletConnect in parallel. However, this doesn’t mean you have to wait for wallets in order to begin.
We recommend that apps integrate WalletConnect v2.0 immediately by setting up an experimental branch for testing before deploying it to production on M̶a̶r̶c̶h̶ ̶1̶ June 28. Please refer to the app migration page in our docs for more details. For a list of wallets already on WalletConnect v2.0, please refer to our Explorer.
Step one: Integrate the Web3Modal SDK.
Apps can migrate from WalletConnect v1.0 to WalletConnect v2.0 by simply replacing the package version on your package.json or checking the specific migration path for each package below.
- If you are using
@walletconnect/ethereum-provider
, simply change the version number to the latest available version. - If you are using
@walletconnect/web3-provider
, please change to@walletconnect/ethereum-provider
and ensure that you are using the latest available version. - If you are using Web3Modal v1.0, switch to Web3Modal v2.0. We have installation guides for React, HTML, and standalone mode. If you would like to continue using Web3Modal v1.0, upgrade the
@walletconnect/ethereum-provider
to WalletConnect v2.0 and make sure you use the latest available version. - If you are using our redesigned Web3Modal, enable WalletConnect v2.0 by using the feature flag
version: ‘2’
when injecting modal connectors. Check out the code snippet here. - If you are using
@walletconnect/react-native-dapp
, we currently don’t have an equivalent package for this but will publish a react-native version of Web3Modal in the coming months. In the meantime, you can list all the wallet mobile links from our Cloud Explorer API and integrate the latest available version of@walletconnect/ethereum-provider
.
Step two: Stage!
You can prepare for the shutdown by putting v2.0 support in staging and deploy it to production on M̶a̶r̶c̶h̶ ̶1̶ June 28.
Have an app-specific migration question?
For support, please direct your questions to the “web3modal” thread in our Discord.
Thank you for your support and please follow us on Twitter for the latest!
We would like to thank every single wallet and app that is undertaking this journey with us. There is no easy way to carry out a migration, and we appreciate the time and effort that you have put in. We firmly believe that WalletConnect v2.0, with its improved session management, multi-chain support, and other fantastic features, can help you offer your users an improved experience.
That’s why it’s time to shut down WalletConnect v1.0. WalletConnect v2.0 is the path forward.
To keep up with our announcements, join our Discord and follow us on Twitter. If you are a wallet or an app that is interested in integrating WalletConnect, head over to our website and explore our documentation.