Alert Source Discuss
Standards Track: ERC

ERC-1328: WalletConnect URI 格式

定义用于启动应用程序和钱包之间连接的 URI 格式

Authors ligi (@ligi), Pedro Gomes (@pedrouid)
Created 2018-08-15
Discussion Link https://ethereum-magicians.org/t/wallet-connect-eip/850

摘要

本标准定义了如何使用 URI 编码连接应用程序和钱包的数据。然后,此 URI 可以显示为 QR 码或链接。

规范

语法

带有以下参数的 WalletConnect 请求 URI:

request       = "wc" ":" topic [ "@" version ][ "?" parameters ]
topic         = STRING
version       = 1*DIGIT
parameters    = parameter *( "&" parameter )
parameter     = key "=" value
key           = STRING
value           = STRING

语义

所需参数取决于 WalletConnect 协议版本:

对于 WalletConnect v1.0 协议 (version=1),参数为:

  • key - 用于加密的对称密钥
  • bridge - 用于中继消息的桥接服务器的 URL

对于 WalletConnect v2.0 协议 (version=2),参数为:

  • symKey - 用于通过 relay 加密消息的对称密钥
  • methods - pairing topic 支持的 jsonrpc 方法
  • relay-protocol - 用于中继消息的传输协议
  • relay-data - (可选) 用于中继消息的传输数据
  • expiryTimestamp - (可选) pairing 过期的 Unix 时间戳(秒)

示例

# 1.0
wc:8a5e5bdc-a0e4-4702-ba63-8f1a5655744f@1?bridge=https%3A%2F%2Fbridge.walletconnect.org&key=41791102999c339c844880b23950704cc43aa840f3739e365323cda4dfa89e7a

# 2.0
wc:7f6e504bfad60b485450578e05678ed3e8e8c4751d3c6160be17160d63ec90f9@2?relay-protocol=irn&symKey=587d5484ce2a2a6ee3ba1962fdd7e8588e06200c46823bd18fbd67def96ad303&methods=[wc_sessionPropose],[wc_authRequest,wc_authBatchRequest]"&expiryTimestamp=1705934757

理由

此提案放弃了 WalletConnect 协议 alpha 版本中使用的 JSON 格式,因为它存在 QR 码意图解析效率非常低的问题,从而更容易为钱包创建更好的 QR 码解析器 API 来实现。此外,通过在 QR 码中使用 URI 而不是 JSON,可以利用 Android Intent 系统。

向后兼容性

作为此 URI 规范语法的一部分,需要进行版本控制,以允许 WalletConnect 协议发展,并在引入新版本时允许向后兼容。

安全考虑

URI 应在用户设备或应用程序之间共享,并且 URI 中不应共享任何可能损害通信或允许控制用户私钥的敏感数据。

版权

版权及相关权利通过 CC0 放弃。

Citation

Please cite this document as:

ligi (@ligi), Pedro Gomes (@pedrouid), "ERC-1328: WalletConnect URI 格式," Ethereum Improvement Proposals, no. 1328, August 2018. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-1328.