什么是WalletConnectWalletConnect是一种开源协议,用于在去中心化应用(DApp)和加密钱包之间建立安全连接,实现跨设备通信。
上一文我们讲解了 EIP1193 与 EIP6963,今天我们来讲一下 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;
 
                如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!