WalletConnect 会话不是简单的已连接布尔值。Session Namespaces 同时约束链、账户、方法和事件;只看账户地址而忽略方法集合,容易把只读会话误当成可签名会话。
required 与 optional 分开提案
Dapp 在 requiredNamespaces 声明必需能力,钱包无法满足其中任一链、method 或 event 时应拒绝;optionalNamespaces 是可选择支持的附加能力。示例要求以太坊主网发送交易和 personal_sign,Polygon 的 typed-data 签名放在可选区:
{
"requiredNamespaces": {
"eip155": {
"chains": ["eip155:1"],
"methods": ["eth_sendTransaction", "personal_sign"],
"events": ["accountsChanged", "chainChanged"]
}
},
"optionalNamespaces": {
"eip155": {"chains": ["eip155:137"], "methods": ["eth_signTypedData_v4"], "events": []}
}
}
钱包不能擅自补能力
返回 accounts 应采用 CAIP-10,例如 eip155:1:0x…;methods 与 events 必须落在已批准集合。钱包可少给 optional 能力,但不能加入 Dapp 未请求的链或签名方法。调用未批准方法时,Dapp 应收到明确错误并回到重新提案。
用户端核对顺序
先看域名与会话来源,再逐条核对链、账户、可签方法和监听事件;跨链场景分别确认每条链的账户。任务结束后在钱包删除会话,避免长期连接残留。
会话建立后,Dapp 发送请求前还要把 chainId 与 session 中的批准链比较;账户切换或链切换事件只更新现场,不会自动扩展 namespace。收到未授权方法、过期 topic 或不匹配链的错误时,应结束该次调用并发起新的明确授权。
WalletConnect Session Namespaces:先固定不会漂移的判断
- WalletConnect会话提案通过requiredNamespaces和optionalNamespaces表达需要或可选的链、方法与事件能力,钱包批准后生成会话namespace。
- 会话中的accounts、methods与events必须与批准范围一致;钱包应拒绝不支持的必需能力,并只批准用户实际需要的链和方法。
- 会话授权只允许后续发送相应请求,不等于交易或签名已经获批;每次资金或签名动作仍需单独显示内容并由用户确认。(有限确认)
保存WalletConnect Session Namespaces记录时别漏这些字段
保留对象标识、网络、版本、访问时间,以及提案到会话映射、链方法事件矩阵、最小批准流程的原始输入输出。截图辅助说明,结构化字段用于重放。
WalletConnect Session Namespaces:先确定本页覆盖什么
| 顺序 | 核心问题 | 可执行目标 |
|---|---|---|
| 1 | 提案到会话映射 | 用提案到会话映射直接回答搜索意图并形成可执行核验信息。 |
| 2 | 链方法事件矩阵 | 用链方法事件矩阵直接回答搜索意图并形成可执行核验信息。 |
| 3 | 最小批准流程 | 用最小批准流程直接回答搜索意图并形成可执行核验信息。 |
| 4 | 逐笔确认边界 | 用逐笔确认边界直接回答搜索意图并形成可执行核验信息。 |
WalletConnect Session Namespaces的证据出处
- WalletConnect Session Namespaces的一级来源 1:WalletConnect Docs。用于正式字段、流程或产品说明
- WalletConnect Session Namespaces的一级来源 2:WalletConnect Best Practices。用于实现路径、比较基准或风险边界
与WalletConnect Session Namespaces直接相邻的站内主题
- WalletConnect Verify能防钓鱼吗?:补充第1项相邻知识。
- CAIP-19如何避免跨链混淆?:补充第2项相邻知识。
WalletConnect Session Namespaces的当前部署若与文档不一致,应先确认版本再操作。
WalletConnect Session Namespaces:环境变化后的失效点
不同钱包对可选namespace、会话更新和过期处理的界面不同,集成应以协议错误码和实际session状态为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。