Reputation: 334
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)?
Upvotes: 2
Views: 1905
Reputation: 1
This is how it generally works.
When a user clicks "deposit" button first time, The exchange calls the BTC node with getnewaddress command to generate the address, and displays it to user. User makes the deposit to that address. Bitcoin has walletNotify feature, so when the deposit hits the exchange node, it will notify the exchange API with transactionHash. Taking that txHash, exchange will call getTransaction API of bitcoin node and get all details of the transaction, including deposit wallet address.
Upvotes: 0
Reputation: 583
You can use HD wallet concept on tron address. For more information refer to following link:
Upvotes: 0
Reputation: 43481
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:
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.
Upvotes: 2