Can we have an account with multiple receiving addresses (public key) in the Binance Smart Chain or Tron? How are exchange wallets defined for users in these two networks (I think they don't have a custodial wallet for each user)?
2 Answers
On EVM networks, each account has precisely one address.
Exchanges usually generate one or more deposit addresses per each user and keep the private keys, so that the exchange is able to later withdraw the funds from the deposit addresses to a hot wallet address.
Since on EVM networks you cannot send a transaction from multiple addresses, they loop through the deposit addresses and make a transfer from the deposit address to the hot wallet one by one.
If there's no native token to cover the transaction fees from the deposit wallet, it depends on their internal processes. I'm only assuming that addresses without native tokens have lower priority, and the exchange might usually send native token to the address (to cover for the transaction fees) and withdraw ERC-20 tokens from this address only if necessary.
I've also seen a different approach in minority of cases. The deposit wallet is a smart contract that can accept both native and ERC-20 tokens, and can be withdrawn from only by an authorized owner.
Since it's a contract, it doesn't have a known private key, but you can interact with it using a multicall. Example:
- Owner address (known private key) interacts with a multicall contract:
- Payload: "transfer 1 ETH from deposit contract 1, and 10 USDC from deposit contract 2"
- The multicall contract loops through the payload, and sends internal transaction to each of the deposit contracts.
- Each of the deposit contracts validates that the request is authorized, and then performs the transfer.
All of these actions cost transaction fees - all paid by the owner address - and can be wrapped in one transaction (from the owner to the multicall contract).
Plus you're effectively able to withdraw from the deposit contract even though it doesn't hold any native tokens.

- 40,554
- 8
- 72
- 100
-
Great thanks, How is a smart contract enough for all users? Is it necessary to deploy a smart contract for each user?Do you know an example of smart contracts for this purpose on the Binance or Tron network? – softweng Jan 12 '23 at 17:11
-
I saw somewhere that a HD-Wallet can also be used for this purpose, do you know about this? Is it possible to use HD-Wallet in BSC or Tron network? – softweng Jan 12 '23 at 17:19
-
@softweng Yes, you can use HD-Wallet to generate multiple private keys from one mnemonic. But then the process is the same: one private key equals one address... As for the smart contracts, that's offered by [Tatum](https://tatum.io/) (specifically the [Gas pump](https://apidoc.tatum.io/tag/Gas-pump) feature) and possibly others (disclaimer: I currently work with Tatum along with few other companies). Unfortunately I don't think I'm allowed to share any specific users of this feature. – Petr Hejda Jan 12 '23 at 17:53
-
Thanks, do you know ETH in HD-Wallet has xpubs for generate public address? – softweng Jan 12 '23 at 18:40
-
@softweng There are xpub keys on Ethereum, you can derive them from the mnemonic phrase. Code sample in this Ethereum stackexchange post: https://ethereum.stackexchange.com/a/83121/110998 – Petr Hejda Jan 13 '23 at 09:13
You can use HD wallet concept on tron address. For more information refer to following link:

- 485
- 1
- 6
- 16