You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于MultiversX Network开发dApp:如何通过非交易类消息签名实现用户认证及工具使用问询

在MultiversX dApp中实现消息签名与身份认证

嘿,好问题!我来帮你梳理清楚MultiversX(原Elrond)生态下的消息签名方案,刚好能解决你提到的无交易身份认证需求:

核心结论

当然可以!MultiversX的扩展钱包(MultiversX Web Wallet Extension)和移动端MultiversX Wallet都支持消息签名功能,完全能实现类似MetaMask在以太坊中的身份验证逻辑——无需发送任何链上交易,仅通过用户签名自定义消息来验证身份真实性。

具体实现步骤

要在你的dApp中集成消息签名,推荐使用官方的@multiversx/sdk-dapp工具包,下面是完整的实现流程:

1. 安装依赖

首先在你的项目中安装MultiversX的dApp SDK:

npm install @multiversx/sdk-dapp

2. 初始化钱包连接

先初始化SDK并连接用户的MultiversX钱包(以扩展钱包为例):

import { DappProvider, WalletProvider } from '@multiversx/sdk-dapp';

// 初始化SDK,指定网络(主网/测试网)
await DappProvider.init({
  network: 'testnet', // 切换为 'mainnet' 用于生产环境
  // 如果需要支持移动端WalletConnect连接,需填写你的WalletConnect Project ID
  walletConnectV2ProjectId: 'your-wc-project-id'
});

// 连接扩展钱包
const walletProvider = WalletProvider.getInstance();
await walletProvider.connect();

// 获取已连接的账户信息
const connectedAccount = walletProvider.getSelectedAccount();
console.log('已连接地址:', connectedAccount.address);

3. 构造待签名消息并触发签名

为了防止签名被恶意复用(比如被篡改为交易数据),MultiversX官方推荐给消息加上固定前缀MultiversX Signed Message:\n,然后调用钱包的签名API:

// 自定义身份验证消息
const authMessage = "请验证你的身份以登录XX dApp";
// 加上官方推荐的前缀
const messageToSign = `MultiversX Signed Message:\n${authMessage}`;

// 触发钱包签名弹窗,用户确认后返回签名结果
const signature = await walletProvider.signMessage({
  message: messageToSign,
  address: connectedAccount.address
});

console.log('用户签名结果:', signature);

4. 验证签名有效性

拿到签名后,你可以在前端或后端验证签名是否来自目标地址,以此完成身份认证:

import { verifyMessage } from '@multiversx/sdk-core';

// 验证签名
const isSignatureValid = verifyMessage(
  messageToSign,
  signature,
  connectedAccount.publicKey
);

if (isSignatureValid) {
  console.log('身份验证通过!');
  // 这里可以执行登录逻辑
} else {
  console.log('签名无效,身份验证失败');
}

额外说明

  • 移动端钱包支持:如果用户使用移动端MultiversX Wallet,你可以通过WalletConnect协议完成连接和签名,流程和扩展钱包一致,只需在初始化时配置WalletConnect Project ID。
  • Elrond Wallet的更名:你提到的Elrond Wallet就是现在的MultiversX Wallet,品牌更名后功能完全兼容,之前的签名逻辑依然适用。
  • 安全注意事项:务必不要省略官方推荐的消息前缀,这能有效避免签名被恶意用于链上交易操作。

内容的提问来源于stack exchange,提问作者Razvan M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 18:12:44