---
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="Uniswap 介面上的 Connect Wallet 按鈕"
  width={533}
  height={479}
/>

### 2. 選擇 WalletConnect

接著，從顯示的選項中選擇 **WalletConnect**。畫面上會出現一個 QR code。預設情況下，WalletConnect 假設使用者想用行動裝置錢包登入。不過，如果你使用的是桌面版錢包，請點擊「Desktop」標籤。

<ImageBlock
  src="https://media.alchemy.com/1703859227-select-walletconnect.png"
  alt="錢包選擇彈窗：選擇 WalletConnect 顯示 QR code"
  width={507}
  height={639}
/>

### 3. 用你的行動裝置錢包掃描 QR code

拿出你的手機，開啟你的行動裝置錢包應用程式。在大多數錢包中，你會找到一個看起來像空心方框的圖示，如下圖右側所示。點擊這個圖示後，相機會啟動以掃描 QR code。如果找不到這個圖示，請前往設定選單並尋找「Scan QR code」選項。

<ImageBlock
  src="https://media.alchemy.com/1703859255-scan-qr-mobile-wallet.png"
  alt="用來掃描 WalletConnect QR code 的行動錢包掃描圖示"
  width={828}
  height={204}
/>

### 4. 授予連接權限

掃描 QR code 後，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 直接傳送給錢包。無論使用者是透過掃描 QR code，還是選擇桌面版錢包的深層連結（deep linking），過程中都沒有任何中介方。

雖然有一個公開的橋接伺服器負責處理雙方之間的資訊，但該伺服器並不會收到解密資訊所需的金鑰。此外，開發者也可以自行架設橋接伺服器以取得完整保護。

這個設計的巧妙之處在於，WalletConnect 登入 dApp 並不需要用到你的助記詞或復原字串。下圖顯示了 dApp 與錢包之間，透過橋接伺服器居中傳遞的資訊流程。

<ImageBlock
  src="https://media.alchemy.com/1703859322-dapp-and-wallet-info-flow.png"
  alt="dApp 與錢包透過 WalletConnect bridge server 進行加密資訊交換的流程圖"
  width={987}
  height={694}
/>

QR code 裡包含 WalletConnect 的 URI scheme，如下所示，並附上一個表格說明各個變數所代表的意義。

<ImageBlock
  src="https://media.alchemy.com/1703859589-walletconnect-uri.png"
  alt="WalletConnect 的 URI scheme"
  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** 整合功能。
