热点、深度、趋势全掌握,尽在BTC区块圈

【钱包】:WalletConnect 详解

上一文我们讲解了 EIP1193 与 EIP6963,今天我们来讲一下 WalletConnect协议。

什么是WalletConnect

WalletConnect 是一种开源协议,用于在去中心化应用(DApp)和加密钱包之间建立安全连接,实现跨设备通信。

它通过端到端加密的通信通道,允许用户通过移动钱包(如MetaMask Mobile、Trust Wallet等)与桌面或网页端的DApp进行连接和交易签名,而无需暴露私钥或敏感信息,为 Web3 应用提供了更安全、便捷的身份验证方式。

WalletConnect 是一个链无关的协议生态系统,专注于为用户提供跨钱包和应用程序的无缝连接服务。

起源与发展

WalletConnect 最初于 2018 年推出,旨在解决一个用户体验(UX)和开发者体验(DX)问题:在当时,去中心化应用(dApps)主要为桌面用户设计,但许多终端用户希望在移动设备上使用钱包。开发者需要一种统一的方式来支持所有用户的钱包。于是,WalletConnect 中继和二维码扫描功能诞生了,让数百万 Web3 用户能够将自己的钱包连接到想要使用的应用程序,为行业恢复了选择权和可组合性。

随着时间的推移,WalletConnect 不断解决更多的 UX/DX 问题:

WalletConnect 的关键里程碑包括:

特点使用场景工作原理

发起连接:

建立加密通道:

会话授权:

数据传输:

实现

这里借助 ant-design/web3 库。

import { ConnectButton, Connector } from '@ant-design/web3';
import {
  Hardhat,
  Localhost,
  Mainnet,
  MetaMask,
  Polygon,
  WagmiWeb3ConfigProvider,
  WalletConnect,
  X1Testnet,
} from '@ant-design/web3-wagmi';
import { http } from 'wagmi';
const App: React.FC = () => {
  return (
    <WagmiWeb3ConfigProvider
      walletConnect={{
        projectId: 'c07c0051c2055890eade3556618e38a6',
      }}
      eip6963
      transports={{
        [Mainnet.id]: http(),
        [Polygon.id]: http(),
        [X1Testnet.id]: http(),
        [Hardhat.id]: http(),
        [Localhost.id]: http(),
      }}
      wallets={[MetaMask(), WalletConnect()]}
      chains={[Mainnet, Polygon, X1Testnet, Hardhat, Localhost]}
    >
      <Connector>
        <ConnectButton />
      </Connector>
    </WagmiWeb3ConfigProvider>
  );
};
export default App;

image.png

使用本文
0
共享
上一篇

24 小时内烧毁 3,333,333 个 SHIB – 巧合还是隐藏信号?

下一篇

Crowdfund Insider聚焦:CertiK联创顾荣辉解析Web3.0创新与安全平衡之术

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

阅读下一页