---
title: "什么是 WalletConnect?"
description: "使用这个开源协议连接到你的钱包"
---

# 什么是 WalletConnect?

WalletConnect 是一个单点集成的开源协议。开发者可以使用 [WalletConnect](https://www.alchemy.com/dapps/walletconnect)，让 300 多种钱包的用户能够登录他们创建的去中心化应用。这些[应用](https://www.alchemy.com/dapps/top/defi-dapps)托管在 [Ethereum](https://www.alchemy.com/ethereum) 等去中心化网络上。

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

## 为什么使用 WalletConnect 来连接钱包？

以往 Ethereum 开发者需要为每个 [Web3 加密钱包](https://www.alchemy.com/overviews/web3-wallets) 单独进行集成，才能让钱包用户登录他们的应用。然而，这使 [Ethereum 生态系统](https://www.alchemy.com/dapps/ecosystem/ethereum)集中于 [MetaMask](https://www.alchemy.com/dapps/metamask)，因为开发者不太可能为用户基数较小的小众钱包编写集成代码，这对新钱包的早期采用者造成了不利影响。

WalletConnect 改变了这一局面：只需一次集成，用户即可访问 300 多种不同的钱包。如今，已有超过 3000 个应用提供 WalletConnect 作为登录选项，其中包括生态系统中一些最大的应用，例如 [Uniswap](https://www.alchemy.com/dapps/uniswap)、[OpenSea](https://www.alchemy.com/dapps/rarible) 和 [Rarible](https://www.alchemy.com/dapps/rarible)。

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

## WalletConnect 支持哪些链？

WalletConnect 支持广泛的链，包括但不限于 Ethereum、Cosmos、Polkadot、Near、Solana、Celo 以及 [Binance](https://www.alchemy.com/dapps/binance) Smart Chain。有关已知兼容区块链的完整列表，请查阅 WalletConnect 文档。

## 哪些钱包与 WalletConnect 兼容？

WalletConnect 兼容不同平台上的 300 多种钱包。以下是一些最常见的兼容钱包：

- Metamask
- [‍](https://metamask.io)Rainbow
- [‍](https://rainbow.me)Crypto.com DeFi Wallet
- Argent Wallet
- [‍](https://www.argent.xyz)Gnosis Safe MultiSig Wallet
- Trust Wallet
- Ledger
- Coinbase Wallet

## 如何使用 WalletConnect？

本节将提供关于如何使用 WalletConnect 将钱包连接到去中心化应用（dApp）的完整分步指南。按照这里列出的步骤操作，你可以轻松地在钱包和任何兼容 WalletConnect 的 dApp 之间建立连接，从而顺畅地与该 dApp 进行交互。

### 1. 使用 WalletConnect 连接到 dapp

前往一个与 WalletConnect 兼容的 dApp。本教程将分别使用去中心化金融应用 Uniswap 和 [Rainbow](https://www.alchemy.com/dapps/rainbow-wallet) 作为示例 dApp 和钱包。不过，这些步骤同样适用于任何兼容 WalletConnect 的 dApp 和钱包。首先，点击「Connect Wallet」按钮。

<ImageBlock
  src="https://media.alchemy.com/1703859192-connect-dapp-with-walletconnect.png"
  alt="带有 Connect Wallet 按钮的 Uniswap 界面"
  width={533}
  height={479}
/>

### 2. 选择 WalletConnect

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

<ImageBlock
  src="https://media.alchemy.com/1703859227-select-walletconnect.png"
  alt="钱包选择弹窗：选择 WalletConnect 以显示二维码"
  width={507}
  height={639}
/>

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

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

<ImageBlock
  src="https://media.alchemy.com/1703859255-scan-qr-mobile-wallet.png"
  alt="用于扫描 WalletConnect 二维码的移动端钱包扫码图标"
  width={828}
  height={204}
/>

### 4. 授权连接

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

<ImageBlock
  src="https://media.alchemy.com/1703859285-permission-to-connect.jpeg"
  alt="移动端钱包请求连接 dApp 权限的提示"
  width={771}
  height={1600}
/>

### 5. 成功登录 dapp

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

## WalletConnect 安全吗？

WalletConnect 是安全的。应用与钱包之间发送的信息通过对称加密方式加密，密钥仅由这两方持有。

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

虽然一台公共桥接服务器负责在两者之间传递信息，但该服务器并不会收到用于解密信息的密钥。此外，开发者还可以自行托管桥接服务器以获得完全保护。

这种设计的精妙之处在于，WalletConnect 无需你的助记词或恢复短语即可登录 dApp。下图展示了在桥接服务器居中协调下，dApp 与钱包之间的信息流动。

<ImageBlock
  src="https://media.alchemy.com/1703859322-dapp-and-wallet-info-flow.png"
  alt="dApp 与钱包之间通过 WalletConnect 桥接服务器进行加密信息传输的示意图"
  width={987}
  height={694}
/>

二维码内包含 WalletConnect 的 URI 方案，如下图所示，下表则解释了各个变量所代表的含义。

<ImageBlock
  src="https://media.alchemy.com/1703859589-walletconnect-uri.png"
  alt="WalletConnect 的 URI 方案"
  width={1200}
  height={74}
/>

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Required parts", dataType: "object" },
      { key: "2", width: 200, title: "Notes", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>wc:</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Wallet Connect protocol defined in <a href='#'>EIP-1328</a></p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>topic</p>", tooltip: "", icon: "" },
        "2": { title: "<p>String</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p>version</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Number (eg. 1.9.0)</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p>bridge</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Bridge URI (URL Encoded)</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>key</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Symmetric key hex string</p>", tooltip: "", icon: "" },
        id: 4,
      },
    ],
  }}
/>

## WalletConnect 的代码库

你可以在 [WalletConnect Github](https://github.com/WalletConnect) 上找到 WalletConnect 的代码库。

## 如何实现 WalletConnect

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

## WalletConnect 的替代方案与竞争对手

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

## 结语

与 WalletConnect 一样，我们 Alchemy 也在通过我们的产品简化开发者的工作，从而推动生态系统向前发展。

当开发者停止自行托管节点、转而使用 [Alchemy Supernode](https://www.alchemy.com/supernode?a=fe67d21174) 时，他们便用上了应用最广泛的节点管理 API。Supernode 提供一整套强大的分析和开发者工具，能够加快调试流程，并为重要请求提供简单的 API 调用方式。

前往 [Alchemy.com](https://www.alchemy.com?a=fe67d21174)，探索支撑超过 1000 亿美元交易额、以及 [OpenSea](https://www.alchemy.com/dapps/opensea) 和 [NBA Top Shot](https://www.alchemy.com/dapps/nba-top-shot) 等热门应用的这一整套产品。

想了解更多？看看 [API3 如何在多个方面使用 Alchemy](https://www.alchemy.com/blog/api3-x-alchemy)，其中包括为其 DAO 仪表盘的 **WalletConnect** 集成提供支持。
