Post
Topic
Board Wallet software
Re: How many [btc]-addresses can be created for each seed phrase?
by
Dailyscript
on 01/05/2025, 01:26:26 UTC
I believe this question is more related to bitcoin technical aspects and I am asking this question in this section rather than in the section dedicated to hardware wallets.
Mnemonic algorithms like BIP-39 are essentially a Key Derivation Function[1] themselves (BIP39 uses PBKDF2 under the hood as well) and KDFs don't really have a limit on how many keys they can generate. You should be able to generate an unlimited number of them as long as you can change the inputs of the KDF and in case of BIP-39, you can do that since it takes 2 inputs: the mnemonic and the passphrase (the extended words).

On top of that you have the derivation path which has some limitations like the depth but by changing the index and the path itself you can generate virtually unlimited number of keys. That is: m/0, m/1, m/2, ... m/0/0, m/0/1, ..., m/0/2, ..., m/1/0, m/1/1, m/1/2, ..., m/0/0/0, m/0/0/1, ...

[1] https://en.wikipedia.org/wiki/Key_derivation_function
I didn’t realize just how much the system can vary not just with the seed phrase itself, but also how many different directions you can go. This explains better to the OP why wallets can support so many accounts or addresses from a single seed.

Quick one though, in practice, do you think changing the passphrase is more secure than just relying on deep path branching? For example if someone brute-forces a seed, is a strong passphrase still a decent second line of security?

I feel if somene steals your seed phrase they cant access your wallets without the correct passphrase. It is like a second layer of protection.