API Documentation

GET /api/pools Try it

Retrieves a list of available pools. Pool id can be used to query API endpoints.

Successful response HTTP 200

[
    {
        "id": 1,
        "name": "XDAG.ORG SOLO"
    },
    {
        "id": 2,
        "name": "XDAG.ORG EQUAL"
    },
    {
        "id": 3,
        "name": "XDAG.ORG SOLO 2"
    },
    {
        "id": 4,
        "name": "XDAG.ORG EQUAL 2"
    }
]

GET /api/hashrate Try it

Retrieves current total hashrate of all available pools. Hashrate is returned in unit. Exact hashrate in h/s is also returned.

Successful response HTTP 200

{
	"unit":"Mh\/s",
	"value":5.46,
	"hashrate": 5724354
}

GET /api/status?pool_id=pool_id Try it

Retrieves current pool status and information. Data keys mining_xdag_domain, mining_xdag_port, stats.extra_blocks, stats.orphan_blocks, stats.wait_sync_blocks, net_conn.seconds, net_conn.in_out_bytes, net_conn.in_out_packets, net_conn.in_out_dropped are not present in newest versions of XDAG and should not be used. block_interval_seconds can be null if pool has no hashrate. Timezone is UTC.

Successful response HTTP 200

{
	"name":"XDAG.ORG SOLO",
	"version":"0.7.0",
	"network_type":"mainnet",
	"status":"online",
	"mining_mode":"solo",
	"fee_percent":2,
	"workers_limit":3000,
	"workers_limit_per_address":250,
	"workers_count":123,
	"block_interval_seconds":546.4749387909565,
	"mining_xdag_domain":null,
	"mining_xdag_port":0,
	"mining_stratum_domain":"stratum.xdag.org",
	"mining_stratum_port":23656,
	"state":"Synchronized with the main network. Normal operation.",
	"stats":{
		"hosts":[
			5,
			5
		],
		"blocks":[
			410151028,
			410151028
		],
		"main_blocks":[
			2157765,
			2157765
		],
		"extra_blocks":0,
		"orphan_blocks":0,
		"wait_sync_blocks":0,
		"chain_difficulty":[
			"cdf6de3022a4e49de19791c0be1",
			"cdf6de3022a4e49de19791c0be1"
		],
		"xdag_supply":[
			1183835200,
			1183835200
		],
		"4_hr_hashrate_mhs":[
			1.582601,
			13.513306
		],
		"hashrate":[
			1659477.426176,
			14169728.352256
		]
	},
	"net_conn":[
		{
			"host":"136.243.71.148:13655",
			"seconds":0,
			"in_out_bytes":[
				0,
				0
			],
			"in_out_packets":[
				0,
				0
			],
			"in_out_dropped":[
				0,
				0
			]
		},
		{
			"host":"136.243.55.153:16775",
			"seconds":0,
			"in_out_bytes":[
				0,
				0
			],
			"in_out_packets":[
				0,
				0
			],
			"in_out_dropped":[
				0,
				0
			]
		},
		{
			"host":"136.243.71.148:56230",
			"seconds":0,
			"in_out_bytes":[
				0,
				0
			],
			"in_out_packets":[
				0,
				0
			],
			"in_out_dropped":[
				0,
				0
			]
		},
		{
			"host":"136.243.55.153:48428",
			"seconds":0,
			"in_out_bytes":[
				0,
				0
			],
			"in_out_packets":[
				0,
				0
			],
			"in_out_dropped":[
				0,
				0
			]
		}
	],
	"date":"2022-05-26 20:34:02"
}

Error response HTTP 400

{
	"error":"Pool ID malformed or missing."
}

Error response HTTP 404

{
	"error":"Pool not found."
}

Error response HTTP 500

{
	"error":"Pool data not yet available. Please try again later."
}

GET /api/hashrate_chart?pool_id=pool_id Try it

Retrieves pool hashrate chart for last 24 hours. Average hashrate in given hour is returned. Time key (X axis) is in format %m-%d %H:00. Timezone is UTC. Data key (Y axis) is in unit format.

Successful response HTTP 200

{
	"unit":"Mh\/s",
	"data":[
		{
			"x":"06-17 20:00",
			"y":"3.99"
		},
		{
			"x":"06-17 21:00",
			"y":"4.10"
		},
		{
			"x":"06-17 22:00",
			"y":"4.12"
		},
		{
			"x":"06-17 23:00",
			"y":"4.23"
		},
		{
			"x":"06-18 00:00",
			"y":"4.33"
		},
		{
			"x":"06-18 01:00",
			"y":"4.12"
		},
		{
			"x":"06-18 02:00",
			"y":"4.00"
		},
		{
			"x":"06-18 03:00",
			"y":"3.10"
		},
		{
			"x":"06-18 04:00",
			"y":"3.67"
		},
		{
			"x":"06-18 05:00",
			"y":"3.07"
		},
		{
			"x":"06-18 06:00",
			"y":"3.00"
		},
		{
			"x":"06-18 07:00",
			"y":"2.99"
		},
		{
			"x":"06-18 08:00",
			"y":"2.87"
		},
		{
			"x":"06-18 09:00",
			"y":"4.10"
		},
		{
			"x":"06-18 10:00",
			"y":"4.11"
		},
		{
			"x":"06-18 11:00",
			"y":"4.54"
		},
		{
			"x":"06-18 12:00",
			"y":"3.33"
		},
		{
			"x":"06-18 13:00",
			"y":"5.17"
		},
		{
			"x":"06-18 14:00",
			"y":"4.30"
		},
		{
			"x":"06-18 15:00",
			"y":"4.22"
		},
		{
			"x":"06-18 16:00",
			"y":"3.93"
		},
		{
			"x":"06-18 17:00",
			"y":"4.05"
		},
		{
			"x":"06-18 18:00",
			"y":"4.10"
		},
		{
			"x":"06-18 19:00",
			"y":"4.11"
		},
		{
			"x":"06-18 20:00",
			"y":"4.05"
		}
	]
}

Error response HTTP 400

{
	"error":"Pool ID malformed or missing."
}

Error response HTTP 404

{
	"error":"Pool not found."
}

GET /api/workers_chart?pool_id=pool_id Try it

Retrieves pool workers chart for last 24 hours. Maximum number of workers in given hour is returned. Time key (X axis) is in format %m-%d %H:00. Timezone is UTC.

Successful response HTTP 200

[
	{
		"x":"06-17 20:00",
		"y":499
	},
	{
		"x":"06-17 21:00",
		"y":516
	},
	{
		"x":"06-17 22:00",
		"y":501
	},
	{
		"x":"06-17 23:00",
		"y":505
	},
	{
		"x":"06-18 00:00",
		"y":505
	},
	{
		"x":"06-18 01:00",
		"y":501
	},
	{
		"x":"06-18 02:00",
		"y":387
	},
	{
		"x":"06-18 03:00",
		"y":393
	},
	{
		"x":"06-18 04:00",
		"y":401
	},
	{
		"x":"06-18 05:00",
		"y":434
	},
	{
		"x":"06-18 06:00",
		"y":413
	},
	{
		"x":"06-18 07:00",
		"y":430
	},
	{
		"x":"06-18 08:00",
		"y":433
	},
	{
		"x":"06-18 09:00",
		"y":409
	},
	{
		"x":"06-18 10:00",
		"y":308
	},
	{
		"x":"06-18 11:00",
		"y":309
	},
	{
		"x":"06-18 12:00",
		"y":400
	},
	{
		"x":"06-18 13:00",
		"y":532
	},
	{
		"x":"06-18 14:00",
		"y":434
	},
	{
		"x":"06-18 15:00",
		"y":513
	},
	{
		"x":"06-18 16:00",
		"y":444
	},
	{
		"x":"06-18 17:00",
		"y":403
	},
	{
		"x":"06-18 18:00",
		"y":414
	},
	{
		"x":"06-18 19:00",
		"y":304
	},
	{
		"x":"06-18 20:00",
		"y":312
	}
]

Error response HTTP 400

{
	"error":"Pool ID malformed or missing."
}

Error response HTTP 404

{
	"error":"Pool not found."
}

GET /api/network_hashrate_chart Try it

Retrieves network hashrate chart for last 24 hours. Average hashrate in given hour is returned. Time key (X axis) is in format %m-%d %H:00. Timezone is UTC. Data key (Y axis) is in unit format.

Successful response HTTP 200

{
	"unit":"Mh\/s",
	"data":[
		{
			"x":"06-17 20:00",
			"y":"15.18"
		},
		{
			"x":"06-17 21:00",
			"y":"15.23"
		},
		{
			"x":"06-17 22:00",
			"y":"15.32"
		},
		{
			"x":"06-17 23:00",
			"y":"14.59"
		},
		{
			"x":"06-18 00:00",
			"y":"14.95"
		},
		{
			"x":"06-18 01:00",
			"y":"14.78"
		},
		{
			"x":"06-18 02:00",
			"y":"14.20"
		},
		{
			"x":"06-18 03:00",
			"y":"14.10"
		},
		{
			"x":"06-18 04:00",
			"y":"13.57"
		},
		{
			"x":"06-18 05:00",
			"y":"13.32"
		},
		{
			"x":"06-18 06:00",
			"y":"13.04"
		},
		{
			"x":"06-18 07:00",
			"y":"13.23"
		},
		{
			"x":"06-18 08:00",
			"y":"14.65"
		},
		{
			"x":"06-18 09:00",
			"y":"14.11"
		},
		{
			"x":"06-18 10:00",
			"y":"14.10"
		},
		{
			"x":"06-18 11:00",
			"y":"14.74"
		},
		{
			"x":"06-18 12:00",
			"y":"15.01"
		},
		{
			"x":"06-18 13:00",
			"y":"14.33"
		},
		{
			"x":"06-18 14:00",
			"y":"14.11"
		},
		{
			"x":"06-18 15:00",
			"y":"13.65"
		},
		{
			"x":"06-18 16:00",
			"y":"15.54"
		},
		{
			"x":"06-18 17:00",
			"y":"15.33"
		},
		{
			"x":"06-18 18:00",
			"y":"14.96"
		},
		{
			"x":"06-18 19:00",
			"y":"15.11"
		},
		{
			"x":"06-18 20:00",
			"y":"15.33"
		}
	]
}

GET /api/workers[?wallet_address=wallet_address][&pool_id=pool_id] Try it

Parameters wallet_address and pool_id are optional. Make sure to rawurlencode() the wallet address properly. Specific pool can be filtered using the pool_id parameter. Specific wallet address can be filtered using the wallet_address parameter. IP addresses of workers are anonymized. inBound and outBound designate packets of 512 bytes each. Wallet addresses with highest hashrate are returned first. Workers are sorted by highest hashrate. Hashrate is returned in hashes per second (h/s). Status value of MINER_ARCHIVE represents address without any active workers with pending unpaid shares.

Successful response HTTP 200

[
	{
		"address":"4c5d493c03c4ba2ccb52b0b907b4de8c",
		"status":"MINER_ACTIVE",
		"unpaidShares":0.27,
		"hashrate":267238,
		"workers":[
			{
				"address":"*.*.*.90:52320",
				"inBound":725,
				"outBound":1256,
				"unpaidShares":0.09000000000000001,
				"name":"22987e8ab3",
				"hashrate":89079,
				"pool":{
					"id":1,
					"name":"XDAG.ORG SOLO"
				}
			},
			{
				"address":"*.*.*.90:42882",
				"inBound":629,
				"outBound":1025,
				"unpaidShares":0.09000000000000001,
				"name":null,
				"hashrate":89079,
				"pool":{
					"id":1,
					"name":"XDAG.ORG SOLO"
				}
			},
			{
				"address":"*.*.*.155:12306",
				"inBound":3980,
				"outBound":993,
				"unpaidShares":0.09000000000000001,
				"name":"3f577bfe30",
				"hashrate":89079,
				"pool":{
					"id":2,
					"name":"XDAG.ORG EQUAL"
				}
			}
		],
		"pools":[
			{
				"id":1,
				"name":"XDAG.ORG SOLO"
			},
			{
				"id":2,
				"name":"XDAG.ORG EQUAL"
			}
		]
	},
	{
		"address":"f867b10cd910eb084e4e88b05457f0cd",
		"status":"MINER_ARCHIVE",
		"unpaidShares":0.06,
		"hashrate":132,
		"workers":[
		],
		"pools":[
			{
				"id":1,
				"name":"XDAG.ORG SOLO"
			}
		]
	}
]

Error response HTTP 400

{
	"error":"Pool ID malformed."
}

Error response HTTP 404

{
	"error":"Pool not found."
}

Error response HTTP 404

{
	"error":"Wallet address not found."
}

Error response HTTP 500

{
	"error":"Workers data not yet available. Please try again later."
}

GET /api/address/hashrate_chart?wallet_address=wallet_address

Retrieves address hashrate chart for last 24 hours. Average hashrate in given hour is returned. Time key (X axis) is in format %m-%d %H:00. Timezone is UTC. Data key (Y axis) is in unit format.

Successful response HTTP 200

{
	"unit":"Kh\/s",
	"data":[
		{
			"x":"06-17 20:00",
			"y":"38.73"
		},
		{
			"x":"06-17 21:00",
			"y":"37.85"
		},
		{
			"x":"06-17 22:00",
			"y":"39.20"
		},
		{
			"x":"06-17 23:00",
			"y":"40.01"
		},
		{
			"x":"06-18 00:00",
			"y":"41.00"
		},
		{
			"x":"06-18 01:00",
			"y":"36.13"
		},
		{
			"x":"06-18 02:00",
			"y":"35.27"
		},
		{
			"x":"06-18 03:00",
			"y":"34.96"
		},
		{
			"x":"06-18 04:00",
			"y":"34.71"
		},
		{
			"x":"06-18 05:00",
			"y":"33.52"
		},
		{
			"x":"06-18 06:00",
			"y":"32.99"
		},
		{
			"x":"06-18 07:00",
			"y":"32.06"
		},
		{
			"x":"06-18 08:00",
			"y":"33.97"
		},
		{
			"x":"06-18 09:00",
			"y":"34.23"
		},
		{
			"x":"06-18 10:00",
			"y":"35.95"
		},
		{
			"x":"06-18 11:00",
			"y":"36.21"
		},
		{
			"x":"06-18 12:00",
			"y":"34.78"
		},
		{
			"x":"06-18 13:00",
			"y":"35.75"
		},
		{
			"x":"06-18 14:00",
			"y":"33.96"
		},
		{
			"x":"06-18 15:00",
			"y":"35.15"
		},
		{
			"x":"06-18 16:00",
			"y":"34.95"
		},
		{
			"x":"06-18 17:00",
			"y":"35.05"
		},
		{
			"x":"06-18 18:00",
			"y":"37.10"
		},
		{
			"x":"06-18 19:00",
			"y":"41.21"
		},
		{
			"x":"06-18 20:00",
			"y":"33.11"
		}
	]
}

Error response HTTP 400

{
	"error":"Wallet address malformed or missing."
}

GET /api/address/workers_chart?wallet_address=wallet_address

Retrieves address workers chart for last 24 hours. Maximum number of workers in given hour is returned. Time key (X axis) is in format %m-%d %H:00. Timezone is UTC.

Successful response HTTP 200

[
	{
		"x":"06-17 20:00",
		"y":25
	},
	{
		"x":"06-17 21:00",
		"y":25
	},
	{
		"x":"06-17 22:00",
		"y":26
	},
	{
		"x":"06-17 23:00",
		"y":25
	},
	{
		"x":"06-18 00:00",
		"y":26
	},
	{
		"x":"06-18 01:00",
		"y":32
	},
	{
		"x":"06-18 02:00",
		"y":30
	},
	{
		"x":"06-18 03:00",
		"y":25
	},
	{
		"x":"06-18 04:00",
		"y":25
	},
	{
		"x":"06-18 05:00",
		"y":24
	},
	{
		"x":"06-18 06:00",
		"y":25
	},
	{
		"x":"06-18 07:00",
		"y":26
	},
	{
		"x":"06-18 08:00",
		"y":30
	},
	{
		"x":"06-18 09:00",
		"y":27
	},
	{
		"x":"06-18 10:00",
		"y":28
	},
	{
		"x":"06-18 11:00",
		"y":29
	},
	{
		"x":"06-18 12:00",
		"y":25
	},
	{
		"x":"06-18 13:00",
		"y":30
	},
	{
		"x":"06-18 14:00",
		"y":25
	},
	{
		"x":"06-18 15:00",
		"y":25
	},
	{
		"x":"06-18 16:00",
		"y":25
	},
	{
		"x":"06-18 17:00",
		"y":25
	},
	{
		"x":"06-18 18:00",
		"y":25
	},
	{
		"x":"06-18 19:00",
		"y":24
	},
	{
		"x":"06-18 20:00",
		"y":26
	}
]

Error response HTTP 400

{
	"error":"Wallet address malformed or missing."
}
Copyright © 2026