钱包与网站建立会话时,除了约定「开放哪条链、哪几个账户、哪些方法」,还有两件常被默认拍板的事:RPC 接口以哪个版本文档为准,请求实际路由到哪些节点。编号 211 的草案把这两件事写进授权作用域里的 rpcDocuments 与 rpcEndpoints 两个有序数组,配 assumed、implicit、explicit 三层取值模型与冲突时按数组顺序定优先级的规则。本文拆解语法与安全考量。
钱包与网站建立会话时,除了约定「开放哪条链、哪几个账户、哪些方法」,还有两件常被默认拍板的事:RPC 接口以哪个版本文档为准,请求实际路由到哪些节点。编号 211 的草案把这两件事写进授权作用域里的 rpcDocuments 与 rpcEndpoints 两个有序数组,配 assumed、implicit、explicit 三层取值模型与冲突时按数组顺序定优先级的规则。本文拆解语法与安全考量。
CAIP-312 是仍处于草案阶段的会话查询规范:它给钱包定义了 wallet_getSession 方法,让应用在重连、断线恢复或发现权限记忆不一致时,直接问钱包要当前会话的真实授权清单。本文逐项拆解该方法的参数规则、三种注定失败的情形、返回的 scopeScopes 结构怎么读,以及它和断线补查纪律如何配合。
CAIP-285 是仍在草案阶段的会话撤销规范:它定义了 wallet_revokeSession 方法,把"撤销这个会话的全部授权"变成应用可以发起的显式协议动作,并给出带编号与不带编号两种撤销路径、真/假两种结果和三个专用错误码。本文拆解它的规格、与钱包内手动断开的区别,以及它管不到的链上授权。
CAIP-311 为草案阶段的会话规范补上反向通道:wallet_sessionChanged 事件让钱包在用户于钱包端调整会话授权后,主动向应用推送全量更新后的授权清单;连接断裂错过事件时,应用应立即调用 wallet_getSession 补查。本文解释该事件的载荷结构、全量而非增量的设计取舍,以及多链场景下的用户核对要点。
CAIP-217 定义了应用与钱包之间授权作用域的标准写法:以链标识为键的作用域对象,内含方法、通知、账户等数组字段,是会话握手、命令路由等一批协议的公共积木。本文逐字段拆解 scopeObject 的语法规则、references 字段的条件约束,以及普通用户读授权弹窗时能借它核对什么。
CAIP-316 是一份信息性最佳实践文档,用生命周期对照表讲清带 sessionId 与不带 sessionId 两种会话形态在初始化、重连、查询、撤销各步骤的等价做法。本文沿对照表走一遍六个步骤,解释为什么放松编号要求能简化单会话通道,以及用户的连接管理动作该如何对号入座。
CAIP-319 为钱包向应用推送通知定义了统一方法 wallet_notify:每条通知必须挂在一条先前授权的链作用域下,可附会话编号,接收方处理前应先校验作用域与方法是否在授权清单内。本文拆解其请求结构、与账户变化事件的区别,以及多链并发连接下防止串话的设计。
让钱包登录网站,过去要走“先连接账户、再签一条验证消息”两个请求。编号 222 的链无关协议把这两步打包成一次 wallet_authenticate 调用:应用在还不知道你地址的情况下就能发起,钱包返回一个或多个带签名的 CACAO 能力对象。本文拆解这条方法的参数表、返回结构、两个错误码与域绑定要求,并说清它和登录签名、会话连接的关系。
链上付款常见体验要么手动转账容易错,要么来回弹窗四五次。编号 358 的链无关协议定义了 wallet_pay 方法:商家在一个请求里把所有可接受的币种、链、金额和授权方式列成选项,钱包按用户余额挑一个最合适的完成支付,同一订单号还规定了幂等规则与四个错误码。本文按版本一的规范逐项拆解请求字段、七种转账类型、凭据回执与它明确不管的事。