We are currently moving the documentation to a new platform. Please visit Trezor Wiki for the latest version of this page.

Low level API

TREZOR communicates using a simple request-response model. Messages are exchanged always in a purely synchronous fashion over USB HID. These messages are serialized into binary format using Protocol Buffers.


The SatoshiLabs Vendor ID is 0x534c and TREZOR’s Device ID 0x0001.

If you’ve never worked with HID devices before, it may be helpful to take a look at Python implementation or Java implementation which establish a connection to TREZOR and reads and write to the device.

Protobuf definitions

Protobuf message definitions are stored in the trezor-common repository. The following files are of interest: