Monero P2Pool.Observer

What is P2Pool? :: How to join P2Pool :: API Documentation

Guide on how to run a Monero and P2Pool node by Seth :: Monero and P2Pool "build from scratch" docker-compose setup

Simple Windows P2Pool Installer by DataHoarder :: P2Pool Bonus Hash Rate Raffle by XMRvsBEAST

Chat and get notifications via lucky-bot on #p2pool-log @ irc.libera.chat :: NOTE: This site is in development. You might find errors or invalid data.

API Documentation

This site and API is in development. As such, returned data could be different, or methods be deprecated / replaced anytime. Though it will be avoided if possible :)

All the data showed on this site comes from the API or Monero. So if new features are added on site, it's possible to do so via the API.

At the moment there is no broad rate-limiting. If abuse is detected, temporary rate limits can be put in place. You can always run your own instance of this site/API, see source code.

Some historical data could be incomplete. These values have been replaced with all 0's / null bytes or 255 / 0xFF bytes depending on value. Some raw block records do not exist.

In general, mandatory parameters are specified on the path, optional parameters on query.

Knowledge of P2Pool internals is strongly advised. Feel free to ask questions on IRC.

Unless specified, all returned data is JSON with status code 200. A not found error will issue a status code 404 and JSON of {"error": "not_found"} or similar.


/api/pool_info

Response contains general information on the current status of the P2Pool sidechain and Monero network, and other parameters.

.sidechain.effort.last keys are Monero block id effort for last found blocks.

curl --silent https://p2pool.observer/api/pool_info
{
    "sidechain": {
        "id": "3a62dbe4f836cb6eb22ce851f8c5b7e19fecd364fad9da20f7c2f7c8eceb3430",
        "height": 204156,
        "difficulty": "0000000000000000000000002242630f",
        "timestamp": 1632491696,
        "effort": {
            "current": 42.023,
            "average": 101.65,
            "last": {
                "519152470bdd3c04f43d10105189653ba31f4eac35523b11909e67a5c220bb5b": 28.17,
                "2797537f37403b32b4334456ad52ea86d7ebd64f207d7b16faca3e6c0be64480": 302.01,
                "45a4ed6c8345abc629493ec14fc40f97b934e6c5357718515aa8656b25b1a53e": 3.14,
                "45ac03c34f10185dca89a465fd98e7386cfe9e370870ab5537a950b4f5e31e1f": 64.95,
                "ade286d9c9650cdbcd2eb433880a1453fd58d276ca47076164bb35b9a68b7beb": 48.56,
                "469bb4806550f0d8d9e03c2c6108a62c034e053301183541ac688323711a3866": 144.5,
                "fccbc197f4625b093742ee158aaa75bb80a3f588ef94674da2c42bc5b94bdfb0": 62.32,
                "b06578afbc72bdf89f8ea4315ff9c47213d9090108f86eeec75ab27abf7573cd": 80.97,
                "5c294fca61dbe26b714e1fa7f0c7abec6d0f41c10ec0a291caac2b84c384d44c": 3.84,
                "bab98e2b94f03cffcdd7e8795ddf7fc61a225c815d92b870132fcd32385d2a2d": 117.64,
                "75cc5ab02eee03091bfca2072e146c50b69975c0ed69c6a98c330c6d8ae4ea7b": 229.03,
                "ff201b345e69e7eafa9e17f1c7ae00618c60bf767455358c852a646cce3e2b4e": 119.85,
                "178c11e170622bc65b47e028e0c857d3e509f1bebeda6f6a6f30e60d5c4963c7": 68.54,
                "86fc4cc25ce06735290b2b49462a52320b9db65ee5a2225a6dade5d574e26bfb": 192.01,
                "2c376ed1287023131599b1ef393151c76c576ce82df73cb7bfc7eb6da53f6cc6": 40.16,
                "90ace5467345723de758ae6deb61044e361b79993c0419383bf5d92e847c9165": 26.56,
                "b221dfcde5b6c59ac550ead21fd9cd058241ab26c659699f9f78726bec990c6b": 168.91,
                "bfd87fec3a360b8bc989ca7a079a90fcfd3c3d7beebebc627094216a888df02e": 83.28,
                "8b2282fe91799aa2e75fa6fac271bbf850a10a7db0659a05dda4fc3483e202f2": 59.39,
                "fe6218e220f02e7f5596f32a0497b47f90e2e2ab5519b5c4bd522d416be529af": 34.86,
                "fe761d800b964b99fd25dbd5bf9ec0546a2c9dcff3bd78143d2e170840b1dc07": 37.02,
                "cf757a8203ff5fd48feb777b07538d9872e41aaaa6472282875f52104b425af7": 35.77,
                "70296a22687e103f4e585cdf7b627a587b9260f74b4517a53dac84a922a30f03": 138.77,
                "a31e3e948f7d5d16eb63f04ef5bcca078ece26e69679644ea6e5ac905dc615e2": 201.85,
                "332fa77638b2e365ab249997c4c8b5bc95d68b61060574ebb40efe3ddb0420c0": 141.79,
                "e2019d0957a220c07eabbbaae7bb3e6e801f98103e9cc04259490f90287e9077": 197.33,
                "be958d873def2d72c53573b7f3c50110cb85b011d08ed3c49e9b7415dbebe56f": 42.39,
                "676f70beb38bbe0c93459f84cefe326221369420edcb0b0b0e3238f77861ac25": 51.58,
                "8813a744f795ba08549ecbcba9704457b53a5ce7f32620c280f5c3fb96a362fa": 65.1,
                "488a772452b3cea58ca021dee36cd1ebcf8440a3c9377235edea182cd5633f77": 137.87,
                "748aafa9ed94176560dbb69c7911ef7dd35e19901e517f33b84bc16477aff600": 18.84,
                "e6345d81d4a6e0b792801b72c472fd2bbf9a7e6aa6d100f854528a963ca37d98": 94.1,
                "b5d811013a4e38a3b7d5bb3de1aad29d457217dc90cedab107146b6774e455d1": 11.69,
                "7e1e750e463cb18c9bc67d68215d49212a13ddf0bf7a89994ea38cc0cd94ed3c": 67.06,
                "400a3014c4519ac95ab042e6afb3dcf62fe8a2f67cb088248117663d36da4e0e": 10.96,
                "44c84abde2682548bf93c6a8a4546e3aaf2963da01f465aa87e4a230e667a405": 136.86,
                "7d923e4461e28546860f8f234d9eb828f1d0b0c3b6142366aedbd59b482cf94e": 169.28,
                "d0c1d8bbb6af7afc7861d8d8ea426d85cf52f4ee2af77e3c2e3e68be281d2624": 36.02,
                "24dda1b025b6db877491d2aa134e0eddfc4ba93db462ed4a06be3b4ad859f97a": 80.68,
                "a6e274007d4dc75a4844d7d6c7eb682d8c7c56f7ad62206ddf5a3583f382d4f0": 68.99,
                "04613f76551b8aacfa8c6a1f49fa1123dcc4e79a4d26466c1ae042c93dc21f40": 109.68,
                "2e90bbbeb18dbb535d6d369057a851fc1c9535cca9a65474659b7e06d6c68801": 44.53,
                "135f0319afa427286adf14fbd81af9b216f808eed1f350666f9d66f75b88dc83": 245.42,
                "3dc775b3a5423894ba1d229d4dd4ef0590b6c3c8aef8dc1f9b3069848ca23484": 73.18,
                "cd6f78b9036d7e5dfe0a9debc640095c82e2c5c3b2dc0321e4964c98ad75ec76": 16.96,
                "ebf713269b0300e234d8e69e7957bdcba0ccb51ad36f8f9ec326923db9b33dc4": 107.17,
                "212c48ff8bc8ace3a39d53a038fc540cd0c429e3bda00e892db7aa56a5802ff1": 581.7,
                "3f8fb365742f0cd443f4ca24239b644d0eac9f45517e2f591d2e0cd85175d12c": 242.56,
                "848354a62ef6fd8b8a3a79ba8c203d526363ca1841ef71365b65704177c56ef2": 33.58,
                "d910c460cea864ec1ddbe060b7c94a7b27c45f52a8c3ea872e036ea77ab961d3": 4.91
            }
        },
        "window": {
            "miners": 40,
            "blocks": 2160,
            "uncles": 55,
            "weight": "00000000000000000000014cc2b965ba"
        },
        "window_size": 2160,
        "block_time": 10,
        "uncle_penalty": 20,
        "found": "97",
        "miners": "95"
    },
    "mainchain": {
        "id": "3a0c416f3a1f5235ffd322417b36ce98340d6132b8c140ec7187804b682c001f",
        "height": 2456414,
        "difficulty": "0000000000000000000000497a57ebfd",
        "block_time": 120
    }
}
        

/api/miner_info/<id|address>

Response contains general information on a specific miner, referred by its internal id or known Monero address.

curl --silent https://p2pool.observer/api/miner_info/1
{
    "id": 1,
    "address": "4B6tWMyFe3aNyxqvbYF9wNfsrPmaTGv149qi39m49wRSYUxch7CNRtjULeam11z14pS8UYYgmtkdJb71Y6frosYf8z9BkKV",
    "shares": {
        "blocks": 98803,
        "uncles": 3041
    },
    "last_share_height": 204218,
    "last_share_timestamp": 1632492306
}
        

/api/shares_in_window/<id|address>?window=[window_size]&from=[height]

Response contains shares on specified range window for a specific miner. Optional parameters are height, denoting the Tip where the window gets measured from, and window_size, max SIDECHAIN_PPLNS_WINDOW * 4

By default it will return current window shares, from current tip.

For each share, weight denotes how much is worth difficulty wise.

[result has been cut due to size, relevant portions shown]
curl --silent https://p2pool.observer/api/shares_in_range_window/1
[
    {
        "id": "41763b42dfb35fde8cc756c3f9304219833196710339d48a243e4ee99f1b4533",
        "height": 204257,
        "timestamp": 1632492592,
        "weight": 578428835
    },
    {
        "id": "f2b1227a8910c65bd5290706e55cdd5af31bf080ed63a2278c5d682f9a16132b",
        "height": 204242,
        "timestamp": 1632492426,
        "weight": 692593796,
        "uncles": [
            {
                "id": "5dbf40cf0407774e4a71fe5a2d65f2cb90d2f0f1e3b8b6be357eee77d7243b04",
                "height": 204240,
                "weight": 115416076
            }
        ]
    },
    {
        "parent": {
            "id": "f2b1227a8910c65bd5290706e55cdd5af31bf080ed63a2278c5d682f9a16132b",
            "height": 204242
        },
        "id": "5dbf40cf0407774e4a71fe5a2d65f2cb90d2f0f1e3b8b6be357eee77d7243b04",
        "height": 204240,
        "timestamp": 1632492421,
        "weight": 461664304
    }
]
        

/api/payouts/<id|address>?search_limit=[search_limit]

Response contains payouts received by this miner due to blocks on Monero network. Optional parameters are search_limit, maximum amount of records to return. Defaults to 10

.[].coinbase.private_key can be used to prove the payout is correct.

[result has been cut due to size, relevant portions shown]
curl --silent https://p2pool.observer/api/payouts/1
[
    {
        "id": "8114a983629e6d64083dc193fed0b9eda05e4369f78c4be851617a1cf0f2649a",
        "height": 203934,
        "main": {
            "id": "519152470bdd3c04f43d10105189653ba31f4eac35523b11909e67a5c220bb5b",
            "height": 2456399
        },
        "timestamp": 1632489764,
        "coinbase": {
            "id": "bb55d988537b60f4bf82280eadd572608ce0239ac62f7d9cc8741ea18aaf493e",
            "reward": 808711259192,
            "private_key": "101b706ac3beb614697eba1d90a12cb3bf766f243f3d2f3a98d717bf6b340e08",
            "index": 26
        }
    },
    {
        "id": "60dada9fedd4369a39778c0c7a8b39bf9304ac10842564e620f872070fc854a4",
        "height": 203789,
        "main": {
            "id": "2797537f37403b32b4334456ad52ea86d7ebd64f207d7b16faca3e6c0be64480",
            "height": 2456391
        },
        "timestamp": 1632488207,
        "coinbase": {
            "id": "da585bcfeda2213ef04fb61c65de2930621f12080296c3d73a1780d5c18ed640",
            "reward": 827836253205,
            "private_key": "77f38db6b0aaa04aa45554ce18c4b81d0ecaa82b70cc96a524ca50d979ba930c",
            "index": 23
        }
    }
]
        

/api/found_blocks?limit=[limit][&coinbase]

Response contains last found block records on the Monero network by P2Pool. Optional parameters are limit, maximum amount of records to return, defaults to 50, max 100. Additionally, you can pass the coinbase parameter to receive decoded coinbase outputs.

curl --silent https://p2pool.observer/api/found_blocks?limit=2
[
    {
        "id": "6b54f8a82a34e50b9be6d467200cbcf84e2bc4a2239276bb6e2997188c7a53bc",
        "height": 210983,
        "previous_id": "1e4459ce7dc52097d07c303fef8a3123eaaf084f38e4c3d5b85b62ab7438e5c9",
        "coinbase": {
            "id": "710bab0380ba1d3424f0a8c5e9fdc047cb9f464a418abd307e666168e7261580",
            "reward": 853892158346,
            "private_key": "3e42dc1c7f2fe865b90afbffa18fe2559cc541aca9353606c23240c796d4a907"
        },
        "difficulty": "000000000000000000000000328ebf11",
        "timestamp": 1632560460,
        "miner": "4B6tWMyFe3aNyxqvbYF9wNfsrPmaTGv149qi39m49wRSYUxch7CNRtjULeam11z14pS8UYYgmtkdJb71Y6frosYf8z9BkKV",
        "pow": "83a92f76fc91f91d17fea89a779912f2643eaed658d903000f343e0000000000",
        "main": {
            "id": "65f21ff0373b875f438907ea7ff2c210fee002f27d1729d78739b0ae951ce868",
            "height": 2457009,
            "found": true
        },
        "template": {
            "id": "561b4b392a2c3f2a55494ca607f689f55a970b08f5cf48366889519d41144030",
            "difficulty": "000000000000000000000049325bfc05"
        },
        "uncles": [],
        "weight": 848215825
    },
    {
        "id": "c3a42058d22fd6af66688e973d3cc54497982c5ccbe1e173881862fd79dc7b99",
        "height": 210830,
        "previous_id": "b29876b347d18192186d03e02729c722cb43313bd35840a403ea1bf0c7c1117e",
        "coinbase": {
            "id": "b0f71e55a50c96aafbd7a4b8aee8bcaaae4bbe7a6af478ded2accd6f4dfb098f",
            "reward": 855868955473,
            "private_key": "c51b2e5c95be6aa732342c09cfe9344cbe05d17f51fb30cdea152b923f187806"
        },
        "difficulty": "000000000000000000000000337a46fe",
        "timestamp": 1632559007,
        "miner": "4B6tWMyFe3aNyxqvbYF9wNfsrPmaTGv149qi39m49wRSYUxch7CNRtjULeam11z14pS8UYYgmtkdJb71Y6frosYf8z9BkKV",
        "pow": "a479db10899c16c1da8f810a01c1a34b87da59987b73ff58e5e7bb0100000000",
        "main": {
            "id": "b7dd7e469e3112334bc7b1f38af724c30a1a920b8c45d444bba973eb7061dbb2",
            "height": 2457000,
            "found": true
        },
        "template": {
            "id": "d95a750e927879bbde5570f1a679d703b479b1a59611e7ae7ec553a5bbc0a4e3",
            "difficulty": "000000000000000000000048efdd8589"
        },
        "uncles": [],
        "weight": 863651582
    }
]
        

/api/shares?limit=[limit]&miner=[id|address]

Response contains last found share records on P2Pool. Optional parameters are limit, maximum amount of records to return, defaults to 50, max SIDECHAIN_PPLNS_WINDOW. Additionally, you can pass the miner parameter to select shares from that miner only. coinbase parameter can also be used here to decode coinbase outputs

curl --silent https://p2pool.observer/api/shares?limit=2
[
    {
        "id": "eec1d58aeee6e22177eb119c044897d96f69d293b5b875ed054a7ef0bd132d7c",
        "height": 211563,
        "previous_id": "a46d9d382424d0082a837576111ebd6adc41a590e48b4f6ae56436740ea14892",
        "coinbase": {
            "id": "579ef16fdc77e6e309849a06306474caf581011dac605da4e82099133eea3b47",
            "reward": 853439767255,
            "private_key": "59d609b7d3d45e5879da7bc32b1e9ac34dffeba61d267c53abbf32cb98088208"
        },
        "difficulty": "00000000000000000000000032640d65",
        "timestamp": 1632566502,
        "miner": "4B6tWMyFe3aNyxqvbYF9wNfsrPmaTGv149qi39m49wRSYUxch7CNRtjULeam11z14pS8UYYgmtkdJb71Y6frosYf8z9BkKV",
        "pow": "88daeb5f680aec5a2342e565f69ca7f3dbc0457d6e1a5d4992dc448003000000",
        "main": {
            "id": "17d956e1cb92fe8e0b0c0160b1fbed7aeb58a2989a9ecea4c8dd77610d7b557e",
            "height": 2457069,
            "found": false
        },
        "template": {
            "id": "c743d838f9b2bee4cfc1b279b4f47b70615194fddaf0e9a2ac9935306ee6c374",
            "difficulty": "00000000000000000000004acb8608bf"
        },
        "uncles": [],
        "weight": 845417829
    },
    {
        "id": "a46d9d382424d0082a837576111ebd6adc41a590e48b4f6ae56436740ea14892",
        "height": 211562,
        "previous_id": "3c15ff85db8d533e3bcfe85e0d514d515c4e879d199639fa3f69930c4a44985c",
        "coinbase": {
            "id": "10463f06dcdddf9f4ded3c93f56dd6d3e2325ba79b00caa82194804e33d41c9d",
            "reward": 854186244515,
            "private_key": "5c09f050508eabc6ab1edff0e4d4dddc951b9a5f059bbac9bef210bb26ef0e09"
        },
        "difficulty": "0000000000000000000000003265620a",
        "timestamp": 1632566499,
        "miner": "46AR5jN9eNKa38nWS1u4EJPejRcqyfL5P913FHipe48VfL1D14eBnrD8DBJASa6PQETbo2FVQYxmZHUWKzapRV31TMzArh1",
        "pow": "8c0a64faef4d90c6900b807c85f03b7561b45e87ad9794a9028337cc04000000",
        "main": {
            "id": "4e11aa34efeb225d80050cf49a0750d09f69063773b27135aca4b7411cf367e0",
            "height": 2457068,
            "found": false
        },
        "template": {
            "id": "0de5daa8dab8805abf3cd95b48d8bbd0a0b05841e458b73141c764d31b0c9d4a",
            "difficulty": "00000000000000000000004a97bc16d9"
        },
        "uncles": [],
        "weight": 845505034
    }
]
        

/api/block_by_id/<blockId>[/raw]

Response contains a block/share record on P2Pool by Id. You can select the JSON version or the binary hex format (various format versions exist, decoding is documented by source code). coinbase parameter can also be used here to decode coinbase outputs

curl --silent https://p2pool.observer/api/block_by_id/bc827aeecb5a5254cec6c2fc9a07f49c1d3c03b92dea39c5d9b3fbb19affe0ef
{
    "id": "bc827aeecb5a5254cec6c2fc9a07f49c1d3c03b92dea39c5d9b3fbb19affe0ef",
    "height": 158450,
    "previous_id": "da79d3ff3f0dcac0a4f4ea9bfc980f33989419c9cb969aa359e771539c7bac1c",
    "coinbase": {
        "id": "d11cde62dfec6e7b06bda411b5443af9dd1156d5d21ad6991afffc9bb20a89a0",
        "reward": 860707347019,
        "private_key": "3554138cbb2e22dcb88dcd80da788873c2e1e4a379e82c477b4dd8b5ed309b0d"
    },
    "difficulty": "00000000000000000000000021057a98",
    "timestamp": 1632020086,
    "miner": "47ogPNVsjtjG6bzGy9MtcogaxbRa4cMCtfzZpoHAGFmKjRhSWrzBLTo3JzBTN4H1gDNRSMKL1SSEoTpGYK4vKiJgJfdroRx",
    "pow": "6890bd6d4dcf652978444d6d9c485f18ba2b3a51ed81a3ef1cc5310300000000",
    "main": {
        "id": "fa4219e740b9bb1f83ec7cde61db5498409e7d3bf3e1e2ead4fe1736529e6fd2",
        "height": 2452518,
        "found": true
    },
    "template": {
        "id": "e9d6a0f34c0ca1b81ed2bee4baccb2d4ddf0bc452109ee95d67d6e45554244d7",
        "difficulty": "00000000000000000000004bfff00d19"
    },
    "uncles": [],
    "weight": 554007192
}
        

/api/block_by_height/<blockHeight>[/raw]

Response contains a block/share record on P2Pool by height. You can select the JSON version or the binary hex format (various format versions exist, decoding is documented by source code). coinbase parameter can also be used here to decode coinbase outputs

curl --silent https://p2pool.observer/api/block_by_height/158450
{
    "id": "bc827aeecb5a5254cec6c2fc9a07f49c1d3c03b92dea39c5d9b3fbb19affe0ef",
    "height": 158450,
    "previous_id": "da79d3ff3f0dcac0a4f4ea9bfc980f33989419c9cb969aa359e771539c7bac1c",
    "coinbase": {
        "id": "d11cde62dfec6e7b06bda411b5443af9dd1156d5d21ad6991afffc9bb20a89a0",
        "reward": 860707347019,
        "private_key": "3554138cbb2e22dcb88dcd80da788873c2e1e4a379e82c477b4dd8b5ed309b0d"
    },
    "difficulty": "00000000000000000000000021057a98",
    "timestamp": 1632020086,
    "miner": "47ogPNVsjtjG6bzGy9MtcogaxbRa4cMCtfzZpoHAGFmKjRhSWrzBLTo3JzBTN4H1gDNRSMKL1SSEoTpGYK4vKiJgJfdroRx",
    "pow": "6890bd6d4dcf652978444d6d9c485f18ba2b3a51ed81a3ef1cc5310300000000",
    "main": {
        "id": "fa4219e740b9bb1f83ec7cde61db5498409e7d3bf3e1e2ead4fe1736529e6fd2",
        "height": 2452518,
        "found": true
    },
    "template": {
        "id": "e9d6a0f34c0ca1b81ed2bee4baccb2d4ddf0bc452109ee95d67d6e45554244d7",
        "difficulty": "00000000000000000000004bfff00d19"
    },
    "uncles": [],
    "weight": 554007192
}
        

Redirect APIs

Several endpoints are available that redirect/forward your request via Location HTTP header to the relevant API listed above.

/api/last_found[/raw]?...

Redirects to the /api/block_by_id/... record for the last block found on the Monero network by P2Pool.

/api/tip[/raw]?...

Redirects to the /api/block_by_id/... record for the last share found by P2Pool.