I am just starting my research in blockchain development, and after some time surfing in this website, I realized that it would be better if I ask my specific question by myself.
I am trying to find the most efficient solution to my mobile app wallet idea, which basically allows users to sign up/sign in, and store USDT in Tether and/or ERC20 networks, by depositing them to the user's wallet address. Also, i want to allow users depositing USDC in ERC20 network, as it is stable coin as well.
So far, I was researching about system design of my idea, and already played around with js and solidity code to create ERC20 wallet with depositing and withdrawing some ETH on test nets. I found some questions in here about if I need to create separate ERC20 wallet addresses for different ERC20 tokens(like in my case it is USDT and USDC). On the other hand, I wanted to ask how to make the flow of back end as cheap as possible, as in case if user creates the account, but never actually uses the wallet addresses. Do I have to create ERC20 and Tether wallet address for the user in actual blockchain? Or should I at first create it as local database, and if user decides to deposit tokens, I deposit to my company's wallet address, and then add balance to user's database account, which will act similar to 3rd party and let me control the funds of all users.
I am open to any resources where I can read about my issue, as I know that it might be not enough to get about my question from what I wrote.