Passphrase firmware Trezor 1

Hi,

I have been in the Crypto space since 2017 and I understand how the math works, for the most part. I am not the first one to report that some of the passphrases I entered into Trezor1 back in 2021 show an empty wallet that has never been used. However, I still have the original piece of paper I used to write down the passphrases, and of course I also have the original 24 seed words written down. Of the four passphrases I set up in 2021, all of which I used, only one shows that it has been used and has bitcoin in it. The other three show no transaction history, even though I wrote down what I did back in 2021, and are, of course, empty. I have the same device, everything is written down, and nothing was changed other than firmware updates since that time. I have read on reddit that others have also had this problem. For me this is not a big deal because I was just testing the passphrase feature at the time and never put any significant amount in any of the wallets. However, I would never trust using the passphrase feature for any amount I wouldn’t be willing to lose. This is a problem because with the advent of super computers it may be a matter of time before prime number elliptical curve cryptography becomes vulnerable. (Look up the 30 mod problem, if you are not familiar with it). Passphrases create a new primary key for each passphrase created and therefore significantly reduce the risk of primary key discovery. I am asking Trezor a very simple and easy to implement strategy, if it hasn’t already been done since 2021 (and if it has please let me know): Whenever beta testing a firmware update, test to make sure that passphrase accounts from 1, 2, and even 5 years ago, or longer, still work with the new firmware, and let the community know that this testing has been done. Otherwise, there would always be a limit as to how much crypto I, and I am sure others, would feel comfortable placing on any Trezor. Thank you.

Hello, thanks for reaching out!

Since the inception of Trezor, we have had a battery of tests, both automated and manual, that verify that behavior of old accounts is still the same with all new firmwares.

Which … turns out, it is.

The passphrase is an integral part of the BIP-39 specification. There are no changes to the spec, and as such, there have never been any changes to the passphrase algorithm whatsoever.

All your passphrase accounts are predetermined and fully based on your seed words plus the passphrase. It does not matter when you “created” them, they are an integral part of your seed from the very beginning.

There was never a firmware update that would change which accounts are derived from your seed and passphrase.


In your case, you have four passphrases, out of which one works. You also have your 24-word seed backup.

The one working passphrase essentially confirms that your seed is correct – unless you played around with multiple seeds for which the backup was lost.

Next obvious option is that you are typing the passphrases wrong. (I apologize that I doubt you, but in full honesty: (1) wrong passphrase is the leading cause of lost funds, and (2) that is also true for people who are “100% sure” that they have the right one. Hundreds of cases over the years, where it turned out that yeah, the passphrase was wrong after all.
Like. I want to believe you if you say that you have the passphrases right.
But please also double- and triple-check yourself. Typos matter. Upper- and lower-case matters. Spaces matter. Make sure you are not misreading some of the letters. Etc.)

Next obvious option is that you have to enable coins in Suite settings. By default, only Bitcoin is enabled. If passphrases B, C, D, only have Ethereum balance on them, but passphrase A has Bitcoin, it will look like passphrase A works and B C D don’t.

Less obvious, less likely options:

  • Random connectivity problem that just happened to hit you while you were typing passphrases B C D. Try again on a different day and maybe the problem magics itself away.
  • You used, e.g., Account #2 from passphrase B, but Account #1 has no balance. Suite is not trying to look into Account #2 if Account #1 is empty. In this case, you’ll need to use a different wallet software, or reach out to support via Support | Trezor Knowledge Base chatbot, I don’t know the recommended steps in such case.
  • Discovery bug in Suite – similar to the previous point, you’d need to add an account manually or use a different wallet software.

There is no singular “this problem”.
There are a lot of cases where people lose access to their coins. This often happens “after a firmware upgrade”, which very often coincides with “taking the Trezor out of storage after months or years of not using it”. This is breeding ground for user confusion. We try our hardest to make everything as simple as it can be, but this field as a whole is not yet mature enough – and if you try to re-do something you haven’t done in a long time, you might do it slightly differently. The tech is rather unforgiving here, and the result is (seemingly) empty account.

Hi,

Thank you for the response.

I agree that many things can lead to this problem. However, I have lots of experience with Trezor and this was absolutely not user error. I have restored this Trezor several times from the seed, and so I know the seed is correct. I also wrote down the passphrases as such (shown here without revealing the actual passphrases) ie. Donkey (Upper case D) (Space) Kong55 (Upper Case Kong). I have used this many times using this exact formula, and it has always worked, until recently. I intentionally did not use these passphrases for several years to test out this use complaint, but have continued to the the Trezor since 2021. I am not forgetting how to use the Trezor or the passphrase function. I just intentionally did not use these passphrases for several years to see what happened, and, sure enough, they open an empty wallet. I think that it is not good enough to just assume that all of these problems are user error. Most probably are, but not all. How difficult would it be to just create some accounts with passphrases and store a very small amount of bitcoin and just test them with each firmware and/or Trezor Suite upgrade to make sure everything still works? It is arrogant to think that just because the primary keys generated from the seed/passphrase combination should be stored on the blockchain if a transaction took place that the Trezor will automatically be able to access them after upgrades. Why not spend a few minutes with each upgrade and test this out to make sure?

To be more precise, I write it like this with an arrow pointing to the Uppercase letter(s):
Donkey (Upper case D) (Space) Kong55 (Upper Case K).

My apologies. I did not see this when I first responded.

I see your point, I totally do.
Unforutnately, over the years I’ve had multiple discussions exactly like this one, and I have personally spent dozens of hours looking for a possible bug that was never there.

To be clear, I’m not saying that this is necessarily user error. It might not be.
However, from past experience, it is overwhelmingly likely that it is not a firmware bug related to passphrase handling.

Why am I so sure? Because (a) there has never been such bug in the history of Trezor, (b) there was never even a change to the passphrase behavior between firmware versions, (c) firmware does not care when you “created” a passphrase account.

To firmware, this is all fully deterministic. Now or 20 years ago or 20 years in the future, you supply a derivation path, which gets combined with your seed and your passphrase, and produces a public/private keypair, from which you can derive an address.


To restate, it is very possible that there is a software bug involved somewhere.
It could be that the Suite software is looking at the wrong derivation path, or not looking at all, or looking right but not getting the right backend responses.

Given your level of diligence, I assume you have the list of addresses available to you? And you can use a blockchain explorer to verify that the addresses actually do have balances?

You might also know the account type (legacy / p2sh segwit / native segwit). After entering the passphrase that is showing zero balance, please try manually adding a Bitcoin account of the matching type. If that account shows up as empty, note down the first receive address and the derivation path for that address. You can compare it to the addresses you have on hand.

It would be somewhat easier if you could share the addresses in question, and possibly also the relevant xpubs. Given that the amounts are low, you may do that publicly here on the forum if you choose to do so. If you do not feel comfortable doing that, you may reach out to support via [Support | Trezor Knowledge Base] chatbot, request speaking to a human, and refer to this forum post.

Hi. You are absolutely correct that the “25th” seed (passphrase) combined with the original 24 seeds of the Trezor cannot and does not change with a firmware (or Trezor suiite) upgrade. However, as you stated, a firmware upgrade may very well cause the software to look for the wrong derivation path. The bottom line is the same: when the correct passphrase is put into the Trezor, the wallet is not found. That is a poblem!

Unfortunately when I experimented with this back in 2021 I assumed everything would work, and so I only wrote down the exact passphrases and how much I transferred into each passphrase wallet. Thee easiest example is this: the passphrase was a three let word: Pop (capital P) and .001 bitcoin was transferred into that wallet (only one wallet address was made for each passphrase wallet and I still have the origin piece of paper on which I wrote “Pop” and the other passphrases. I also wrote down how much bitcoin I transferred into each wallet, and whether that bitcoin was ever sent out from that wallet. There is almost no way mess up such a simple passphrase, which is why I made it so simple. I did not write down the addresses, unfortunately, but I think I am going to try this again in the future with a small amount of bitcoin and this time write down the addresses

Just to check, I recently downloaded Trezor Suite versions (Linux) from 2021 but again did not find any of the wallets, except for one, mentioned before. This makes me think that somehow one of the firmware upgrades made the Trezor unable to find the correct derivation path. I am not able to downgrade the firmware from the current version the one in Fall of 2021, a far as I am aware, so I cannot confirm this.

“I am not able to downgrade the firmware from the current version to the one in Fall of 2021”

Trying an old Trezor Suite is the most reasonable thing to do, so i’m sorry that it didn’t resolve your problem.

A thing you should try is manually add some other types of accounts, see e.g. here.

Yes, that won’t be possible on a Trezor One.

I could provide you with instructions to build a custom version 1.10.3 installable on your Trezor – it would appear as “unofficial firmware”. However, I believe that this would be pointless, because…

…that’s the opposite of what I said.

The derivation path to use is provided by Suite. Any firmware, past or future, can render any derivation path that the wallet software chooses. If there was a change to the derivation paths, this would be a Suite-side change.

In your case, it seems most likely that account detection has failed somehow and Suite is simply not looking in the place where your coins are.

Thank you for clarifying.

The area that I understand the least is the Trezor software and how it works. That is the primary reason that I created these passphrase accounts so I could test everything and learn before putting any significant amount in.

With the original 24 seeds (no passphrase wallets), I have never had a problem restoring wallets, or finding coins, regardless of the firmware or the Trezor Suite. I have two questions:

  1. Why is it that a different version of Trezor suite, with a different derivation path, might not be able to find coins in a passphrase wallet but can find them in the original (no passphrase) wallet, or is it also possible that this could happen with the no passphrase wallet, and I just haven;t experienced that?

  2. What exactly are the purpose of firmware upgrades (I realize there may be many) and please name a reason that someone might want to go back to an earlier version of firmware (if they are able to)?

Thank you.

It is absolutely possible with a non-passphrase wallet too. I am not as familiar with Suite code as I am with firmware, but I fully expect that there is no difference after you select a passphrase.
(Of note: you can enter empty passphrase on your Trezor screen, and in that case Suite doesn’t know that the passphrase was empty, so it doesn’t know that it’s the “standard” wallet.)

As to the reasons: well, generally, this should not happen, but there may be changes related to the detection process.

When Suite tries to open a wallet (passphrase or not), it is supposed to take the following steps:

  1. list all enabled coins
  2. for every enabled coin, list the available account types
  3. for every account type of every coin, discover all accounts

The account discovery works like so:

  1. start with account #1
  2. start with address #1 of current account
  3. query transaction history of current address
  4. if there is transaction history, calculate balance and continue to (3) with next address
  5. if there is no transaction history, make a note and continue to (3) with next address
  6. if 20 consecutive addresses have no transaction history, stop.
  7. if the current account has any transaction history on any of its addresses, go to step (2) with next account
  8. if there is no transaction history at all for the current account, stop account discovery

So there are multiple points of failure:

  1. Your coin may not be enabled – this is almost certainly not your problem because it’s always BTC and the standard wallet works
  2. An account type may be ignored by mistake. For example, Suite may choose to scan only SegWit accounts, and “forget” (via some bug) to scan Legacy accounts. If your passphrases have funds in the Legacy account type, you could add that account manually to force scanning it
  3. You sent your funds to account #2 instead of account #1. Account #1 is empty and has no history, so the scan will stop there. Some versions of Suite allow you to manually add a second account of the same type, if the first one is empty – perhaps this is what you did back when, but it’s not possible now?
    (if this were the case, using the old version of Suite should help, or you’d need to use a 3rd party wallet such as Electrum or Exodus)
  4. you sent your funds to address #21, so addresses #1 through #20 are empty, and Suite doesn’t scan past that (so called “gap limit”). The account appears empty.
    It should not be possible to get address #21 from Suite without using the first 20, and also an old version of Suite wouldn’t see those funds either.
  5. the backend may not respond, or its data is broken for whatever reason, making Suite think that there is no transaction history
    unlikely, considering that multiple passphrases are affected but some aren’t.

Plus of course there’s space for random bugs.


Same as any kind of software updates. Typically one of:

  • new features are added – such as UI improvements, support for new coins / hardforks / account types / operations, multi-language support, etc.
  • bugs in existing featurs are fixed – such as certain kinds of transactions being generated wrongly, or an unresponsive UI element
  • security issues are fixed – such as the ability of an attacker to trick you into burning your coins as fee

As the firmware evolves, sometimes the protocol for communication between your PC and the Trezor can change. This may break 3rd party wallets – if you are using a coin available exclusively through an affected wallet, you may need to downgrade to last compatible version.

Sometimes we add security protections that are incompatible with how some coins function – I would like to say that yes there have been many cases where some feature of some altcoin relied on what boils down to a security hole in another coin!
The issue may be resolved by the coin developer – but, again, sometimes users would need to downgrade to a “vulnerable” version to continue to transact.

Lastly, from time to time we remove firmware-side support for rarely used coins, so users of these coins may need to downgrade to continue to transact.

If you only use Trezor Suite, there should never be a reason to downgrade your firmware.