Trezor Hardware account linked to Metamask not sending funds to other address/wallet

hi @punkcowsnft

No there is no reason for that since Trezor Suite is only an interface (the app actually has some more features such as setting up and controlling the device itself however since it is not important/related to this case so we can establish that it serves mainly as an interface).

So adding the Ethereum account to Trezor Suite prior connecting your wallet to MetaMask would not affect the situation a bit.

That’s not true since the set of the addresses you are offered to connect to after you export your public keys and enter passphrase (if used) is not random but derived from your private key.

This is actually related to your next question:

The simple answer would be yes, these are done by Trezor device because every address is derived from your private key (backed up by the recovery seed) that is always kept securely offline on your Trezor device and never shown, even to you.

The derivation process is as follow:

Recovery seed → Account private key → Private key → Public key → Address

Users can create as many addresses as they want without any costs. Please note that there is a soft limit of 1M addresses (Trezor firmware limitation) however if you disable safety-checks you could carry on further (which personally I see no point in doing so). Also I don’t believe that MetaMask would even allow you to connect address with such a high order.

Now regarding the derivation process itself:

A mnemonic phrase (recovery seed) generates addresses by taking the phrase and combining it with a piece of information called a derivation path. Together, they create any number of accounts, using complex math aka cryptography.

Speaking about Ethereum, the addresses ( which are basically unique identifiers) are derived from public keys or contracts using the Keccak-256 one-way hash function.

For more information please see following links:
https://medium.com/mycrypto/wtf-is-a-derivation-path-c3493ca2eb52

If you want to broaden your horizons even more I recommend reaching for the following book:
Mastering Ethereum by Andreas M. Antonopoulos, Gavin Wood

That has been basically answered since it was already stated that all addresses are derived from unique private key that is created and stored offline on Trezor device

There are basically two scenarios why is this happening.

A) there are some connectivity issues thus your Trezor can’t communicate properly with your MetaMask (browser extension). In such case try following:

  • Use supported browsers only. Either Chrome or Firefox (try both and try using Incognito/privacy mode as well).
  • Not only using a VPN, but also certain advanced Firewall or Antivirus settings, browser extensions (AdBlock, Privacy Badger, etc.), may cause connectivity issues, therefore please try to disable them as well.
  • On top of that, use only one application/website/browser tab with Trezor at a time. It is possible that they are clashing each other.

B)You are not using appropriate private key to sign the transaction (the same that was used to create the address from which you are trying to spend now).

This happens most often when using passphrase feature.
When the feature is activated (it is activated by default), the user is prompted to enter the passphrase which is then combined with the recovery seed on the device, and a new wallet is generated.

So extremely simplified: you can imagine passphrase as an extra word of your recovery seed, thus when being used (and because of the derivation process mentioned above) new wallets account and addresses are being derived.

And when it comes to signing the transaction:
MetaMask (as well as any other wallet) would be preventing you from spending your funds when the (appropriate) private key is missing.

These private keys for signing transactions are derived from the combination of seed stored on Trezor device and passphrase (if enabled and used). Hence, if different seed and/or a different passphrase is used then the private key differs and cannot be used.

In such case, previously generated wallets/accounts in third-party apps would become watch only wallets without the possibility spending the funds.

You can always conveniently check if you are using the right combination of seed and passphrase by looking up for the address that you are trying to to spend from using following tool: https://findeth.io/
If you won’t be able to find the address using the same seed (device) and passphrase (as you do when you try to sign the tx using MetaMask) then one of the inputs (or both) differs.

Also please see following video:
https://www.youtube.com/watch?v=QsIvndsFzOY&t=3s

2 Likes