evmSignTypedData

Ethereum: Sign Typed Data

Asks device to sign an EIP-712 typed data message using the private key derived by given BIP32 path.

User is asked to confirm all signing details on OneKey device.

  • Supports EIP-712 (v3 and v4)

  • Use evmSignTypedData for signing typed structured data

  • Not for EIP-191 typed data signing

  • Use evmSignMessage to signing EIP-191(personal_sign)

const result = await HardwareSDK.evmSignTypedData(connectId, deviceId, params);

Params

Optional common params

  • path - required string | Array<number> minimum length is 3. read more

  • data - required Object type of EthereumSignTypedDataMessage`. A JSON Schema definition can be found in the EIP-712 spec.

  • metamaskV4Compat - required boolean set to true for compatibility with MetaMask's signTypedData_v4.

  • chainId - optional number The ChainId in ETH is a unique identifier for a specific Ethereum network, used to distinguish different versions of the blockchain. Reference.

Blind signing

You may also wish to contruct your own hashes using a different library.

  • domainHash - required string hex-encoded 32-byte hash of the EIP-712 domain.

  • messageHash - optional string hex-encoded 32-byte hash of the EIP-712 message. This is optional for the domain-only hashes where primaryType is EIP712Domain.

When is the blind signing

  • Use Mini or Classic.

  • There are arrays nested in data.

  • Firmware version is less than 4.4.0, and the data size is greater than 1KB.

  • Firmware version is greater than or equal to 4.4.0 and the data size is greater than 1.5KB.

Example

Result

Error

Last updated

Was this helpful?