Get desktop application:
View/edit binary Protocol Buffers messages
* Response: Contains address derived from device private seed @end
Coin address in Base58 encoding
Address authentication code
* Unit to be used when showing amounts on the display
Used in: ,
BTC
mBTC
uBTC
sat
* Request: Ask device to prompt the user to authorize a CoinJoin transaction @start @next Success @next Failure
coordinator identifier to approve as a prefix in commitment
data (max. 36 ASCII characters)
maximum number of rounds that Trezor is authorized to take part in
maximum coordination fee rate in units of 10^-6 percent
maximum mining fee rate in units of satoshis per 1000 vbytes
prefix of the BIP-32 path leading to the account (m /
purpose' / coin_type' / account')
coin to use
used to distinguish between various address formats (non-segwit, segwit, etc.)
show amounts in
* Request: Ask device for a list of names of all supported benchmarks @start @next Benchmarks @next Failure
(message has no fields)
* Response: Contains the list of names of all supported benchmarks @end
* Response: Contains the result of the benchmark @end
* Request: Ask device to run a benchmark @start @next BenchmarkResult @next Failure
* Type of script which will be used for decred stake transaction input
Used in: ,
* Request: Ask device for address corresponding to address_n path @start @next Address @next Failure
BIP-32 path to derive the key from master node
coin to use
optionally show on display before sending the result
filled if we are showing a multisig address
used to distinguish between various address formats (non-segwit, segwit, etc.)
ignore SLIP-0132 XPUB magic, use xpub/tpub prefix for all account types
display the address in chunks of 4 characters
* Request: Ask device for ownership identifier corresponding to scriptPubKey for address_n path @start @next OwnershipId @next Failure
BIP-32 path to derive the key from master node
coin to use
filled if we are dealing with a multisig scriptPubKey
used to distinguish between various address formats (non-segwit, segwit, etc.)
* Request: Ask device for a proof of ownership corresponding to address_n path @start @next OwnershipProof @next Failure
BIP-32 path to derive the key from master node
coin to use
used to distinguish between various scriptPubKey types
filled if proof is for a multisig address
show a confirmation dialog and set the "user confirmation" bit in the proof
list of ownership identifiers in case of multisig
additional data to which the proof should commit
* Request: Ask device for public key corresponding to address_n path @start @next PublicKey @next Failure
BIP-32 path to derive the key from master node
ECDSA curve name to use
optionally show on display before sending the result
coin to use for verifying
used to distinguish between various address formats (non-segwit, segwit, etc.)
ignore SLIP-0132 XPUB magic, use xpub/tpub prefix for all account types
* Type of script which will be used for transaction input
Used in: , , , , , , ,
standard P2PKH address
P2SH multisig address
reserved for external inputs (coinjoin)
native SegWit
SegWit over P2SH (backward compatible)
Taproot
* Response: Signed message @end
address used to sign the message
signature of the message
Used in:
order of pubkeys is preserved
pubkeys are sorted lexicographically (BIP-67)
* Type of redeem script used in input @embed
Used in: , , , , , ,
this field is deprecated and will be removed in the
future, use nodes together with address_n instead
existing signatures for partially signed input
"m" from n, how many valid signatures is necessary for spending
path to derive pubkeys from nodes
order of pubkeys in script pubkey
* Structure representing HDNode + Path
Used in:
BIP-32 node in deserialized form
BIP-32 path to derive the key from node
* Type of script which will be used for transaction output
Used in: ,
used for all addresses (bitcoin, p2sh, witness)
p2sh address (deprecated; use PAYTOADDRESS)
only for change output
op_return
only for change output
only for change output
only for change output
* Response: Contains the ownership identifier for the scriptPubKey and device private seed @end
ownership identifier
* Response: Contains the proof of ownership @end
SLIP-0019 proof of ownership
signature of the proof
* Data type for inputs of previous transactions. When adding fields, take care to not conflict with TxInput @embed
Used in:
hash of previous transaction output to spend by this input
index of previous output to spend
script signature
sequence
only for Decred
* Data type for outputs of previous transactions. @embed
Used in:
amount sent to this output
scriptPubkey of this output
only for Decred
* Data type for metadata about previous transaction which contains the UTXO being spent. @embed
Used in:
only for Dash, Zcash
only for Decred and Zcash
only for Zcash, nVersionGroupId
only for Peercoin
only for Zcash, BRANCH_ID
* Response: Contains public key derived from device private seed @end
BIP-32 public node
serialized form of public node
master root node fingerprint
BIP-380 descriptor
* Request: Ask device to sign message @start @next MessageSignature @next Failure
BIP-32 path to derive the key from master node
message to be signed
coin to use for signing
used to distinguish between various address formats (non-segwit, segwit, etc.)
don't include script type information in the recovery byte
of the signature, same as in Bitcoin Core
display the address in chunks of 4 characters
* Request: Ask device to sign transaction @start @next TxRequest @next Failure
number of transaction outputs
number of transaction inputs
coin to use
transaction version
transaction lock_time
only for Decred and Zcash
deprecated in 2.3.2, the field is not needed as it can be derived from `version`
only for Zcash, nVersionGroupId
only for Peercoin
only for Zcash, BRANCH_ID
show amounts in
only for Decred, this is signing a ticket purchase
serialize the full transaction, as opposed to only outputting the signatures
only for preauthorized CoinJoins
display the address in chunks of 4 characters
* Signing request for a CoinJoin transaction.
Used in:
coordination fee rate in units of 10^-6 percent
PlebsDontPayThreshold in Wasabi, the input amount
above which the fee rate applies
minimum registrable output amount
ephemeral secp256k1 public key used for masking
coinjoin_flags, 33 bytes in compressed form
the trusted party's signature of the CoinJoin request digest
* Request: Reported transaction data (legacy) This message contains all possible field that can be sent in response to a TxRequest. Depending on the request_type, the host is supposed to fill some of these fields. The interface is wire-compatible with the new method of specialized TxAck subtypes, so it can be used in the old way. However, it is now recommended to use more specialized messages, which have better-configured constraints on field values. @next TxRequest
* Structure representing transaction
Used in:
only for Dash, Zcash
only for Dash, Zcash
only for Decred and Zcash
Zcash only; deprecated in 2.3.2, the field is not
needed, it can be derived from `version`
only for Zcash, nVersionGroupId
only for Peercoin
only for Zcash, BRANCH_ID
* Structure representing transaction input
Used in:
BIP-32 path to derive the key from master node
hash of previous transaction output to spend by this input
index of previous output to spend
script signature, unset for tx to sign
sequence (default=0xffffffff)
defines template of input script
Filled if input is going to spend multisig tx
amount of previous transaction output (for segwit only)
only for Decred, 0 is a normal transaction
while 1 is a stake transaction optional uint32 decred_script_version = 10; // only for Decred // deprecated -> only 0 is supported optional bytes prev_block_hash_bip115 = 11; // BIP-115 support dropped optional uint32 prev_block_height_bip115 = 12;// BIP-115 support dropped
witness data, only set for EXTERNAL inputs
SLIP-0019 proof of ownership, only set for EXTERNAL inputs
optional commitment data for the SLIP-0019 proof of ownership
tx_hash of the original transaction where this input was spent (used when
creating a replacement transaction)
index of the input in the original transaction
(used when creating a replacement transaction)
if not None this holds the type of stake
spend: revocation or stake generation
scriptPubKey of the previous output spent by this
input, only set of EXTERNAL inputs
bit field of CoinJoin-specific flags
* Structure representing compiled transaction output
Used in:
only for Decred, currently only 0 is supported
* Structure representing transaction output
Used in:
target coin address in Base58 encoding
BIP-32 path to derive the key from master node; has
higher priority than "address"
amount to spend in satoshis
output script type
defines multisig address; script_type must be
PAYTOMULTISIG
defines op_return data; script_type must be PAYTOOPRETURN,
amount must be 0 optional uint32 decred_script_version = 7; // only for Decred // deprecated -> only 0 is supported optional bytes block_hash_bip115 = 8; // BIP-115 support dropped optional uint32 block_height_bip115 = 9; // BIP-115 support dropped
tx_hash of the original transaction where this output was present (used
when creating a replacement transaction)
index of the output in the original transaction
(used when creating a replacement transaction)
index of the PaymentRequest containing this output
* Request: Data about input to be signed. Wire-alias of TxAck. Do not edit this type without considering compatibility with TxAck. Prefer to modify the inner TxInput type. @next TxRequest
Used in:
* Request: Data about output to be signed. Wire-alias of TxAck. Do not edit this type without considering compatibility with TxAck. Prefer to modify the inner TxOutput type. @next TxRequest
Used in:
* Request: Content of the extra data of a previous transaction Wire-alias of TxAck. Do not edit this type without considering compatibility with TxAck. @next TxRequest
Used in:
* Request: Data about previous transaction input Wire-alias of TxAck. Do not edit this type without considering compatibility with TxAck. Prefer to modify the inner PrevInput type. @next TxRequest
Used in:
* Request: Data about previous transaction metadata Wire-alias of TxAck. Do not edit this type without considering compatibility with TxAck. Prefer to modify the inner PrevTx type. @next TxRequest
* Request: Data about previous transaction output Wire-alias of TxAck. Do not edit this type without considering compatibility with TxAck. Prefer to modify the inner PrevOutput type. @next TxRequest
Used in:
* Data type for transaction input to be signed. When adding fields, take care to not conflict with PrevInput @embed
Used in:
BIP-32 path to derive the key from master node
hash of previous transaction output to spend by this input
index of previous output to spend
script signature, only set for EXTERNAL inputs
sequence
defines template of input script
Filled if input is going to spend multisig tx
amount of previous transaction output
only for Decred, 0 is a normal transaction while 1 is a stake transaction
witness data, only set for EXTERNAL inputs
SLIP-0019 proof of ownership, only set for EXTERNAL inputs
optional commitment data for the SLIP-0019 proof of ownership
tx_hash of the original transaction where this input was
spent (used when creating a replacement transaction)
index of the input in the original transaction (used when
creating a replacement transaction)
if not None this holds the type of stake spend: revocation or stake generation
scriptPubKey of the previous output spent by this input, only set of EXTERNAL inputs
bit field of CoinJoin-specific flags
* Data type for transaction output to be signed. @embed
Used in:
destination address in Base58 encoding; script_type must be PAYTOADDRESS
BIP-32 path to derive the destination (used for change addresses)
amount to spend in satoshis
output script type
defines multisig address; script_type must be PAYTOMULTISIG
defines op_return data; script_type must be PAYTOOPRETURN, amount must be 0
tx_hash of the original transaction where this output was
present (used when creating a replacement transaction)
index of the output in the original transaction (used when
creating a replacement transaction)
index of the PaymentRequest containing this output
* Response: Device asks for information for signing transaction or returns the last result If request_index is set, device awaits TxAck<any> matching the request type. If signature_index is set, 'signature' contains signed input of signature_index's input @end @next TxAckInput @next TxAckOutput @next TxAckPrevMeta @next TxAckPrevInput @next TxAckPrevOutput @next TxAckPrevExtraData @next PaymentRequest
what should be filled in TxAck message?
request for tx details
serialized data and request for next
* Type of information required by transaction signing process
Used in:
* Structure representing request details
Used in:
device expects TxAck message from the computer
tx_hash of requested transaction
length of requested extra data (only for Dash, Zcash)
offset of requested extra data (only for Dash, Zcash)
* Structure representing serialized data
Used in:
'signature' field contains signed input of this index
signature of the signature_index input
part of serialized and signed transaction
* Request: Ask device to verify message @start @next Success @next Failure
address to verify
signature to verify
message to verify
coin to use for verifying
display the address in chunks of 4 characters