什么是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;
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!