跳到主要内容

EVM Suite

Ethereum 与 EVM 兼容链的 Air-Gap 流程使用 eth-sign-request 表达签名请求,并通过 eth-signature 返回设备签名结果。它可覆盖交易签名、EIP-712 结构化数据和普通消息签名等场景。

账户设置

如需在离线流程中管理账户,可以通过 CryptoHDKey 获取扩展公钥和来源路径,再由应用侧派生地址。

支持的操作

操作DataType说明
EIP-1559 交易typedTransaction (4)类型化交易签名
Legacy 交易transaction (1)传统 RLP 交易签名
EIP-712 TypedDatatypedData (2)结构化数据签名
Personal MessagepersonalMessage (3)普通消息签名

步骤

  1. 使用 EthSignRequest 构建签名请求。
  2. 将请求编码为 UR,并显示为动画二维码。
  3. UKey Wallet 扫描、展示摘要并等待用户确认。
  4. 使用 EthSignature 解码设备响应。
  5. 将签名填回交易或消息流程,并按业务需要广播。

快例子

import { KeystoneEthereumSDK } from "@keystonehq/keystone-sdk";

const eth = new KeystoneEthereumSDK();

// 先构造签名请求对象
const ur = eth.generateSignRequest({
requestId: "uuid-string",
signData: unsignedTxHex, // 这里传不含 0x 的十六进制字符串
dataType: 4, // EIP-1559 type
path: "m/44'/60'/0'/0/0",
xfp: "12345678",
chainId: 1,
origin: "sample-client",
});

// 再编码成二维码帧,展示给设备扫描