Background
Metamask, like other wallets, uses infrastructure to communicate with the blockchain. By default it talks to Infura, one of the biggest infrastructure providers in the ethereum ecosystem.
How communication works
The way this communication takes place is through Remote Procedure Calls (RPC), and call data is formatted as Java Script Object Notation (JSON). This is why you might see the term JSON RPC somewhere. For a more detailed explanation, check out Infura' documentation.
MetaMask polls for information about the blockchain's state, including gas prices, wallet balances, and more. After creating and signing transactions, it sends these to the selected RPC endpoint.
When interacting with EVM-compatible chains (other than Ethereum Mainnet), such as testnets, Polygon, or Gnosis Chain, MetaMask must use different RPC endpoints. Chainlist provides a directory of established endpoints to facilitate this process.
Until now, advanced users have manually edited their network configurations to use personal nodes or services like Flashbots when working with the Ethereum Mainnet.
GasHawk's role
GasHawk acts as an intermediary between MetaMask and the node provider.
Being in the position between a Wallet/Service and the Node provider allows GasHawk to:
CAN DO | CAN NEVER DO |
---|---|
Hold transactions | Create transactions |
Delete transactions | Alter transactions |
Record activity | Access private keys |
Report the state of the blockchain | Alter the state of the blockchain |
When you add a custom network, MetaMask warns you about these risks:
Key Takeaway: Being your RPC node does NOT grant GasHawk the ability to steal your funds. Even if GasHawk were ever compromised, your funds would remain safe. 😌