WC v2 Proposal namespaces with respect of smart contract wallets #2733
-
More users currently are starting using smart contract wallets multichain, especially safe multisig. Smart contract wallet can be deployed selectively on specific chain. Current implementation of @walletconnect/ethereum-provider doesn't respect this and sends ethereum mainnet as required network. See Dapp should be able to send proposal without required chains and not empty optional chains. According to CAIP-25 required chains are optional. The requiredScopes array MUST contain 1 or more scopeObjects, if present. References: Steps to reproduce:
Expected:
Expected: |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 11 replies
-
@niallkh hey - this is actually something that has come to our attention and we will be making an update to allow empty chains soon. |
Beta Was this translation helpful? Give feedback.
-
Hello @finessevanes, we encountered the same issue when migrating to v2 with our smart contract wallet, and it prevented us from connecting to any dapp. It's crucial to address this issue and allow for empty chains in order to ensure compatibility with smart wallets. However, it's worth noting that smart contract wallets are often treated as second-class citizens on EVM equivalent chains. Dapp developers typically assume that an externally owned account (EOA) is connected and that the wallet can defaults to Ethereum mainnet, even when accessed on a different chain on the dapp interface. Consequently, they include it in the required namespaces. Uniswap, SushiSwap, Galxe, Slingshot, Furucombo, and several other dapps follow this behavior. Additionally, we discovered some dapps that specifically request support for methods that are specific to EOAs, such as While I understand the purpose of namespaces, I'm unsure if WalletConnect should make adjustments in this regard. However, it would be beneficial to have warnings in the WalletConnect documentation and best practices on how to support smart contract wallets, such as:
We do need help asap communicating this during the migration phase so that dapps don't default on this behavior. We are ready to help on docs, or message. |
Beta Was this translation helpful? Give feedback.
-
From smart contract wallets like Safe, the current approach has its usability limitations. It often becomes overly restrictive, particularly when a DApp initiates a session proposal including some typical scenarios which result in connection failure:
These are frequently encountered scenarios, and the present behavior results in limitations on the user experience and the overall adoption of WalletConnect with smart contract wallets. As a temporary solution, we are “misrepresenting” our compatibility to the DApp by accepting all events like |
Beta Was this translation helpful? Give feedback.
-
@niallkh Hey there, Fellow developer here. Have you implemented smart accounts with walletconnect, |
Beta Was this translation helpful? Give feedback.
@niallkh hey - this is actually something that has come to our attention and we will be making an update to allow empty chains soon.