Skip to main content
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).
address
string
Expected address for verification.
showOnTrezor
boolean
Display address on device screen.
chunkify
boolean
Split large requests into chunks.
address
string
Ethereum address (with 0x prefix).
path
number[]
Derivation path as integer array.
serializedPath
string
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.
showOnTrezor
boolean
Display public key on device screen.
publicKey
string
Public key in hex format.
path
number[]
Derivation path as integer array.
serializedPath
string
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
required
Transaction object.
chunkify
boolean
Split large data into chunks.
v
string
Signature V value (hex).
r
string
Signature R value (hex).
s
string
Signature S value (hex).
serializedTx
string
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
string
required
Message to sign (UTF-8 string or hex).
hex
boolean
Interpret message as hex string.
address
string
Address corresponding to the signing key.
signature
string
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.
data
object
required
EIP-712 typed data object.
metamask_v4_compat
boolean
required
Use MetaMask V4 compatibility mode.
domain_separator_hash
string
Pre-computed domain separator hash (for Trezor One).
message_hash
string
Pre-computed message hash (for Trezor One).
show_message_hash
boolean
Show message hash on device.
address
string
Address that signed the data.
signature
string
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
string
required
Address that signed the message.
message
string
required
Original message that was signed.
hex
boolean
Interpret message as hex string.
signature
string
required
Message signature (hex with 0x prefix).
success
boolean
Whether signature is valid.
const result = await TrezorConnect.ethereumVerifyMessage({
    address: '0x...',
    message: 'Hello Ethereum',
    signature: '0x...',
});

Build docs developers (and LLMs) love