I have created ETH HD wallet and want to send all coins received on those HD wallet address to an admit ETH wallet , this is easy but problem stands as I want to send the ether without any gas fees. I was said it could be achieved , but after multiple google I was clueless on how I could achieve it ,I landed here for help !
How to avoid gas fee by sending ETH automatically from HDwallet addresses to my specific ETH address
-
1Transferring ether costs 21000 gas units per transaction. No way around it.– goodvibrationCommented Feb 10, 2020 at 12:06
-
the sender has to pay the extra amount for the gas fee for transferring to Admin wallet. But I don't know how could we do that ? and if it can be done in contract , is the contract written for individual wallet address or how such address is generated ? heres' alot of question ,but to answer you It can be achieved by making the sender pay the gas instead we pay for it.– Redmen IshabCommented Feb 10, 2020 at 12:09
-
Your bunch of questions here is totally unclear, let alone the fact that you are not describing your system in a sensible manner. Please spend some time to formulate a plain and clear description of what components your system consists of, how they interact with each other and what is the overall purpose.– goodvibrationCommented Feb 10, 2020 at 12:30
1 Answer
Address of your HD wallet is most probably so called “Externally Owned Address” (EOA), so it does not have any byte code associated and thus all the ether sent to it just settle on its balance without triggering any logic.
However, you may create another address, that will automatically forward incoming ether transfers to admin wallet, and this address will be under control of your HD wallet, so the owner of HD wallet will be able to set what address incoming ether transfers are forwarded to.
In order to create such address you need to deploy smart contract looking like this:
pragma solidity ^0.6.0;
contract Forwarder {
address private owner;
address payable private destination;
constructor () public {
owner = msg.sender;
destination = msg.sender;
}
fallback () external payable {
require (destination.send (address (this).balance));
}
function setDestination (address payable _destination) public {
require (msg.sender == owner);
destination = _destination;
}
}