Browse by type
Decentralized pool for Monero mining.
Pool status and monitoring pages can be found at:
| P2Pool | |
|---|---|
| main | https://p2pool.io/ |
https://p2pool.observer/| |mini|https://p2pool.io/mini/
https://mini.p2pool.observer/| |nano|https://p2pool.io/nano/
https://nano.p2pool.observer/|
These are 3rd-party pages. If they are down, it doesn't mean there is a problem with P2Pool itself - it keeps mining always thanks to its decentralized nature.
Here's the comparison table of the different ways of mining. While pool mining is the easiest to set up, it centralizes the Monero network and the pool admin gets full power over your hashrate and your unpaid funds. Solo mining is 100% independent and the best for the network. P2Pool mining has all the advantages of solo mining, but also makes regular payouts possible.
| Pool type | Payouts | Fee | Min. payout | Centralized? | Stability | Control | Setup |
|---|---|---|---|---|---|---|---|
| Centralized pool | Regular | 0-3% | 0.001-0.01 XMR | Yes | Less stable due to pool server outages | The pool admin controls your mined funds and what you mine, and can execute attacks against the network | Only miner software is required |
| Solo | Rare | 0% | 0.6 XMR or more | No | As stable as your Monero node | 100% under your control | Monero node + optional miner |
| P2Pool | Regular | 0% | ~0.00027 XMR | No | Very stable: node failover and multiple Monero nodes are supported | 100% under your control | Monero node(s) + P2Pool node(s) + optional miner(s) |
First you need to find a pool share. This share will stay in PPLNS window for up to 2160 pool blocks (6 hours, auto adjustable to balance payout sizes and frequency). The moment P2Pool finds a Monero block and you have at least 1 pool share in PPLNS window, you'll get a payout! Monero block reward is split between all miner wallets in PPLNS window. Each miner gets a part of the block reward proportional to the total difficulty of his/her shares in PPLNS window.
NOTE If P2Pool doesn't have enough hashrate to find Monero blocks faster than every 6 hours on average (~15 MH/s), not all your pool shares will result in a payout. Even if pool hashrate is higher, bad luck can sometimes result in a share going through PPLNS window without a payout. But in the long run it will be compensated by other shares receiving multiple payouts - your payouts will average out to what you'd get with regular pool mining.
In order to continue mining on P2Pool, you must update both Monero and P2Pool software to the latest available versions as soon as they are released.
| Monero protocol version | Required Monero software version | Required P2Pool version |
|---|---|---|
| v15, v16 (active after August 13th, 2022) | v0.18.0.0 or newer, v0.18.4.6 or newer is recommended | v4.0 or newer |
monerod on your PC and wait until it's fully synced. Advanced Monero node setup instructions are here.4). If you want to mine to a subaddress, you will need to provide both the main address (starting with 4) and the subaddress (starting with 8) using --wallet and --subaddress command line parameters.--mini or --nano parameter to your P2Pool command to connect to the respective sidechain.[!NOTE] You cannot use both
--miniand--nanotogether
Using
--miniwill change the p2p port to 37888.Using
--nanowill change the p2p port to 37890.
127.0.0.1 to appropriate IP addresses for your setup.Wallet software compatible with P2Pool payouts - Official Monero CLI and GUI v0.18.0.0 and newer - Monerujo v3.0.2 "Fluorine Fermi" and newer - Cake Wallet v4.4.5 and newer - Monero.com by Cake Wallet - Feather Wallet v2.1.0 and newer
Merge mining is available in P2Pool since the fork that happened on October 12th, 2024. Version 4.0 or newer is required to use it.
Blockchains that will support Merge mining RPC API: - Townforge supports merge mining (but Townforge is still in testnet phase) - DarkFi supports it in their testnet
p2pool.exe --wallet YOUR_MONERO_WALLET_ADDRESS --merge-mine IP:port YOUR_WALLET_ADDRESS_ON_ANOTHER_BLOCKCHAIN
Blockchains that support merge mining already: Tari
Tari uses their own gRPC API and requires a different command line:
./p2pool --wallet YOUR_MONERO_WALLET_ADDRESS --merge-mine tari://TARI_NODE_IP:18102 TARI_WALLET_ADDRESS
and on the Tari side
./minotari_node --grpc-enabled --mining-enabled
TARI_NODE_IP is 127.0.0.1 if you run both on the same machine (recommended).
Merge mining is available on Tari's mainnet: - Download Tari suite for your OS - Run Minotari node and wait until it synchronizes - Run Minotari console wallet to create a Tari wallet - Copy the "Tari Address one-sided" from the "Receive" tab of the wallet - Paste it into the P2Pool command line above - Everything is ready now to start merge mining Monero and Tari!
Note that Tari will be mined in solo mode (only full Tari blocks can be mined for now). This doesn't affect P2Pool payouts - they will stay the same.
sudo sysctl vm.nr_hugepages=3072
monerod with the following command/options:./monerod --zmq-pub tcp://127.0.0.1:18083 --out-peers 32 --in-peers 64 --add-priority-node=p2pmd.xmrvsbeast.com:18080 --add-priority-node=nodes.hashvault.pro:18080 --enforce-dns-checkpointing --enable-dns-blocklist
Note:
The --zmq-pub option is required for P2Pool to work properly.
--out-peers 32 --in-peers 64 is needed to (1) have many connections to other nodes and (2) limit incoming connection count because it can grow uncontrollably and cause problems when it goes above 1000 (open files limit in Linux). If your network connection's upload bandwidth is less than 10 Mbit, use --out-peers 8 --in-peers 16 instead.
--add-priority-node=p2pmd.xmrvsbeast.com:18080 --add-priority-node=nodes.hashvault.pro:18080 is needed to have guaranteed good working nodes in your connected peers.
--enforce-dns-checkpointing is needed to combat the selfish mining attempts by malicious actors
--enable-dns-blocklist is needed to ban known bad nodes
./p2pool --host 127.0.0.1 --wallet YOUR_WALLET_ADDRESS --mini
./xmrig -o 127.0.0.1:3333./xmrig -u x+10000 -o 127.0.0.1:3333Additional Information: - For a more in-depth beginner-friendly walk-through with the option of using Docker, please see SethForPrivacy's guide at: https://sethforprivacy.com/guides/run-a-p2pool-node/ - You can check the p2pool.log for any warnings or errors using the following command:
grep -E 'WARNING|ERROR' p2pool.log
logrotate with a config like this to control logfile growth:
<path-to-logfile>
{
rotate 7
daily
missingok
delaycompress
nocreate
}Note: Windows SmartScreen may block incoming connections by files that are "Downloaded from the Internet". You can allow 'p2pool.exe' and 'monerod.exe' by double-clicking them, clicking "More Info", then clicking "Run Anyway" and then closing them immediately so you can run them from the command line. Advanced users can use the PowerShell cmdlet Unblock-File to remove this flag.
%USERPROFILE%/bin or C:/bin/ are good options)$ claude mcp add p2pool \
-- python -m otcore.mcp_server <graph>