ZecneroPool
Public JSON API

API

Read-only, no key, CORS open. Amounts are integer zatoshis (1 ZMR = 100,000,000). Hashrates are hashes per second. Times are Unix seconds, except lastBlockFound, which is milliseconds as a string, as in cryptonote-nodejs-pool. Responses are cached for 10 seconds; please poll no more than once a minute.

GET /api/stats

Pool, network and configuration numbers, in the config / pool / network shape of cryptonote-nodejs-pool's /stats, which MiningPoolStats and similar listings read for RandomX pools.

Example
{
  "config":  { "coin": "Zecnero", "symbol": "ZMR", "network": "Testnet", "algorithm": "rx/zecnero",
               "poolHost": "stratum.zecnero.org", "ports": [{ "port": 3334, "difficulty": 5000, "desc": "vardiff, TLS", "tls": true },
                                                  { "port": 3333, "difficulty": 5000, "desc": "vardiff", "tls": false }],
               "stratum": "stratum.zecnero.org:3333", "stratumTls": "stratum.zecnero.org:3334",
               "fee": 0.0, "payoutScheme": "PPLNS", "pplnsWindowFactor": 2.0, "coinUnits": 100000000,
               "coinDifficultyTarget": 75, "minPaymentThreshold": 50000000, "paymentsInterval": 900, "maturity": 100 },
  "pool":    { "hashrate": 15230, "hashrate1h": 14800, "miners": 12, "workers": 17, "connectedMiners": 12,
               "connectedWorkers": 17, "roundHashes": 5210000, "totalBlocks": 3, "lastBlockFound": "1790000000000",
               "totalPayments": 2, "totalMinersPaid": 9, "totalPaid": 1180000000, "confirmedPayments": 1,
               "confirmedPaid": 580000000, "owed": 30500000,
               "shares": { "accepted": 9120, "stale": 14, "invalid": 2, "busy": 0, "errors": 0 } },
  "network": { "height": 3120, "difficulty": 1100000, "hashrate": 15000, "reward": 606250000 },
  "warning": { "networkShare": 0.12, "threshold": 0.4, "overThreshold": false }
}

GET /api/blocks?limit=50&offset=0

Blocks the pool found, newest first. status is pending (waiting for 100 confirmations), credited (matured and split among its PPLNS window), orphaned or rejected. effort is the share work of the round over the block's difficulty; 1.0 is average luck.

Example
{ "blocks": [ { "height": 3118, "hash": "00…", "time": 1790000000, "status": "pending", "confirmations": 3,
                "reward": 606250000, "difficulty": 1100000, "effort": 0.87, "finder": "nm…", "worker": "rig1",
                "window_shares": 412 } ] }

GET /api/payments?limit=50

Payouts, newest first, from the moment they are recorded. status is prepared (recorded, not signed yet, no txid), signed, broadcast (sent: the node took it; confirmations counts up), confirmed (at config.paymentConfirmations, 10), or needs_review (held for the operator). amount is what the recipients receive; fee is the transaction fee they shared equally. In /api/stats, totalPayments and totalPaid count every sent payout; confirmedPayments and confirmedPaid only the confirmed ones.

Example
{ "payments": [ { "id": 7, "time": 1790000000, "txid": "ab…", "status": "broadcast", "confirmations": 3,
                  "recipients": 5, "amount": 402500000, "fee": 30000 } ] }

GET /api/miner/<address>

One address: hashrate over 10 minutes and 1 hour, workers with a share in the last hour, balance (credited, not paid yet), immature (its PPLNS share of blocks under 100 confirmations), in_flight (on its way: in payouts not confirmed yet, as it will arrive), confirming (the part of that the node has accepted), paid (confirmed), and its payments with their status and confirmations. connected lists its live connections and their current difficulty. An address of another network is answered 400 with the reason.

Example
{ "miner": { "address": "nm…", "hashrate": 1520, "hashrate_1h": 1490, "balance": 12030000, "immature": 60620000,
             "paid": 250000000, "in_flight": 0, "confirming": 0, "blocks_found": 1,
             "workers": [ { "name": "rig1", "hashrate": 1520, "hashrate_1h": 1490, "shares_1h": 240, "last_share": 1790000000 } ],
             "payments": [ { "time": 1790000000, "txid": "ab…", "amount": 99994000, "fee": 6000, "status": "confirmed",
                            "confirmations": 12 } ] },
  "connected": [ { "address": "nm…", "worker": "rig1", "difficulty": 22500, "since": 1789990000 } ] }

GET /api/health

For monitoring: seconds since the last block template, the node's tip, open connections, share checks waiting, and whether payouts are halted.