跳至内容
0%

什么是 WalletConnect?

Alchemy team headshot

作者 Alchemy

发布于 2022年4月30日2 分钟阅读

WalletConnect 是一个单次集成的开源协议。开发者可以使用 WalletConnect,让超过 300 种钱包的用户登录他们创建的去中心化应用。这些应用托管在 Ethereum 等去中心化网络上。

本文将介绍 WalletConnect 在生态系统中扮演的重要角色、该协议的技术细节,以及如何使用该应用。

为什么要用 WalletConnect 连接钱包?

以前,Ethereum 开发者需要为每个 Web3 加密钱包单独开发集成,以便钱包用户登录他们的应用。然而,这使得 Ethereum 生态系统集中在 MetaMask 周围,因为开发者不太可能为用户基数小的小众钱包编写集成代码,这对新钱包的早期采用者不利。

WalletConnect 改变了这一局面,用户只需一次集成的成本即可使用超过 300 种不同的钱包。如今,超过 3000 个应用提供 WalletConnect 作为登录选项,其中包括生态系统中一些最大的应用,例如 Uniswap、OpenSea 和 Rarible。

WalletConnect 让开发者能够轻松地向各类钱包的用户开放自己的应用,从而推动了钱包设计和功能方面创造力的爆发。该协议体现了加密货币去中心化权力、实现新型用户体验的理念。

WalletConnect 支持哪些链?

WalletConnect 支持广泛的链,包括但不限于 Ethereum、Cosmos、Polkadot、Near、Solana、Celo 以及 Binance Smart Chain。完整的已知兼容区块链列表,请参阅 WalletConnect 文档。

哪些钱包与 WalletConnect 兼容?

WalletConnect 兼容不同平台上超过 300 种钱包。一些常见的兼容钱包包括:

  • Metamask
  • ‍Rainbow
  • ‍Crypto.com DeFi Wallet
  • Argent Wallet
  • ‍Gnosis Safe MultiSig Wallet
  • Trust Wallet
  • Ledger
  • Coinbase Wallet

如何使用 WalletConnect?

本节提供了如何使用 WalletConnect 将钱包连接到去中心化应用(dApp)的完整分步指南。按照这里的说明操作,你可以轻松地在钱包和任何兼容 WalletConnect 的 dApp 之间建立连接,从而顺畅地与该 dApp 交互。

1. 使用 WalletConnect 连接到 dapp

打开一个兼容 WalletConnect 的 dApp。本教程分别以 Uniswap(一个去中心化金融应用)和 Rainbow 作为 dApp 和钱包示例。不过,这些说明适用于任何兼容 WalletConnect 的 dApp 和钱包。首先,点击“Connect Wallet”按钮。

Uniswap 界面中的 Connect Wallet 按钮

2. 选择 WalletConnect

接下来,从显示的选项中选择 WalletConnect。屏幕上会出现一个二维码。默认情况下,WalletConnect 假定用户想使用移动端钱包登录。但如果你使用的是桌面端钱包,请点击“Desktop”标签。

钱包选择弹窗:选择 WalletConnect 以显示二维码

3. 用移动端钱包扫描二维码

拿出手机,打开你的移动端钱包应用。在大多数钱包中,你会找到一个类似空心方块的图标,如下图右侧所示。点击此图标会激活摄像头以扫描二维码。如果找不到该图标,请进入设置菜单查找“扫描二维码”选项。

用于扫描 WalletConnect 二维码的移动端钱包扫描图标

4. 授权连接

扫描二维码后,dApp 会请求连接你的钱包的权限。这是一项标准的安全措施,确保你掌控自己的钱包,并且该 dApp 已获授权访问它。你需要按照移动端钱包上的提示确认连接。连接建立后,你就可以使用钱包与该 dApp 交互了。

移动端钱包请求连接 dApp 的权限提示

5. 成功登录 dapp

恭喜!你已经成功通过钱包登录了该 dApp。现在你可以使用钱包与该 dApp 交互,并执行交易、质押或转账等各种操作。使用钱包与应用交互时,请务必遵循最佳安全实践,以确保资金安全。

WalletConnect 安全吗?

WalletConnect 是安全的。应用和钱包之间传输的信息使用对称加密,密钥仅由这两个实体持有。

密钥由 dApp 直接发送给钱包。无论用户是通过扫描二维码,还是在桌面端钱包上选择深度链接,都不存在中间方。

虽然一个公共桥接服务器负责在两者之间传递信息,但该服务器并不会收到解密信息所需的密钥。此外,开发者也可以自行托管桥接服务器,以获得更完整的保护。

这一设计的巧妙之处在于,WalletConnect 无需你的助记词或恢复短语即可登录 dApp。下图展示了在桥接服务器的中介下,dApp 与钱包之间的信息流转过程。

dApp 与钱包通过 WalletConnect 桥接服务器进行加密信息传输的流程图

二维码中包含 WalletConnect 的 URI 方案,如下图所示,以及一张说明各变量含义的表格。

WalletConnect 的 URI 方案
Required parts
Notes

wc:

Wallet Connect protocol defined in EIP-1328

topic

String

version

Number (eg. 1.9.0)

bridge

Bridge URI (URL Encoded)

key

Symmetric key hex string

WalletConnect 的代码库

你可以在 WalletConnect Github 上找到 WalletConnect 的代码库。

如何实现 WalletConnect

关于实现 WalletConnect 的最新说明,请参阅官方文档。

WalletConnect 的替代方案与竞争对手

WalletConnect 没有直接的竞争对手。将 WalletConnect 与 MetaMask 相比较是一种错误的二分法,因为 MetaMask 本身就将 WalletConnect 作为其移动端钱包的登录选项。

结语

和 WalletConnect 一样,我们 Alchemy 也通过我们的产品让开发者的工作更轻松,从而推动生态系统向前发展。

当开发者不再自行托管节点,转而使用 Alchemy 的 Node API 时,他们无需管理基础设施即可获得可靠的 RPC 访问。Node API 与 Alchemy 的分析和开发者工具配合使用,可以加快调试速度,并为重要请求提供简单的 API 调用方式。

前往 Alchemy.com,了解这套支撑超过 1000 亿美元交易额、以及 OpenSea 和 NBA Top Shot 等一些最受欢迎应用的产品套件。

还想了解更多?看看 API3 是如何以各种方式使用 Alchemy 的,包括为其 DAO 仪表盘提供 WalletConnect 集成支持。

Background gradient

构建区块链应用

Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。