All articles

Ethereum & ERC-20 tokens on Trezor

Ethereum is a decentralized, open-source blockchain-based platform that enables the creation of smart contracts and decentralized applications (dapps). It provides a secure and transparent infrastructure for developers to build and deploy decentralized applications that run exactly as programmed without any downtime, censorship, or interference from third parties. 

 
  


How to use Ethereum with Trezor

Overview

 
Firmware (device) support 1.4.0. (Trezor Model One), 2.0.5. (Trezor Model T), 2.6.3 (Trezor Safe 3)
Available in Trezor Suite? Yes
Third-party wallets Exodus, MyEtherWallet, MetaMask, Frame
 

 

Trezor Suite

Ethereum is natively supported in Trezor Suite. To access your Ethereum accounts please follow these steps:
 

  • Click on the plus [+] symbol on the left pane:
 
    
  • Choose Ethereum from the list, confirm the selection by clicking on Find my Ethereum accounts:
 
 
  • Your Ethereum account is now listed among your default accounts: 
 


Third-party wallets

Ethereum can be used safely with certain third-party wallets and services, with the seed and private keys fully protected by the Trezor device. Suitable third party wallets include the following:
 

   

Smart contracts

Ethereum (ETH) smart contracts are self-executing contracts with the terms of the agreement between buyer and seller being directly written into lines of code.

These contracts run on the Ethereum blockchain, a decentralized platform that allows for the creation and execution of smart contracts. The code of the contract is publicly available, so all parties involved can see exactly how it works and what it does.

When certain conditions are met, the contract will automatically execute, allowing for secure, transparent, and tamper-proof transactions to be made on the Ethereum network without the need for intermediaries.


Ethereum, Ether and Gas

Ethereum is a network powered by blockchain technology and ETH (ether) is what keeps it running. When you use the Ethereum network, for example by sending tokens, using a contract, or just doing something else, you have to pay for the computing power it takes to do that action. This payment is called gas and it's paid using ETH.
 

No matter if the transaction is successful or not, you still have to pay for the computing power used. This is because the miners, who validate and execute the transactions, still need to do their job, even if the transaction ends up failing.
 

You can see how much you have to pay for a transaction on a website like etherscan.io. This fee is not paid to Trezor, but to the miners, who use their computing power to mine the transactions, put them into blocks, and keep the Ethereum network secure.


Fees

The transaction fee is calculated as Gas price * Gas limit.

 

Gas limit

Gas limit refers to the maximum amount of gas user is willing to spend on a particular transaction. A higher gas limits mean that more computational work must be done to execute the smart contract. A standard ETH transfer requires a gas limit of 21,000 units of gas.

The units of gas necessary for a transaction are already defined by how much code is executed on the blockchain. If a user does not want to spend as much on gas, lowering the gas limit will not help. The user must include enough gas to cover the computational resources used or transaction will fail due to an "Out of Gas" Error.

All unused gas (gwei) is refunded to the user at the end of a transaction.

 
See also Ethereum gas tracker for more information about the Gas used to estimate how long it will be before the transaction is accepted at a certain gas price.
 

Gas price

The price user pays for each unit increases or decreases how quickly the transaction will be mined.

During Token Creation Periods, these costs go rapidly high due to supply / demand:

The miner who mines the block gets the transaction fees and decides which transactions to include in the block. The user usually sets a gas price that is high enough to make miners want to include it.

Miners mostly include transactions they received sorted from highest gas price to lowest until the block is full or until they reach one that has a gas price set lower than they are willing to consider.


Error: Cannot send due to insufficient funds

 
Insufficient Funds: the account you are trying to send the transaction from does not have enough funds.


This error means that user does not have enough Ether to cover the cost of gas. Each transaction (including token and contract transactions) require gas and which is paid in Ether.


ERC-20 Tokens

ERC-20 tokens are custom user cryptocurrencies created on Ethereum, based on the successful ERC-20 Token Standard. Currently, there are over 500,000 ERC-20 tokens in existence, most of which have no market value. See the full list here.

 

How to use ERC-20 tokens with Trezor

ERC-20 tokens operate on the Ethereum blockchain. You can store them using your Ethereum account in Trezor Suite.

Every ERC-20 token can be stored using a Trezor device, as detailed in the following step-by-step guide:
 

  1. Open Trezor Suite (desktop or browser version)
  2. Choose Ethereum from the  My accounts  panel on the left.
  3. Go to the  Receive  tab.
  4. Click  'Show full address'.
  5. Check that the address shown in Suite matches the one displayed on your Trezor.
  6. Copy the receiving address and use it as the destination address for sending your ERC-20 tokens.
  7. Once you have sent some tokens to the address, go to the  Tokens  menu.
  8. If your tokens are not listed there, you can add them manually: click on the three dots and select 'Add token', then enter the contract address. The contract addresses of all tokens can be found on https://etherscan.io/tokens
 
Some of the ERC-20 tokens will not be recognized by Trezor firmware, but they still can be stored and sent using Trezor. The user has to specify the contract address of this token, and it will be shown as an "unknown token".


Using Etherscan to find a token's contract address

If you do not know the contract address of the token you want to add, you can try searching for it on Etherscan by following these steps:
 

  1. In the search bar, type the ticker for your coin e.g. "ZRX" for 0x, or "UNI" for Uniswap.
  2. Make sure you select the correct one , as multiple tokens can use the same ticker.
  3. You will see the contract address on the right-hand side.
  4. Double check the address against the token project's official site and make sure it is correct, as some tokens may use multiple smart contracts.

In general, the contract address you are looking for will be shown alongside the supply, price, and other information. Contracts that are used for functionality alone will generally not show that information.