{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://miningboard.com/pools/spec/v1.json","title":"MiningBoard Pool Stats Spec v1","description":"Per-coin pool statistics endpoint. Public GET, no authentication, application/json. All hashrate fields are raw hashes per second (H/s) — never TH/s, EH/s, or formatted strings. All values must be pool-global, never scoped to a single miner or account.","type":"object","required":["coin","pool"],"properties":{"spec":{"type":"string","const":"miningboard-pool-v1","description":"Spec version tag. Recommended so we can version the contract."},"coin":{"type":"string","pattern":"^[A-Z0-9]{2,10}$","description":"Coin ticker, uppercase.","examples":["ZEC","BTC","LTC"]},"algorithm":{"type":"string","description":"Proof-of-work algorithm name.","examples":["Equihash","SHA256d","Scrypt"]},"updated_at":{"type":"string","format":"date-time","description":"When these values were computed. We poll every 5 minutes; refresh at least hourly."},"pool":{"type":"object","description":"This pool's own statistics for this coin.","required":["hashrate","miners"],"properties":{"hashrate":{"type":"number","exclusiveMinimum":0,"description":"Pool-global hashrate in raw H/s. NOT one account's hashrate."},"miners":{"type":"integer","minimum":0,"description":"Distinct miners currently connected."},"workers":{"type":"integer","minimum":0},"blocks_24h":{"type":"integer","minimum":0},"last_block_at":{"type":"string","format":"date-time"},"fee_percent":{"type":"number","minimum":0,"maximum":100,"description":"Pool fee as a percent, e.g. 1.5 for 1.5%."},"payout_scheme":{"type":"string","examples":["PPS","PPS+","PPLNS","FPPS","SOLO"]},"min_payout":{"type":"number","minimum":0,"description":"Minimum payout, denominated in the coin."}}},"network":{"type":"object","description":"Optional. Chain-wide figures. Omit the whole block if you do not run a node — we will use our own chain consensus and list you as a pool-stats source. When present, hashrate and height are both required or the block is ignored.","properties":{"hashrate":{"type":"number","exclusiveMinimum":0,"description":"Network hashrate in raw H/s. Must be \u003e= pool.hashrate."},"height":{"type":"integer","exclusiveMinimum":0},"difficulty":{"type":"number","exclusiveMinimum":0},"block_reward":{"type":"number","minimum":0},"block_time":{"type":"number","exclusiveMinimum":0,"description":"Target block time in seconds."}}},"stratum":{"type":"array","description":"Optional. Connection endpoints, rendered on your pool page.","items":{"type":"object","required":["url"],"properties":{"url":{"type":"string","examples":["stratum+tcp://zec.example.com:3333"]},"region":{"type":"string","examples":["eu","us","asia"]},"tls":{"type":"boolean"}}}}}}