跳至内容
0%

什么是 WalletConnect?

Alchemy team headshot

作者 Alchemy

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

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

本文将介绍 WalletConnect 在生态系统中的重要作用、该协议的技术细节,以及应用的使用方法。

为什么使用 WalletConnect 来连接钱包?

以往 Ethereum 开发者需要为每个 Web3 加密钱包 单独进行集成,才能让钱包用户登录他们的应用。然而,这使 Ethereum 生态系统集中于 MetaMask,因为开发者不太可能为用户基数较小的小众钱包编写集成代码,这对新钱包的早期采用者造成了不利影响。

WalletConnect 改变了这一局面:只需一次集成,用户即可访问 300 多种不同的钱包。如今,已有超过 3000 个应用提供 WalletConnect 作为登录选项,其中包括生态系统中一些最大的应用,例如 UniswapOpenSeaRarible

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」按钮。

带有 Connect Wallet 按钮的 Uniswap 界面

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 Supernode 时,他们便用上了应用最广泛的节点管理 API。Supernode 提供一整套强大的分析和开发者工具,能够加快调试流程,并为重要请求提供简单的 API 调用方式。

前往 Alchemy.com,探索支撑超过 1000 亿美元交易额、以及 OpenSeaNBA Top Shot 等热门应用的这一整套产品。

想了解更多?看看 API3 如何在多个方面使用 Alchemy,其中包括为其 DAO 仪表盘的 WalletConnect 集成提供支持。

Background gradient

构建区块链应用

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