P2Pool: decentralized mining
Mine without a pool operator: your own monerod + P2Pool + XMRig, rewards straight from the coinbase.
12 min read · checked 2026-10-30
1. monerod with ZMQ
monerod --zmq-pub tcp://127.0.0.1:18083 --out-peers 32 --in-peers 64 \
--enforce-dns-checkpointing --enable-dns-blocklist
# upload under 10 Mbit/s: --out-peers 8 --in-peers 16--zmq-pub is required. A pruned node works.
2. P2Pool
./p2pool --host 127.0.0.1 --wallet YOUR_MAIN_ADDRESS_STARTING_WITH_4 --mini
# to mine to a subaddress of the same wallet:
# ./p2pool --host 127.0.0.1 --wallet YOUR_MAIN_ADDRESS --subaddress YOUR_SUBADDRESS --miniUse --mini (or --nano in recent releases) for small hashrate: shares are easier, so payouts are steadier. Open the P2Pool p2p port (37888 for mini, 37890 for nano, 37889 for main) for better connectivity.
3. Point XMRig at P2Pool
xmrig -o 127.0.0.1:3333How payouts work
When any P2Pool miner finds a Monero block, the coinbase pays every miner with a share in the PPLNS window directly. There is no pool balance and no withdrawal. Payouts are many small outputs, so later consolidate them with a sweep.
Limits
P2Pool needs your own node (disk, bandwidth). Very small hashrate can still go long periods without a share, even on nano.