# CASA Gathering #2 CAIP-25 Workshop ## Issue 1: Extensions Considered Harmful? Current CAIP-25 handshake format: ```json { "eip155": { "chains": ["eip155:137", "eip155:1"], "methods": ["eth_sign"], "events": ["accountsChanged"], "extensions": [ { "chains": ["eip155:137"], "method": ["personalSign"], "events": ["chainChanged"] } ] }, "cosmos": { "chains": ["cosmos:cosmoshub-4"], "methods": ["cosmos_signDirect"], "events": ["someCosmosEvent"] } } ``` Proposed new/alternative CAIP-25 handshake: ```json { "eip155:1": { "methods": ["eth_sign"], "events": ["accountsChanged"], }, "eip155:137": { "methods": ["eth_sign", "personalSign"], "events": ["accountsChanged", "chainChanged"], }, "cosmos": { "chains": ["cosmos:cosmoshub-4", "cosmos:cosmoshub-5"], "methods": ["cosmos_signDirect"], "events": ["someCosmosEvent"] } } ``` ## Issue 2: Wallet Clients Need a Namespace? No, they don't. By the time you make a CAIP-25 handshake, you are already talking to the wallet using methods implemented by it. kumavis: - I think we are mixing up the CAIP-2 chainId namespaces and the "JSON-RPC feature set" namespaces. ## Issue 3: Multiple Handshakes - CAIP-25 MUST specify what happens when the third party (e.g. a dapp) makes multiple successive handshakes. - In particular, CAIP-25 SHOULD allow the third party to ask for more "capabilities" after the initial handshake. - In WalletConnectV2, you can clear the current session or "update" it with a new handshake. - CAIP-25 MUST specify how nuke/clear/undo the handshake. - You can do this in WalletConnectV2. ## Issue 4: Session Expiry - Should CAIP-25 handshakes expire or be able to expire? - In WalletConnectV2, sessions expire after 7 days. ## Issue 5: The handshake is not a handshake "Handshake" has particular meanings that may mislead people about what the CAIP-25 handshake is doing. ## Issue 6: Accounts and CAIP-25 1. Should the third party have to explicitly ask for accounts in the CAIP-25 handshake? 2. Should the CAIP-25 handshake return accounts on a successful result at all? - Maybe accounts are orthogonal to CAIP-25? - In WalletConnectV2, if `eth_accounts` is not in the `methods` array, the connection request will fail before any prompt is displayed to the user. ## Participants - @rekmarks, Erik Marks - @kumavis - @bkrem, Ben Kremer (WalletConnect) - @ganchoradkov, Gancho Radkov (WalletConnect) - @FrederikBolding, Frederik Bolding - @avivash, Andy Vivash - @orenyomtov, Oren Yomtov - @arikblocks, Arik Galansky - @bumblefudge - @pellicceama - @matheus23, Philipp Krüger - @alexandrumatei36, Alex Matei ## TODO - Rewrite this into thing that can get posted to GitHub - Invite to follow-up meeting (in addition to WalletConnect): - Eva Shon (Filecoin)