P2Pool is a mining pool for Monero (XMR) with no pool operator. There is no central server and no pool wallet. Miners share work on a separate small blockchain, and each Monero block the pool finds pays all of them directly. This guide explains how it works, how to choose a sidechain, and how to run it with your own node and XMRig.
How P2Pool works
A normal pool collects everyone’s work on its server, finds blocks, and pays miners from its own wallet later. P2Pool does this without a server.
- The sidechain. P2Pool runs its own blockchain next to Monero. Miners submit block templates to it. A template good enough for the sidechain counts as a share for the miner who found it.
- Every share is a possible Monero block. Each template already lists payouts to all the miners with shares in the current window. When a template is good enough for Monero too, it is sent to the Monero network as a real block.
- The window. P2Pool uses a PPLNS (pay per last N shares) window of up to 2,160 sidechain blocks. At the default 10 second sidechain block time, that is about 6 hours. P2Pool adjusts the window to balance payout size and frequency.
- Uncle blocks. A share found at the same height as another one still counts, as an uncle block worth 20% less. So fewer shares are lost.
Because of this design, the project describes P2Pool as decentralized, permissionless and trustless: no one decides who can mine, and funds are never held by anyone in between.
Fees and payouts
| P2Pool | |
|---|---|
| Pool fee | 0% |
| Payout fee | 0 XMR |
| Smallest payout | About 0.00027 XMR (the block reward divided by 2,160) |
| Payment method | Inside the Monero block itself |
Your payout arrives in the block’s reward transaction, the first transaction of each block. Each miner payout takes only 38 bytes on the Monero chain.
Two rules follow from this:
- Payouts are locked for 60 blocks, about two hours, like every block reward. A normal payment unlocks after 10 blocks.
- Payouts only come when the pool finds a Monero block. If P2Pool has too little hashrate to find a Monero block about every 6 hours (the project gives about 15 MH/s as the line), some shares leave the window without a payout. Over time, the project says, payouts average out to what regular pool mining would pay.
Main, mini or nano
P2Pool has three sidechains. They are separate networks: your shares only count on the one you join, and each has its own status pages at p2pool.io and p2pool.observer.
| Sidechain | Start P2Pool with | P2P port |
|---|---|---|
| main | no extra option | 37889 |
| mini | --mini |
37888 |
| nano | --nano |
37890 |
You cannot use --mini and --nano together. The example commands in the P2Pool README use --mini. Look at the status pages before you choose: they show each sidechain’s hashrate and how often it finds Monero blocks.
The address you mine to
- Use your primary address, the one that starts with 4. P2Pool pays the address you give with
--wallet. - To mine to a subaddress, give both:
--walletwith the primary address and--subaddresswith a subaddress (starting with 8) from the same wallet. - Use a new wallet made for mining. Wallet addresses are public on P2Pool, so anyone can see what an address has mined.
- Setting an address in XMRig does nothing. P2Pool ignores it. Only the P2Pool command counts.
The P2Pool project lists wallets that can receive its payouts: the official CLI and GUI from v0.18.0.0, Monerujo from v3.0.2, Cake Wallet from v4.4.5, Monero.com by Cake Wallet, and Feather from v2.1.0. Our Monero wallet guide explains how to set one up and back it up.
Set it up step by step
You need a synced Monero node, P2Pool and XMRig. Download each one only from its official page: monerod from getmonero.org, P2Pool and XMRig from their GitHub release pages. The P2Pool project advises running them under a separate, restricted user account.
- Reserve huge pages. On Linux, the README suggests
sudo sysctl vm.nr_hugepages=3072, because monerod, P2Pool and XMRig all use them. On Windows, run XMRig as administrator once. - Open the ports. 18080 for Monero and the P2P port of your sidechain (see the table). Behind a router, you can forward them to your machine.
- Start monerod with ZMQ turned on, which P2Pool requires:
monerod --zmq-pub tcp://127.0.0.1:18083 --out-peers 32 --in-peers 64 --enforce-dns-checkpointing --enable-dns-blocklistIf your upload speed is under 10 Mbit, the README suggests--out-peers 8 --in-peers 16. Wait until the node is fully synced. - Start P2Pool:
p2pool --host 127.0.0.1 --wallet YOUR_PRIMARY_ADDRESS --mini. Leave out--mini, or use--nano, for the other sidechains. - Wait for P2Pool to sync. The README says this should take no more than 5 to 10 minutes.
- Start XMRig and point it at your P2Pool node:
xmrig -o 127.0.0.1:3333.
XMRig should connect and start sending shares. You can connect several miners to the same P2Pool node. The README also covers mining through Tor or I2P, and a graphical app called Gupax that runs P2Pool and XMRig for you.
Keep monerod and P2Pool up to date. The project says both must be updated when a new version comes out to keep mining on P2Pool.
Check that it works
- The P2Pool console and its log show your shares. On Linux,
grep -E 'WARNING|ERROR' p2pool.logshows problems. - The observer site for your sidechain shows your address, your shares and your payouts.
- Your wallet shows each payout after it syncs. It becomes spendable 60 blocks later.
Is P2Pool worth it for you
The Monero project encourages P2Pool and solo mining because they keep mining decentralized. P2Pool also pays regularly with no fee. The cost is setup: you run a full node, which needs disk space and a steady connection.
Before you start, estimate your earnings with our Monero mining calculator. For hardware, software and the other ways to mine, read our guide on how to mine Monero.
What to do with P2Pool payouts
You can hold the XMR in your wallet, or swap it with no account on HiddenSwap. Collect enough to pass the minimum shown in the swap box, then use Monero to Bitcoin (XMR to BTC) or Monero to USDT on Tron. Our Monero coin page explains how Monero keeps those payments private.

