Warning: Relayers are currently an experimental feature
Relayers are a mechanism to provide an extra step of anonymity when withdrawing. Instead of directly initiating a withdraw from the users wallet, a third-party wallet is used.
When you don’t mind the fees and want an extra hop between deposit and withdraw.
If you want to withdraw to a wallet that has no BNB in it
If you want to directly send funds yourself instead of passing the note to the target user
When withdrawing a deposit, the wallet that called the
withdraw function is recorded on-chain. Think of it as a “withdraw 0.1 BNB to wallet 0x123” record that gets saved publicly.
If you withdraw with a different wallet than the one you deposited with, this is absolutely no problem and by design. The problem however happens when the wallet that deposited the funds is the same wallet that called `withdraw`. This exposes the transaction deposit and destination and makes transactions public.
Another problem with the current design is that you can’t use withdraw from wallets that have no BNB in them because each transaction costs gas, and that includes withdrawing. So how do you get funds to a new wallet so you can withdraw, without exposing where those funds are coming from?
This is where relayer come in.
Relayers have no way to steal your funds.
Relayers are however off-chain entities that need to be trusted: A Relayer could record your IP, wallet and other transaction details.