mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-27 17:08:14 +00:00
1.0 KiB
1.0 KiB
Ethereum definition binary format
Definitions are binary encoded and have a special format:
- prefix:
- format version of the definition (ASCII string
trzdX
, whereX
is version number, 5 bytes) - type of data (unsigned integer, 1 byte)
- data version of the definition (unsigned integer, 4 bytes)
- length of the encoded protobuf message - payload length in bytes (unsigned integer, 2 bytes)
- format version of the definition (ASCII string
- payload: serialized form of protobuf message EthereumNetworkInfo or EthereumTokenInfo (N bytes)
- suffix:
- length of the Merkle tree proof - number of hashes in the proof (unsigned integer, 1 byte)
- proof - individual hashes used to compute Merkle tree root hash (plain bits, N*32 bytes)
- signed Merkle tree root hash (plain bits, 64 bytes)
This complete format must be used when definition is send to the device, but we generate definitions without parts 3.1 (Merkle tree proof length) and 3.2 (proof itself). For more information look at the External definitions documentation