ERC-1328: WalletConnect URI Format Ethereum Improvement Proposals AllCoreNetworkingInterfaceERCMetaInformational šŸ“¢ Last Call Standards Track: ERC ERC-1328: WalletConnect URI Format Define URI format for initiating connections between applications and wallets Authors ligiĀ (@ligi), Pedro GomesĀ (@pedrouid) Created 2018-08-15 Last Call Deadline 2024-02-07 This EIP is in the process of being peer-reviewed. If you are interested in this EIP, please participate using this discussion link. Table of Contents Abstract Specification Syntax Semantics Example Rationale Backwards Compatibility Security Considerations Copyright Abstract This standard defines how the data to connect some application and a wallet can be encoded with a URI. This URI can then be shown either as a QR code or as a link. Specification Syntax WalletConnect request URI with the following parameters: request = "wc" ":" topic [ "@" version ][ "?" parameters ] topic = STRING version = 1*DIGIT parameters = parameter *( "&" parameter ) parameter = key "=" value key = STRING value = STRING Semantics Required parameters are dependent on the WalletConnect protocol version: For WalletConnect v1.0 protocol (version=1) the parameters are: key - symmetric key used for encryption bridge - url of the bridge server for relaying messages For WalletConnect v2.0 protocol (version=2) the parameters are: symKey - symmetric key used for encrypting messages over relay methods - jsonrpc methods supported for pairing topic relay-protocol - transport protocol for relaying messages relay-data - (optional) transport data for relaying messages expiryTimestamp - (optional) unix epoch in seconds when pairing expires Example # 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 Rationale This proposal moves away from the JSON format used in the alpha version of the WalletConnect protocol because it suffered from very inefficient parsing of the intent of the QR code, thereby making it easier to create better QR code parsers APIs for wallets to implement. Also by using a URI instead of JSON inside the QR-Code the Android Intent system can be leveraged. Backwards Compatibility Versioning is required as part of the syntax for this URI specification to allow the WalletConnect protocol to evolve and allow backwards-compatibility whenever a new version is introduced. Security Considerations URIs should be shared between user devices or applications and no sensitive data is shared within the URI that could compromise the communication or would allow control of the user’s private keys. Copyright Copyright and related rights waived via CC0. Citation Please cite this document as: ligiĀ (@ligi), Pedro GomesĀ (@pedrouid), "ERC-1328: WalletConnect URI Format [DRAFT]," Ethereum Improvement Proposals, no. 1328, August 2018. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-1328. Ethereum Improvement Proposals Ethereum Improvement Proposals ethereum/EIPs Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.