I have an application that will be generating addresses for each incoming transaction, and the number of transactions could grow quite large. Is there a maximum number of addresses that can be generated for a single seed, both from a practical and security standpoint?
An address is generated from 3 inputs :
- a seed
- a security level: 1, 2 or 3
- an index : an integer
In theory an integer can be infinite, in computer science things are often finite. In java integer range is from -2,147,483,648 to +2,147,483,647.
If you consider the java language to generate the addresses you will have 3 × 2 × 2,147,483,648 potential addresses if you use the 3 security level supported today. (or 2 times less if negative indexes aren't supported... I don't know if they are)
Regarding security: if you use all possible indexes and all security level you will start to re-use addresses and this a risk (limited on a fast network and if security level is high).
Note that if you plan to generate a huge amount of transactions and if many of them are between the same couple of actor: you should probably consider usage of flash channels