Endpoints by Coin
SoloFury serves identical APIs across 5 SHA-256 coins. The base path differs by coin — BCH uses /api for historical reasons; the others use /api-{coin}.
| Coin | Base path | Stratum ports |
|---|---|---|
| BTC | /api-btc | 6060, 6061, 6062 |
| BCH | /api | 7070, 7071, 7072 |
| BC2 | /api-bc2 | 8080, 8081, 8082 |
| BCH2 | /api-bch2 | 8585, 8586, 8587 |
| XEC | /api-xec | 9090, 9091, 9092 |
Pool Stats
/api/pool Pool-wide statistics: total hashrate (rolling 1m/1h/1d/7d), connected miners, blocks found, current block height, network difficulty/hashrate, fee.
{
"totalHashRate": 2780000000000000, // H/s · current
"totalHashRate1m": 2810000000000000,
"totalHashRate1hr": 2750000000000000,
"totalHashRate1d": 2640000000000000,
"totalHashRate7d": 2420000000000000,
"blockHeight": 948592,
"networkDifficulty": 763004012345.6,
"networkHashRate": 5060000000000000000,
"totalMiners": 10,
"blocksFound": […], // array of past block events
"fee": 1 // percent
} Pool Info
/api/info Pool runtime info: best share so far, accepted/rejected/stale/invalid shares, efficiency, uptime, stratum port, pool identifier.
{
"poolIdentifier": "BCH",
"fee": 1,
"stratumPort": 7070,
"uptime": 8643215, // seconds
"accepted": 142357821,
"rejected": 12483,
"stale": 8421,
"invalid": 3,
"efficiency": 99.991,
"highScores": [{ "bestDifficulty": 2613000000000, "bestDifficultyUserAgent": "Antminer" }]
} Pool Chart
/api/info/chart Time-series of pool hashrate, accepted/rejected/stale/invalid counters, network difficulty. Used by the dashboard chart. Default 24h, max ~7 days.
| Query | Type | Default | Description |
|---|---|---|---|
hours | integer | 24 | Window size in hours (5-min granularity) |
[
{
"label": "01:25",
"data": 2540000000000000, // hashrate · H/s
"difficulty": 763004012345.6,
"accepted": 142357821,
"rejected": 12483,
"stale": 8421,
"invalid": 3
},
… // 288 points for 24h window
] Network Info
/api/network Live blockchain network data fetched directly from the underlying node — block height, difficulty, hashrate, mempool size, chain identifier.
{
"blocks": 948592,
"difficulty": 763004012345.6,
"networkhashps": 5060000000000000000, // H/s
"currentblockweight": 3998000,
"currentblocktx": 2841,
"pooledtx": 3142,
"chain": "main",
"warnings": ""
} Network History
/api/network/history Time-series of network difficulty and hashrate. Default 24h, maximum 168h (7 days).
| Query | Type | Default | Description |
|---|---|---|---|
hours | integer | 168 | Window size in hours (max 168) |
Client / Miner Info
/api/client/{wallet_address} Per-address miner data: connected workers, hashrate per worker, share counts, best difficulty achieved, last-seen timestamp.
| Path | Type | Description |
|---|---|---|
address | string | Miner wallet address (BTC/BCH/BC2/BCH2/XEC native format) |
{
"bestDifficulty": 2613000000000,
"sessionId": "a1b2c3d4...",
"workers": [
{
"name": "S21Plus01",
"hashRate": 276000000000000, // H/s
"bestDifficulty": 59870000000,
"sessionId": "abc...",
"lastSeen": "2026-05-08T00:42:00.000Z",
"startTime": "2026-04-28T13:55:00.000Z"
},
…
]
} Client Chart
/api/client/{wallet_address}/chart
Per-miner time-series: hashrate, accepted/rejected/stale/invalid shares, difficulty. Same shape as /api/info/chart but scoped to a single address.
| Path / Query | Type | Default | Description |
|---|---|---|---|
address | string | — | Miner wallet address |
hours | integer | 24 | Window size in hours |
If the address has no historical data yet, the endpoint falls back to pool-wide chart data.
Stratum Connection
Connect your ASIC miner to SoloFury via Stratum V1. 3 regions worldwide — Atlanta (US East), Frankfurt (EU), Singapore (Asia) — for low-latency global routing.
// Replace HOST with one of: solofury.com (US) · eu.solofury.com (EU) · asia.solofury.com (APAC)
// BTC
stratum+tcp://HOST:6060
stratum+tcp://HOST:6061
stratum+tcp://HOST:6062
// BCH
stratum+tcp://HOST:7070
stratum+tcp://HOST:7071
stratum+tcp://HOST:7072
// BC2
stratum+tcp://HOST:8080
stratum+tcp://HOST:8081
stratum+tcp://HOST:8082
// BCH2
stratum+tcp://HOST:8585
stratum+tcp://HOST:8586
stratum+tcp://HOST:8587
// XEC
stratum+tcp://HOST:9090
stratum+tcp://HOST:9091
stratum+tcp://HOST:9092
// Worker format
Username: YOUR_WALLET_ADDRESS.WORKER_NAME
Password: x Rate Limits & Notes
Examples
# All 5 coin pools
curl -s https://solofury.com/api-btc/pool | jq .
curl -s https://solofury.com/api/pool | jq . # BCH (no suffix)
curl -s https://solofury.com/api-bc2/pool | jq .
curl -s https://solofury.com/api-bch2/pool | jq .
curl -s https://solofury.com/api-xec/pool | jq .
# Network info
curl -s https://solofury.com/api/network
# Per-miner stats
curl -s https://solofury.com/api/client/YOUR_WALLET_ADDRESS
# Time-series chart (24h, 5-min granularity)
curl -s "https://solofury.com/api/info/chart?hours=24"// Browser or Node.js (with fetch polyfill)
const coins = ['-btc', '', '-bc2', '-bch2', '-xec'];
const stats = await Promise.all(
coins.map(c => fetch(`https://solofury.com/api${c}/pool`).then(r => r.json()))
);
for (const [i, p] of stats.entries()) {
const coin = ['BTC', 'BCH', 'BC2', 'BCH2', 'XEC'][i];
console.log(`${coin}: ${(p.totalHashRate/1e12).toFixed(1)} TH/s · ${p.totalMiners} miners · ${p.fee}% fee`);
}import requests
def pool_stats(coin=''):
suffix = '' if coin == 'bch' else f'-{coin}'
r = requests.get(f'https://solofury.com/api{suffix}/pool', timeout=5)
return r.json()
for coin in ['btc', 'bch', 'bc2', 'bch2', 'xec']:
s = pool_stats(coin)
th = s['totalHashRate'] / 1e12
print(f'{coin.upper():<5} {th:.1f} TH/s · {s["totalMiners"]} miners · fee {s["fee"]}%')Integrations
SoloFury's API follows industry conventions and is compatible with standard mining tooling.