That is a good question. and could be a very common question for other users too.
So, Vault got 2 big concepts which user should understand :
- Wallet - A real crypto wallet
- Address - Address which bound with the wallet
Wallet can have balance, and multiple addresses which bound with it. All deposit or withdrawal requests (aka. transaction) through specific address uses this bound wallet to save or pull out the balance.
Addresses can be generated as much as user want on the wallet. As I mentioned above, every transactions through the address will use bound wallet as a backend. For example, If I send 1 BTC to vault generated address, It will be store on the bound wallet that address got. Not on the address itself. Which means, address doesn’t have any concept of balance. Balance is something up to wallet.
But, If you want to make balance concept per address (for some special use cases like crypto exchange, allocate addresses per users and let them have their own balance), It is possible to make your own backend system to track every activities and transactions to addresses you got. and calculate it on your own side.
So, conclusion is, something related with balance (such as deposit or withdrawal) will all happen on wallet side, but you could track which specific address asked that transaction and calculate + mark on your backend side to track each user (address) 's balance. It’s up to you!