Within a Vault account, user can generate multiple wallets. All wallets follow bip39 standard for all coins with a 12 words mnemonic seed.
All wallets use hierarchical deterministic address creation following the path m/49'/0'/0'/0 and each generated address has an index price which increments with the new addresses generated.
Each wallet has a master address using path m/49'/0'/0'/1 which is used for withdrawals and serves as an admin managed address. This address is the main hot wallet address which ultimately holds all the wallet funds
Sweeping is an advance feature used for multi address wallets used for businesses. When dealing with multiple addresses, sweeping balance to other addresses becomes crucial. Transactions in sub addresses can get swept to a the master hot wallet address or optionally to any address the wallet administrator wishes to send the funds. Vault provides a simple function to manage these transactions.
The sweeping occurs with the minimum blockchain transaction fee.
Wallets starting from v1.10 have an auto sweep and manual sweep functionality in which wallet admin can configure. Auto sweep automatically sweeps the funds to the master address every 5 minutes intervals. In case wallet admin turns off the auto sweep, he requires to manually sweeps them through the wallet interface or the endpoints provided.
Using manual sweep, wallet admin can decide the destination address for sweeping and it can be an address outside the user wallets e.g. cold wallet etc.
Why would I use manual sweep?
While auto sweep is more convenient, for businesses with many addresses and user base, manual sweeping can save significant fees on the blockchain for the wallet administrator. Transactions in chains such as Bitcoin can be batched and sent within low traffic times when transactions can get confirmed on the blockchain quickly.
Certain coins such as Ripple (XRP) have a simple way for identifying and creating unique deposit addresses by adding a Destination Tag in a transaction. All XRP addresses come with a random tag in the format as follows:
<master address> : <destination tag>
These addresses are separated by comma which is Vault standard. The tag in Vault is a 9 digit random code created and only associated with that specific address.
All funds regardless of their tag go to the master address however it is crucial to identify a transaction with a tag. Addresses receive funds that match the destination tag would only trigger the webhook notifications.
When making withdrawals, there is an optional meta field where user can add the recipient tag to attach in the transaction as well.
For more information and questions please refer to bitHolla Forum.