All articles

Addresses & transaction history

Addresses

When working with cryptocurrencies, an address is a unique alphanumeric identifier that is used to receive payments. It can be shared with other users in the same way an e-mail address would be shared. Your Trezor will always generate the same wallet, accounts, and addresses when the same wallet backup (formerly recovery seed) and passphrase (if you use a passphrase) is used:
 


Addresses can be transformed into the QR code format, so it can be scanned by a mobile device or another camera. The QR code can (potentially) contain other information as well, such as transaction amount and a message.

In public blockchains, such as Bitcoin, it is possible to see all transactions that have been made on a particular address by looking into a blockchain explorer.
 
Click here to see what an address and its history look like in a blockchain explorer
 

How an address is derived

A public key is used as the basis for an address and it is derived from an associated private key. The private key allows the owner to spend the funds associated with its address. In hierarchical deterministic wallets such as Trezor, all private keys and addresses (public keys) are derived from the user's wallet backup. The address derivation may be broken down as follows:
 

Wallet backup -> Account private key -> Private key -> Public key -> Address


For detailed information about how addresses are derived, please see this address map. The process can be reproduced with the same result at any time, even offline. Therefore, when the same wallet backup is used, the same private keys and addresses are created in the same order. Public-key cryptography ensures that it is not possible to go 'backwards', i.e., knowing the address does not make it possible to find the associated private key or wallet backup.

 
Public-key cryptography (or asymmetric cryptography), is a cryptographic system that uses pairs of keys:

- public keys, which may be disseminated widely
- private keys, which are known only to the owner

The message sender uses the recipient's public key to encrypt a message. To decrypt the sender's message, only the recipient's private key may be used.

In cryptocurrencies, this system is widely used as one of the means of securing transactions.

Trezor uses public-key cryptography for various purposes, including transaction signing and Trezor Password Manager.
 

Users can create as many addresses as they want without any costs. This can be useful for e-commerce websites where a fresh (or unused) address is generated for each customer. On the other hand, the BIP44 standard for Bitcoin hierarchical deterministic wallets proposed to respect the address gap limit, which is also used in Trezor Suite, limits the number of fresh addresses created under one account to 20 until you have used at least one of them therefore, after using at least one address you can create more than the inital 20 limit. 
 

The address is a part of a given cryptocurrency network only after it is used in a transaction. Until then, it is just a string of characters suitable for using as an address.


Address format

Bitcoin addresses can be 26-34 characters long and consist of random digits and uppercase and lowercase letters (except I (upper-case "i"), l (lower-case "L") , O (upper-case "o") and 0 (zero) due to visual ambiguity). All addresses also contain a checksum (for verifying data integrity) which helps to prevent typos; addresses containing typos are rejected due to an invalid checksum.
 

Address types

Several address types can be used for Bitcoin transactions. New address types were developed together with new Bitcoin features, e.g. the new type of transactions which allowed multisignature and SegWit transactions. Bech32 addresses should improve the security of multisig transactions. Taproot represents the first major upgrade to Bitcoin since SegWit, and improves both privacy and network efficiency.

Available address types are:

 
P2PKH starting with 1; e.g. 1Aais5SFub9MsLNPKFU7Aufroi4QebSiHC
P2SH starting with 3; e.g. 33o9h1Vo6ghGRJPSW1edAsogWyNU2ypFv7
Bech32 starting with bc1; e.g. bc1qyvs3wwgr4x88ec3pjdf4xnwrgghq8whmmy5q0j
Taproot starting with bc1p; e.g. bc1p8denc9m4sqe9hluasrvxkkdqgkydrk5ctxre5nkk4qwdvefn0sdsc6eqxe
 

Addresses in Trezor Suite

  • In Trezor Suite, following the BIP44 standard, addresses are organized into separate accounts, and each can be given a custom label. 
  • According to the above-mentioned address gap limit, it is possible to generate 20 new unused addresses. 
  • It is considered best practice to use a new 'fresh' address for each incoming transaction, as it benefits user privacy. 
  • Trezor Suite can also show receiving wallet addresses as QR codes, so they can be quickly scanned from a mobile device or by using another camera. If given access to a camera, Trezor Suite can also scan the QR code of an address to send funds to. 
  • It is also possible to create as many accounts as the user wants, but only if the previous account has been already used.
 

Transactions

In cryptocurrencies, a transaction is the moving of funds (coins) from one address to another. Each transaction has a unique transaction ID that can be used to reference the transaction. In addition to the amount being sent, each transaction includes a fee that is paid to the miners for including the transaction into the blockchain. The amount of fee included in a transaction affects the confirmation time. A transaction is considered final when it has been confirmed.
 

Your Trezor device can be used together with Trezor Suite to make transactions for any of the supported cryptocurrencies. Your Trezor device is required to send transactions, as transactions are signed securely on the device itself - ensuring that your private keys never leave the device. Trezor Suite also allows you to set a custom fee and add multiple recipients.

 
How do transactions work? 

To understand how transactions work on a basic technical level, please check out the posts Types of Bitcoin transactions: Part I and Types of Bitcoin transactions: Part 2.

A more detailed description can be found on the Bitcoin Wiki or in the Bitcoin.org Developer Guide.
 

Transaction details

Trezor Suite displays information about individual transactions at the bottom of the Overview tab for a particular account. You can export the list of transactions to CSV, PDF or JSON by using the drop-down menu:

 
 
Make sure that you are using the right cryptocurrency. You can switch cryptocurrencies in the top left corner of the screen.
 

Timestamp

The timestamp is the time when a given transaction was confirmed. You can see it on the left side of a transaction line. When a transaction is first made, its timestamp will display as "unconfirmed." Once the transaction is successfully confirmed, it will show as a date and time. It is highly recommended to wait for transactions to be confirmed before considering them complete. When you click on the timestamp, you check the status of your transaction using a blockchain explorer.

 

Address

The value next to the timestamp always displays the address to which the funds were sent.
 

Amount

The last value displays the number of funds transferred.

  • Outgoing transactions are shown with a red minus sign next to the amount.
  • Incoming transactions are shown with a green plus sign next to the amount.
  • The equivalent amount is also shown in the selected fiat currency, which is an estimate based on the current exchange rate.
 

Transaction confirmation time

Confirmation time is the time period needed for a transaction to get confirmed. It depends primarily on the fee amount sent with the transaction.

 

Confirmed transaction

A confirmed transaction is a transaction that has been included into the blockchain by the miners. In general, a transaction is considered safe to accept when it has received multiple confirmations. Six confirmations is considered safe in practice. How fast a transaction gets confirmed depends on the amount of fee in the transaction.


Transaction ID

In cryptocurrencies, a transaction ID (or txid for short) is a unique identifier of a transaction. A transaction ID is created based on all the information in a transaction: the amounts involved, the addresses involved and the date of transfer. The transaction ID can be used to find a transaction in a blockchain explorer. Transaction IDs can be viewed in Trezor Suite by simply clicking on a particular transaction, which reveals the transaction 'Details' modal window. The transaction ID is shown as "TX ID".


Transaction signature 

A transaction signature is needed when sending a transaction to the network. A signed transaction confirms that the sender owns the private key associated with the address and, therefore, owns the funds. Anyone in the network can verify the transaction. It also means that when a transaction is made, it is necessary to unlock the outputs that are going to be used.

Every transaction signature is unique to that particular transaction because the private key and the original transaction data are used together. So if someone tries to use this digital signature in a different transaction, it will conflict with the transaction data in the memory of the digital signature. As a consequence, the nodes in the network will not accept it.

Private keys are generated locally on your Trezor device and never leave the device. Therefore, all the transaction signings are performed solely in the Trezor device.

 

Transaction input

In the context of Bitcoin, an input is a reference to an output from a previous transaction. Multiple inputs are often listed in a transaction. An input can only be spent as a whole. If payment is smaller than the input, the remaining change is sent back to the user's change address. 

 
For more information, check out the Transaction input article on the Bitcoin wiki
 

Transaction output

In the context of Bitcoin, an output contains instructions for sending bitcoins. Value is the number of Satoshi (1 BTC = 100,000,000 Satoshi) that this output will be worth when claimed. 
 

For more information, check out the Transaction output article on the Bitcoin wiki


For an improved user experience, Trezor Suite calculates all the inputs and outputs and displays only the final balances and transaction amounts.