NetPerHash

tokenized mining, computed

data as of 2026-08-30

Method — every formula, every source, every limit

The calculation source

One engine computes everything: mining_calc.py (Python, the reference) and its byte-parity JavaScript port engine.js that runs in your browser. Both are tested by automated suites — 28 unit tests (Python), a cross-language parity test, and a browser-logic test, all passing 2026-08-30 — so the page cannot show a number the tested model would not produce.

Formulas (each with its source)

#QuantityFormulaSource (retrieved 2026-08-30)
1Network hashratenet_TH = D · 2³² / 600 / 10¹²Bitcoin protocol (difficulty definition)
2Gross rewardgross_BTC = TH/net_TH · 144 · block_rewardVendor docs, Miners/About + net-reward formula
3Electricity costW/TH · TH · $/kWh · 24 / 1000Vendor docs, Energy efficiency — matches their worked examples to the cent
4Service cost$0.0089 · TH per dayVendor docs, Miners/About ("service charge for 1 TH per day is $0.0089")
5Maintenance(elec + service) · (1 − discount)Vendor docs, Maintenance fees
6Netnet = gross − maintenance, daily floor at zero (negative-rewards protection)Vendor docs + rewards page
7Break-evendays = cost / net_per_daydefinition
8Difficulty pathaverage factor ln(1+g)/g for linear growth gexact integral; hand-check g=0.2 → 0.91161 in the test suite
9Fee repricingfees are USD-fixed but deducted in BTC at the daily price → over a price path the BTC fee cost scales by ln(1+c)/cVendor docs ("recalculated daily at the BTC rate"); validated against account behavior (BTC +23% → net-only +2% across one difficulty step)
10Power growthlinear power growth p multiplies gross and per-TH fees by 1 + p/2 on averageobserved: account grew 807.06 → 810.13 TH by reinvestment (2026-08-30)
11Resale valueuser-entered % of purchase price, added as a price-independent USD termno public default; marketplace prices need an account (checked 2026-08-30); 5% seller fee documented (Academy)

The validation that gates this site

63-day day-by-day replication of a real account (2026-06-28 → 2026-08-29): using only public inputs — per-epoch network difficulty, the account's own daily BTC price, observed power growth from reinvestment (744 → 816 TH), the documented $0.05–0.07/kWh range (account line implies $0.05), and the account's actual discount (28.26%) — the engine reproduced the account's daily gross within ±2% on 60 of 63 days (mean +0.01%, worst day +4.72%, all three outliers at one difficulty-boundary where the platform lags a retarget by ~2 days). Account data: official read-only API, retrieved 2026-08-30; full day-by-day table on the Log page.

Two lessons from the calibration are documented as warnings rather than hidden: vendor dashboards can show gross where you expect net (it cost us one wrong "premium" hypothesis), and payout schedules can lag public network events by days.

Deliberate model limits (each is a choice, not an oversight)

  1. Linear difficulty growth, averaged analytically. Real difficulty retargets every ~2 weeks; the model applies the exact average of a straight-line path instead of a step simulation: a growth rate of g over the horizon multiplies average output by ln(1+g)/g — hand-checkable: g = 0.2 → 0.911607784, verified in the test suite. The calculator states this in its assumptions box.
  2. Fees are USD-fixed but deducted in Bitcoin at the daily rate. That is the platform's documented behaviour, and it matters: on a rising price path the same dollar fee costs fewer Bitcoin, so mined net BTC differs between the three price scenarios. The model integrates the documented daily repricing exactly (ln(1+c)/c along an exponential price path). Cross-check against the account: BTC +23% at constant gross should lift net ≈14%; the account showed +2% across that window at constant gross — the remainder was gross-side movement, which the model tracks separately.
  3. Fixed BTC price within each scenario. Only start and end price matter for valuation; the path between them is not modelled (the fee repricing in limit 2 uses an exponential path as its documented-behaviour approximation).
  4. The discount is one pre-combined number. Four documented pieces can stack (token payment ≤20%, VIP ≤6%, service streak ≤3%, mining-mode bonus), but the platform does not publish how they combine — so the model never stacks them itself; the user enters one observed or assumed total (capped at the documented 29% ceiling of the pieces).
  5. No taxes, no transaction fees, no hidden compounding. Reinvestment is an explicit lever (power growth), never assumed silently; taxes depend on the reader's jurisdiction and are out of scope.
  6. Resale value is a user assumption, not a model output. The model will not predict what a tokenized miner sells for after a year — the reader enters a percentage of purchase price (with the documented 5% seller fee folded in). The sensitivity analysis behind this choice (including r*, the resale fraction at which mining ties holding — 92% of purchase price at this calculator's default inputs over 12 months) lives in the project's research and in the Calculator page's worked example; the engines treat the resale fraction as what it is, the reader's own exit-price assumption.
  7. The April 2028 halving (estimated) is never auto-applied. A 24-month horizon spans it; the UI flags it and lets the reader set the block reward explicitly instead of silently halving their result.

What the platform attributes elsewhere — the day-table residual, documented

On the real day shown on the Explained page, the four visible lines do not sum exactly: 94.11 − 31.05 − 15.39 = 47.67 GMT, while the payout line shows 46.60 GMT. The difference, 1.07 GMT (about $0.36 at that day's token price), is attributed by the platform somewhere else that day; its internal accounting does not publish the booking. This site documents the residual instead of smoothing it away, and draws three boundaries around it:

A cautionary tale, kept visible on purpose. For several weeks this project believed the platform's pool paid a fixed uplift over pure network physics — a factor somewhere between 1.3× and 2.3× depending on assumptions (the exact value moving between attempts was itself the warning sign). A calibration constant to that effect was drafted. The cause was mundane: the account's rewards endpoint returns gross, before fees, and it had been compared against a net model. Compared like-for-like, the physics-only engine reproduced the account day-by-day with no calibration factor at all, and the constant was deleted from the engine (the audit trail of the wrong hypothesis remains in the repository: calibrate.py, compare_real.py). Lesson for every number on this site: when a model disagrees with a platform, check the unit and the fee basis before inventing a fudge factor — and vendor dashboards can show gross where you assumed net.

Reference-account figures used on this site

Every account-derived number on this site comes from exactly one day of one real account (retrieved 2026-08-30 via the official read-only API) plus one 63-day daily series (2026-06-28 → 2026-08-29). This table is the complete inventory — if a figure is not here, it is not account-derived:

FigureValueUsed onBasis
Gross mining reward, that day94.11 GMT = $31.64Explainedaccount daily table
Electricity line (discounted)−31.05 GMT = −$10.44Explainedaccount daily table
Service line (discounted)−15.39 GMT = −$5.17Explainedaccount daily table
Net payout, that day46.60 GMT = $15.67Explainedaccount daily table
Day-table residual1.07 GMT ≈ $0.36Explained, Methodarithmetic between the lines above
Token price that dayGMT = $0.3362Explainedaccount's own daily price
Share size that day810.13 THExplainedaccount miner list
Purchase price of TH$9.99 per THHome, Explainedvendor pricing (all collections identical)
Combined maintenance discount28.26% (VIP portion 4.2%)Explainedaccount fee breakdown
Implied electricity rate$0.05 per kWhMethod (validation box)account fee lines vs documented formulas
Weighted efficiency of the farm14.95 W/THMethod (validation box)account per-miner data
Power trajectory over 63 days744 → 816 THHome, Calculatorimplied series, lag-corrected; = 100% reinvestment
Validation result60 of 63 days within ±2%Home, Logmodel vs account, day by day

Rules: account data appears only with per-figure approval by the account owner; no wallet addresses, deposit addresses or balances anywhere on this site; public figures (fee caps, discount caps, VIP rules, documented rates) carry the vendor's documentation as source with their own retrieval date. Secondary-market observation used once for context: 9,511 active listings, cheapest 28.49 GMT/TH (≈ $9.58/TH at that day's token price), retrieved 2026-08-30 with an account session.

Engine parity policy

One calculation, two implementations, zero tolerance for drift: mining_calc.py (Python) is the single reference; engine.js (JavaScript) runs the same formulas in your browser. Neither may show a number the other would not. Enforcement, all running against the current build (2026-08-30):

When an engine changes, the parity test gates the change; when this page's formulas change, the tests and this page change in the same commit, and the verification date above moves.

Page state: 2026-08-30.