Hardware wallets

How to store NFTs on a hardware wallet

Connect your Trezor to a third-party interface like MetaMask to secure and manage crypto NFTs on Ethereum.

SatoshiLabs
Trezor Blog
Published in
12 min readDec 20, 2021

--

A Trezor wallet secures and manages NFTs using Metamask and other third-party interfaces.

Non-fungible tokens (NFTs) are a form of cryptocurrency that includes specific metadata that differentiates each single coin or token. They are not interchangeable for other coins even on the same network or in the same ‘collection’, hence being non-fungible, as fungible means that one coin can be replaced by any other.

With some NFTs becoming extremely sought-after, robust security becomes more important. Trezor hardware wallets are designed to store cryptocurrency of various types, and your Trezor can be used to store and secure NFTs, as long as they exist on a network which is already supported in device firmware, such as Ethereum.

While your Trezor hardware wallet can secure NFTs, it can not be done in Trezor Suite. To manage NFTs securely, a third-party interface like MetaMask should be used. This is still safe, as long as you correctly set up MetaMask to communicate directly with your Trezor so your seed remains offline at all times. Read on to learn more about NFTs and how to store NFTs on your hardware wallet.

Contents

Does Trezor support NFTs?

Both models of Trezor hardware wallet support signing of NFT transactions but only when used with a third party interface. This applies to NFTs created according to the EIP-721 Ethereum standard that allows receiving, storing and sending NFT tokens which exist on the Ethereum network. Other networks are not currently supported and there are no immediate plans to add support for them.

Can I see my NFTs in Trezor Suite?

Displaying and managing NFTs is not supported by Trezor Suite and there are no immediate plans to add support for them. To view your NFTs, you will need to use an explorer with a dedicated gallery function, such as opensea or a mobile app to which you can import your public key. See more about this in the section Seeing your NFTs in a gallery.

Can I see my NFTs on my Trezor screen?

Your Trezor homescreen can only be set manually. To display an NFT on your Trezor screen, simply download the image your NFT links to and open Trezor Suite, then use the Change Homescreen function in Device Settings to load your image on the device. This is covered below in the section How to add an NFT to your Trezor homescreen.

Does Trezor support EIP-1559?

Both models of Trezor hardware wallet supports EIP-1559, an Ethereum improvement that makes gas prices more predictable. That means it is best to use an interface that supports EIP-1559 when buying NFTs because it reduces the chances of a failed transaction and may help ease transaction costs in the long run.

Speaking of hardware wallets, as of version 10.8.0, Trezor now supports EIP-1559 on Metamask!

What is EIP-721 and what does it have to do with NFTs?

The NFT standard, EIP-721, is an Ethereum improvement proposal that provides a set of rules for how to handle NFT metadata. It is different from the standard used for ERC-20 tokens because it is tailored to each token being distinct rather than one of many identical fungible tokens.

Another standard with an awkwardly similar name, EIP-712, improves how data is presented during signing and is also sometimes encountered when listing NFTs for sale on particular marketplaces. This standard is now fully supported by MetaMask as well as both Trezor models.

Know what you’re buying!

Due to the limited block space and fees being dependent on data, most NFTs created today do not include the actual image, video or audio data that the NFT represents, rather they simply include a link to the image hosted elsewhere. This link is what you prove ownership of with your NFT.

Always make sure the NFT you are buying is what you expect. If the token’s on-chain data does not include the actual artwork, the artifact it links to can be swapped out at any time, leaving you owning rights to a hyperlink of something you did not intend to buy.

How can I store NFTs with a hardware wallet?

Hardware wallets are the best way to protect your cryptocurrency, because they keep your seed (your master key) offline while still allowing you to easily sign transactions. Securing NFTs by storing them in a hardware wallet is a must if you plan to hold them for any significant period.

To store NFTs with a Trezor hardware wallet, you will need to have a third-party app installed that is capable of managing NFTs. One popular app is MetaMask, a browser wallet extension that supports Ethereum NFTs. Once MetaMask is installed, you will need to set it up to use your Trezor seed for authentication. Those steps are covered in the next section.

To help understand what is happening when you connect your Trezor to a third party app, let’s look into how it works. First, your Trezor contains a seed, 12 or 24 words that generate all the keys and addresses associated with your assets. That seed never leaves your device: when a transaction needs to be signed, the transaction data is sent into your Trezor, signed offline, and then passed back out.

Using a third-party app, the exact same thing happens, but rather than Trezor Suite preparing the message data, the third-party app sends the message to your Trezor device. Since the Trezor can only accept a specific format, you don’t need to worry too much about which apps or extensions you connect to, as long as you use your Trezor to ensure that the transaction recipient address, amounts, and fees, are correct.

This is where Trezor’s Trusted Display comes in — your Trezor screen will only ever show you the data that will be signed, so if a malicious attacker swaps the address for one of their own, or alters the amounts being sent, your Trezor will let you see that the data is not what you set so you can cancel the transaction.

With NFTs, transactions are carried out like any other transaction involving a smart contract. To receive them to your hardware wallet, you will need an Ethereum address, which can be generated in Trezor Suite or any other third party app connected to your Trezor, such as MetaMask.

Once you have a secure Ethereum address, it’s simply a matter of withdrawing the asset from the custodial platform (Opensea, Rarible, Foundation, and so on) and sending it to the Ethereum address to which you own the keys. To manage the NFT afterwards, you will need to use a third party app, so let’s see how to do that in detail.

How do I use MetaMask with Trezor to manage my NFTs?

Adding NFT tokens to your hardware wallet is actually very simple. All you need is an Ethereum address that has been securely generated offline by your Trezor. Do so by connecting your Trezor and creating a new Ethereum account in Trezor Suite, then transferring your NFT to that address. This way you have sole control over the keys associated with that NFT. Let’s go through it step by step.

1. Set up an Ethereum account in Trezor Suite

To store NFTs, all you need is an Ethereum address to send them to. As NFTs are assets which can appreciate value, it is essential that you know you are the only person in control of that address. The only way to know for sure is to generate your keys securely offline, which is why using a Trezor is so important.

In Trezor Suite, visit the Accounts page and click the green plus (+) sign next to My Accounts.

This will open a menu for adding new coins. Click on Activate more coins, choose Ethereum from the list, and click Find my Ethereum accounts.

Now you have a new empty Ethereum Account. To get your receiving address, stay on the Ethereum account main page and click Receive, and then Show full address.

Double-check every character of that address against the one shown on your Trezor screen. If they match, you’re good to go and can copy the address. If not, there may be malware on your host computer and the address must not be used.

Once you have verified the address using your Trezor, you can start using it for receiving NFTs, ERC-20 tokens and other Ethereum transactions.

2. Connect your Trezor to MetaMask or another interface

Now that you have an address to send your NFTs to, you may want to install an interface that will communicate with the NFT marketplace you plan to use. MetaMask is a widely supported browser-based extension that supports Trezor and can be used to manage NFTs on platforms such as Opensea, which also serve as a gallery.

Not used MetaMask before? Here’s an overview of how it works with Trezor.

To connect to MetaMask, first install the extension and create a new account with a password, and write down a backup of the recovery seed it generates. This account will not be used but it needs to be set up before you can add a hardware wallet to the extension.

Next, click on the circle in the top-right of MetaMask interface. A dropdown will appear showing all connected accounts. Click Connect Hardware Wallet and a new page will open.

Choose Trezor from the options shown and you will be redirected to Trezor Connect. This is Trezor software that allows third-party apps to communicate securely with your device.

Select which Trezor you wish to use and allow the MetaMask extension to read public keys from it.

Check the account you are exporting is correct and click Export. Your Trezor must be connected and unlocked. Then, enter any passphrase associated with the account.

Now, MetaMask can read your public keys, and see which Ethereum accounts are associated with your Trezor seed. Note that this means all transactions from any account may be traced back to you.

Select an account to use, making sure you choose the one you set up earlier, usually the first option on the list, and click Unlock.

All the listed accounts should match Ethereum accounts generated in Trezor Suite.

NB: Your NFT will not be lost if you accidentally choose the wrong account to use with MetaMask at this step, but for security reasons you should make sure it perfectly matches the address shown on your Trezor in the previous step. Ethereum accounts only have one address associated with them, so the other accounts shown at this step can be found by adding more Ethereum accounts in Trezor suite, as shown in step 1.

Your wallet address will now be ‘watched’ by MetaMask and any transactions initiated through this MetaMask account will need to be signed by your Trezor.

Now you can use MetaMask to manage NFTs on any supported platform and, as long as you ensure you always use the account connected to your hardware wallet, all your Ethereum and related assets will be secured offline by your Trezor.

3. Buy an NFT or transfer one to your hardware wallet

With MetaMask active and your Trezor connected, you can now start buying and transferring NFTs securely. Head over to your favorite marketplace and, if you choose something you wish to buy, carry out the transaction using your Trezor-connected MetaMask account.

Sales of NFTs through a marketplace are usually carried out by a smart contract. That often means funds are held by the marketplace until the sale is confirmed, at which time the NFT is transferred. Interacting with smart contracts and transferring NFTs both take a lot of data. Even if the NFT is simply a link, expect to pay very high transaction fees when buying your NFT.

Always make sure the information shown on your Trezor screen matches that shown by MetaMask.

Confirm the purchase in MetaMask and then check all transaction details are shown correctly on your Trezor before completing the purchase. If you bought an NFT at final price, it will take some time for the purchase to complete and for the NFT to arrive. If you participated in an auction for an NFT, you will need to wait until the auction concludes before you receive your NFT or your allocated funds are returned.

Once completed, the NFT exists at the Ethereum address controlled by your Trezor. That means it is safe from online attacks and you are in full control of what happens to it. But bear in mind that in many cases images linked to by NFTs can be switched out for another image completely unrelated to what you had meant to buy. The Cryptokitty NFT bought above screenshot is just a code that represents the ‘genes’ of the cat, but the image itself does not exist on the Ethereum blockchain.

Finding the token in MetaMask

Your NFT probably won’t be shown in MetaMask automatically, so you will need to add it manually. First, open the MetaMask extension and navigate to your Trezor account there. Open the Assets tab, click on Import tokens and then switch to the Custom Token tab. Fill out the Token Contract Address — this is listed publicly and can be found by searching on the project homepage or through a block explorer like Etherscan — and set 0 as the Token Decimal. Click Add custom token and you should now see a token in your MetaMask. You can now also use the MetaMask mobile app account to can view your NFTs in a gallery.

How to add an NFT to your Trezor homescreen

While NFTs are not natively supported in Trezor Suite, you can always save the image that your token points to and then load that image into your Trezor. To add an NFT as your homescreen image, go to Device Settings in Trezor Suite and scroll down to Customization.

Click Upload Image and upload a copy of your NFT image, preferably resized to 144x144 pixels. Confirm the change using your Trezor.

NB: You may need to experiment a few times to find the ideal placement for your NFT to display properly on your Trezor screen.

Seeing your NFTs in a gallery

To view all of the NFTs stored on your Trezor, just export your account address (i.e. your public key) into any third-party NFT viewer app.

View NFTs held by any address — even thos you don’t own —  by importing the address into an NFT gallery app
NFTs at any address — even those you don’t own — can be displayed in a watch-only gallery app.

With access to your address the app can see what assets you hold, but is not able to interact with them. Open Trezor Suite, go to Receive and click Show full address, or in your Trezor account on MetaMask click the three-dot menu and select Account details to be shown your address.

Marketplaces often also have gallery sections, so if you purchased your NFT on one you may already be able to browse your collections there.

What happens to your NFTs if you lose your hardware wallet?

As with other cryptocurrencies, NFTs are not stored on your wallet. They exist online, but the keys needed to move them between owners are kept on your Trezor. If you lose your Trezor, you lose your keys. That’s why you must keep your Recovery Seed safe, so you can restore the keys on another wallet if anything happens to yours.

As long as you have a safe backup of your recovery seed, you will be able to recover your keys on any compatible wallet. That means that your NFT will be right where you left it once you restore your wallet.

--

--

Innovating since we founded the industry in 2013 with production of the first crypto hardware wallet, the Trezor One. Open-source, secure, community-driven.