# 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)