Skip to Content
dApp 接入

签署消息

当 Web 应用连接到 OneKey 时,它还可以请求用户签署给定的消息。应用可以自由编写自己的消息,这些消息将在 OneKey 的签名提示中显示给用户。消息签名不涉及网络费用,是应用验证地址所有权的便捷方式。

要发送消息让用户签署,Web 应用必须:

  1. 提供一个 hexUTF-8 编码的字符串作为 Uint8Array。
  2. 请求通过用户的 OneKey 钱包签署编码后的消息。

使用 signMessage 方法

const provider = getProvider(); const message = `为防止数字资产被盗,请在下方签名以通过 CryptoCorgis 进行身份验证`; const encodedMessage = new TextEncoder().encode(message); const signedMessage = await provider.signMessage(encodedMessage, "utf8");

使用 request 方法

const provider = getProvider(); const message = `为防止数字资产被盗,请在下方签名以通过 CryptoCorgis 进行身份验证`; const encodedMessage = new TextEncoder().encode(message); const signedMessage = await provider.request({ method: "signMessage", params: { message: encodedMessage, display: "hex", }, });

签署链下消息

用于签署支持版本的链下消息(适用于身份验证和验证):

使用 solSignOffchainMessage 方法

const provider = getProvider(); const message = "签署此消息以验证您的身份"; const signedMessage = await provider.request({ method: "solSignOffchainMessage", params: { message: message, version: 0, // 可选的版本号 }, }); console.log({ signature: signedMessage.signature, publicKey: signedMessage.publicKey, });
Last updated on