Detect received transactions of thousands of Bitcoin addresses I'm implementing a Bitcoin payment system that generates bitcoin address for each user to deposit.
I use BitcoinJ to generate user's addresses and rawblock API from Blockchain.com to get every single block to check if my addresses are in any transaction output, then my system increases the user's internal balance.

I save scanned block height in the database and send a request for a new block every 10 minutes.

Is that solution correct? (I need testnet so I cannot use their Wallet Service)

Thank you.
This doesn't sound correct to me.


You're relying on a centralized service to fetch blocks.  What if their system has an error and sends you incorrect data?
What if their service is unreachable?
It doesn't seem like you have any way to handle blockchain reorganization.  You might end up crediting a payment twice, or crediting where a double spend was successful in a competing chain.


Consider looking into something like BTCpay which FOSS self-hosted bitcoin payment processor.