Giving every customer their own deposit address is the cleanest way to know who paid. It also scatters your funds across thousands of addresses. Sweeping collects them.
What a sweep is
A sweep moves a confirmed deposit from a customer's address to one of your own wallets, typically a treasury or payout wallet. It's an internal move, not a payment: your customer's balance in your system doesn't change, only where the coins sit.
Sweep tasks
In Valtu a sweep task says:
- from where: every customer (user) wallet, or a list of wallets;
- to where: a treasury or operational wallet;
- which coins: all, or a list;
- when: every 5, 15 or 60 minutes, every 6 hours, or once a day;
- how much is worth it: a minimum USD value, so you don't spend a dollar in fees to move two.
When a task runs, it queues one sweep per wallet and coin worth moving. Sweeps go through the same transfer pipeline as payouts, with the same signing rules and a full record.
Gas, again
Sweeping USDT out of an address that holds only USDT needs a network fee in the native coin. Your gas wallet sends exactly what each sweep needs, within its daily cap. On Tron, energy can be rented instead.
Never under a pending payout
A wallet with a payout waiting isn't swept on that network: the sweep would take the funds (and, on EVM networks, the nonce) the payout needs. It's picked up on a later run.
Bitcoin
On Bitcoin, the sweep pays its fee from the coins it moves, so no gas is needed. See Bitcoin on Valtu.