Skip to main content

EVM Suite

Air-Gap signing support for Ethereum and EVM-compatible chains.

Account Setup

To obtain an ETH account, use CryptoHDKey to acquire the extended public key from the device.

Supported Operations

OperationDataTypeDemo description
EIP-1559 TransactiontypedTransaction (4)Modern transaction format
Legacy Transactiontransaction (1)Classic transaction format
EIP-712 TypedDatatypedData (2)Structured data signing
Personal MessagepersonalMessage (3)Message signing

Steps

  1. Build sign request using EthSignRequest
  2. Encode as UR and display animated QR
  3. Device scans, verifies, and signs offline
  4. Decode response using EthSignature
  5. Attach signature to transaction and broadcast

Fast Demo

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

const eth = new KeystoneEthereumSDK();

// Build the sign request
const ur = eth.generateSignRequest({
requestId: "uuid-string",
signData: unsignedTxHex, // Hex string without 0x
dataType: 4, // EIP-1559 type
path: "m/44'/60'/0'/0/0",
xfp: "12345678",
chainId: 1,
origin: "sample-client",
});

// Encode it and render the QR