I created a test transaction to test broadcasting monero tx over Tor, from a computer running a full node.

On that computer, I started monerod with the following options:

./monerod --tx-proxy tor, --add-peer xmrtolujkxnlinre.onion:18081

Note that I have tor running as a background service, so the tx-proxy should work, and that is the known onion node for xmr.to.

The computer is behind a firewall and is configured to allow no incoming connections, but presumably it should be able to use this known peer to send a transaction, right?

However, the tx did not send. The wallet claims the tx is still pending in the tx pool, with no confirmations.

So, first question: Have I done something incorrect here?

Second question: If I were to restart ./monerod without the tx-proxy option, would it finally send out the pooled tx, or do I effectively need to start over?

1 Answer 1


--add-peer xmrtolujkxnlinre.onion:18081... that is the known onion node for xmr.to

Here is your misunderstanding: --add-peer is for adding peer nodes, nodes that will talk to each other on the Monero P2P network. It is not for using another nodes JSON RPC interface (which is all that xmrtolujkxnlinre.onion is offering up [ref]).

Thus if you want a full node to relay transactions to other nodes over Tor/i2p, you need to add a peer node that is listening for P2P traffic over an anonymity network via their usage of --anonymous-inbound ....

  • Thanks for clarifying. Is there a list somewhere of nodes that listen for p2p traffic over an anonymity network? I'm not clear on how such nodes can discover one another. I also tried moneroworld's zdhkwneu7lfaum2p.onion:18099 without success, so maybe that has the same issue (or maybe my node didn't rebroadcast the tx after I restarted the daemon with the moneroworld noded added as a peer)?
    – puzzler
    Commented Mar 7, 2020 at 2:37
  • The loose plan is for some trusted seed nodes first, to help the less technical users. Of course you can run a node on an anonymous network yourself in the meantime.
    – jtgrassie
    Commented Mar 7, 2020 at 3:14
  • That's essentially what I'm trying to accomplish, unless you mean something different by "anonymous node" than the intuitive meaning. My understanding is that the whole point of anonymity networks is to make my node anonymous to others in the sense that when one broadcast txs, the ip address of my node is unclear. Is there some other way to achieve this other than --tx-proxy to a known tor or i2p node? Is there some other useful definition of anonymity as a monero node?
    – puzzler
    Commented Mar 7, 2020 at 7:02
  • I was specific with my words in the answer: "anonymity network". As in, hide your source and destination IP addresses and encrypt traffic.There are of course a plethora of things that can be done which work to differing degrees. Nothing is perfect. At the lower end, just running your own full node for many will be sufficient, as a wallet sending a tx to your own node for relaying makes it pretty difficult for an adversary to determine the original broadcast node.
    – jtgrassie
    Commented Mar 7, 2020 at 13:12
  • You also need to understand that a wallet talks to a node via the JSON RPC interface, thus trivial to perform that over an anonymous network - and in fact the command-line wallet even has options to simplify further. Nodes relay txs to other nodes, and they do this over the Monero p2p network.
    – jtgrassie
    Commented Mar 7, 2020 at 13:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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