1

Is there a way to send ether from my address to another address on ethereum main net without using any intermediary tools or services. That is, I don't want to use third party wallets or web sites or exchanges. Interact directly with the ethereum network. Is there a way to do that?

1 Answer 1

0

Assuming that you're defining "middle men" as "third-party wallets or web sites or exchanges", then you can avoid all middle men by broadcast your signed transaction directly to a bunch of live Ethereum nodes.


Using existing Ethereum implementations

If you're willing to not consider geth (or some other Ethereum implementation) as a middle man, then you can use the implementation to sign and send transactions. Here are some docs on how to do this.


Not using existing Ethereum implementations

You may consider geth (and other third-party implementations of the Ethereum protocol) as falling under the "middle men" definition here. In that case, you'd want to construct and broadcast the transaction over the wire yourself to live Ethereum nodes.

Describing exactly how to do that is beyond the scope of this question, but here are some good resources: devp2p, this, this, and this.

You'll probably end up needing to implement some of the Ethereum protocol; notably you'd need to implement parts of the Ethereum Wire Protocol and the Node Discovery Protocol if you don't already know the IPs of some nodes, you'd also need to implement the relevant parts of the protocols that the previous protocols depend on like RLP, JSON-RPC.


Ramblings

This question begs a more philosophical question of "who do you trust?" and "who really are the middle men you want or need to avoid?". Here is an incomplete list of pieces of the puzzle we often implicitly take for granted as middle men:

  • Coinbase, Binance, or other centralized exchanges.
  • MetaMask, MyEtherWallet, Trust, or other software wallets.
  • Trezor, Ledger, or other hardware wallets.
  • Infura, Alchemy, or other centralized Ethereum gateways.
  • Etherscan, MyCrypto, Blockchair, or other websites that let you broadcast transactions directly.
  • geth, OpenEthereum, Py-EVM, or other Ethereum protocol implementations.
  • Any of the numerous open-source libraries that these implementations use.
  • clang, rustc, CPython, or other language implemenations.
  • Linux and GNU, Windows, MacOS, or whatever other OS.
  • Wi-Fi or Ethernet implementations.
  • Software or hardware of the internet router or modem.
  • ISPs.
  • The physical wires, relays, and other networking equipment that make up the internet.
  • The hardware that all this stuff is running on.
  • Yourself? It's not unlikely that you'll make a critical mistake implementing complex protocols on your own.

I realize this is a bit pedantic, but it is worth defining explicitly and exactly (and I do mean exactly) who the middle men you are willing to keep as middle men are, if that is something you care about.

But I think for the purposes of this question, the answer is probably "you can use geth directly".

2
  • Thank you very much. This pretty much answers my question. Thanks for your time answering this query. Mar 22 at 7:45
  • No problem! It's an interesting question! Mar 23 at 0:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.