I'm trying to build a mobile software Wallet made in Flutter with a Bitcoin Core Full node that communicates with a Node.js backend.
The problem I can't find the answer to is: how can wallet softwares keep up all the incoming transactions from potentially thousands of addresses?
I wouldn't really like to rely on any third party APIs like blockchain.com but in the other hand Bitcoin Core and bitcoin-cli don't allow me to check transactions starting from an addresses other than the ones from manually imported wallets (which would be clearly impractical from a software that is expected to work fast, with multiple HD wallets and mostly of all, where I don't have to store the private key other than the user device.).
So, how do wallets work in this regard? Do they rely on a third party and if so, how are those parties able to work as well as (for example) blockchain.com? What am I missing?
If the solution is to import into BC all the wallets created via Dart, is there a way to manage thousands of users in one or more Bitcoin Core nodes ensuring 100% security and speed?
Thank you to everyone that provides as many details as possible.