Ethereum methods handle transactions, message signing, and typed data signing for Ethereum and EVM-compatible chains.
ethereumGetAddress
Retrieves an Ethereum address from the device. Can optionally display address on device screen for verification.
path
string | number[]
required
BIP32 derivation path (e.g., m/44'/60'/0'/0/0).
Expected address for verification.
Display address on device screen.
Split large requests into chunks.
Ethereum address (with 0x prefix).
Derivation path as integer array.
Derivation path as string.
// Get single address
const result = await TrezorConnect.ethereumGetAddress({
path: "m/44'/60'/0'/0/0",
showOnTrezor: true,
});
// Get multiple addresses (bundle)
const bundle = await TrezorConnect.ethereumGetAddress({
bundle: [
{ path: "m/44'/60'/0'/0/0" },
{ path: "m/44'/60'/0'/0/1" },
],
});
ethereumGetPublicKey
Retrieves an Ethereum public key from the device.
path
string | number[]
required
BIP32 derivation path.
Display public key on device screen.
Public key in hex format.
Derivation path as integer array.
Derivation path as string.
const result = await TrezorConnect.ethereumGetPublicKey({
path: "m/44'/60'/0'/0/0",
});
ethereumSignTransaction
Signs an Ethereum transaction. Supports legacy, EIP-1559, and EIP-2930 transaction types.
path
string | number[]
required
BIP32 derivation path.
Transaction object.Show Legacy Transaction (Type 0)
Destination address (or null for contract creation).
Amount in wei (hex string).
Gas price in wei (hex string).
Transaction nonce (hex string).
Contract data (hex string with 0x prefix).
Transaction type (0 for legacy).
Show EIP-1559 Transaction (Type 2)
Destination address (or null for contract creation).
Amount in wei (hex string).
Maximum fee per gas (hex string).
Maximum priority fee per gas (hex string).
Transaction nonce (hex string).
Contract data (hex string).
Split large data into chunks.
Serialized signed transaction (hex with 0x prefix).
// Legacy transaction
const result = await TrezorConnect.ethereumSignTransaction({
path: "m/44'/60'/0'/0/0",
transaction: {
to: '0x...',
value: '0x0',
gasPrice: '0x14',
gasLimit: '0x5208',
nonce: '0x0',
chainId: 1,
},
});
// EIP-1559 transaction
const eip1559Result = await TrezorConnect.ethereumSignTransaction({
path: "m/44'/60'/0'/0/0",
transaction: {
to: '0x...',
value: '0x0',
maxFeePerGas: '0x14',
maxPriorityFeePerGas: '0x0',
gasLimit: '0x5208',
nonce: '0x0',
chainId: 1,
},
});
if (result.success) {
console.log('Signed transaction:', result.payload.serializedTx);
}
ethereumSignMessage
Signs an Ethereum message using the private key derived from the given path.
path
string | number[]
required
BIP32 derivation path.
Message to sign (UTF-8 string or hex).
Interpret message as hex string.
Address corresponding to the signing key.
Message signature (hex with 0x prefix).
const result = await TrezorConnect.ethereumSignMessage({
path: "m/44'/60'/0'/0/0",
message: 'Hello Ethereum',
});
if (result.success) {
console.log('Signature:', result.payload.signature);
}
ethereumSignTypedData
Signs EIP-712 typed structured data. Supports both hash-based signing (for Trezor One) and full typed data signing (for Trezor T).
path
string | number[]
required
BIP32 derivation path.
EIP-712 typed data object.
Type definitions including EIP712Domain.
Domain separator values.
Verifying contract address.
Use MetaMask V4 compatibility mode.
Pre-computed domain separator hash (for Trezor One).
Pre-computed message hash (for Trezor One).
Show message hash on device.
Address that signed the data.
Signature (hex with 0x prefix).
const result = await TrezorConnect.ethereumSignTypedData({
path: "m/44'/60'/0'/0/0",
data: {
types: {
EIP712Domain: [
{ name: 'name', type: 'string' },
{ name: 'version', type: 'string' },
{ name: 'chainId', type: 'uint256' },
],
Person: [
{ name: 'name', type: 'string' },
{ name: 'wallet', type: 'address' },
],
},
primaryType: 'Person',
domain: {
name: 'Example App',
version: '1',
chainId: 1,
},
message: {
name: 'Alice',
wallet: '0x...',
},
},
metamask_v4_compat: true,
});
ethereumVerifyMessage
Verifies an Ethereum message signature.
Address that signed the message.
Original message that was signed.
Interpret message as hex string.
Message signature (hex with 0x prefix).
Whether signature is valid.
const result = await TrezorConnect.ethereumVerifyMessage({
address: '0x...',
message: 'Hello Ethereum',
signature: '0x...',
});