Forward Market Price
BTX 12-Month Forward Market Price
The Forward Market Price is the dashboard's trade-oriented 12-month reference number. It is not an exchange quote and btxprice is not a trading venue.
Definition
Version 1.7.2 makes the security-equivalence term linear. The live BTX network MatMul rate is `getnetworkhashps(6720)`, a one-week chain-inferred rate analogous to Bitcoin Core's `getnetworkhashps(1008)` for a one-week Bitcoin window. The model no longer multiplies that rate by the live work-per-block term for pricing, because doing so squared the same difficulty signal.
Spot continuity is handled with a disclosed coefficient `matmul_security_weight`, calibrated at the v1.4 migration anchor. That preserves the then-current model floor while fixing the slope: if BTX reaches Bitcoin-equivalent computational security, the raw compute floor reaches Bitcoin price parity.
Version 1.7.2 prices the forward path from the current network MatMul rate, not from the diagnostic effective release envelope. The adoption path first creates a forward market cap, then divides that value by protocol supply projected to the horizon using BTX's 90-second block schedule.
Formula
M_BTX_1w = getnetworkhashps(6720)
SEH = matmul_security_weight · M_BTX_1w
S_now = 100 · SEH / H_BTC
progress_s(m) = (1 - 2^(-m / HL_s)) / (1 - 2^(-12 / HL_s))
security_s(m) = min(max(cap_s, S_now), S_now · growth_12m_s^progress_s(m) · trend_multiplier(m))
E[S_m] = Σ p_s · security_s(m)
projected_blocks(m) = round(m · 30.4375 · 86400 / 90)
Q_m = BTX protocol supply at current_height + projected_blocks(m)
ForwardMarketCap(m) = P_BTC · E[S_m] / 100 · F_supply · R_BTC(m) · Q_now
ForwardMarketPrice(m) = ForwardMarketCap(m) / Q_m
Bear, base, and bull paths are computed independently and then probability-weighted. The cap is applied in security-share space, not price space. Positive and negative network-compute trends can nudge the curve when reference data is supplied, but the live chain rate remains the observable anchor.
`F_supply` is the capped float/unlock adjustment; `Q_m` is the actual projected token denominator. At `m = 0`, `Q_m = Q_now`, so the current price is continuous. At 12 months, new issuance is explicitly spread across the forward market cap.
| Horizon | Price (USD) | Price (sats) | Projected supply | Circ. mcap (USD) | FDV (USD) |
|---|---|---|---|---|---|
| now | 30.78618918590075484816205797 | 49393.83453006795476858243160 | 2704820 | 83271100.23380807972840569764 | 646509972.9039158518114032174 |
| 1m | 41.15760496807029541150879686 | 66033.89322306234021869592616 | 3289220 | 135376417.4130761770734429648 | 864309704.3294762036416847341 |
| 3m | 72.33587172488795454564862313 | 116056.7830267102338365559991 | 4458020 | 322474762.8669849991235924749 | 1519053306.222647045458621086 |
| 6m | 135.4794606156596699801810630 | 217365.3263632070176809476688 | 6211220 | 841492735.3651976553743002222 | 2845068672.928853069583802323 |
| 12m | 257.2950156614020911689485626 | 412808.0728747947811079267145 | 9717620 | 2500295190.091554189185197931 | 5403195328.889443914547919815 |
API Contract
Use `/api/current.json` for live systems and `/forward-market-price.md` for a compact Markdown contract. The primary fields are stable and string-valued to preserve decimal precision.
{
"forward_market_price": {
"horizon": "12m",
"usd": "...",
"sats": "...",
"mcap_usd": "...",
"forward_market_cap_usd": "...",
"projected_supply": "...",
"projected_blocks": 350640,
"formula": "forward_market_cap[12m].usd / projected_btx_supply[12m]"
},
"inputs": {
"network_matmul_rate_hps": "...",
"effective_network_matmul_rate_hps": "...",
"security_equiv_hashrate_hps": "...",
"matmul_security_weight": "..."
},
"forecast": {
"forward_market_price_field": "forward_market_price_usd",
"rows": [...]
}
}
Open Source Artifacts
The same model is published as source code and a workbook so OTC participants can reproduce the number locally before referencing it.
Hardware Context
Local BTXE benchmarks on this M4 Max Mac Studio show the current live-mainnet-like Metal solve path in the approximate 14.5k-17k nonces/sec band. Those numbers are hardware context only. The Forward Market Price does not price a single workstation; it prices the chain-observed BTX network MatMul rate recorded by btxprice.
benchmark shape: block_height=61000, epsilon_bits=18, nbits=503725172
observed artifacts: product_digest_active=true, freivalds_payload_mining=true
local M4 Max band: ~14.5k-17k live-like nonces/sec
Full Public Formula String
nonce_seed_v2_activation_height = 125000; nonce_seed_v3_activation_height = 130500; v03211_activation_height = 132000; network_matmul_rate_hps = getnetworkhashps(6720) and is the compute-equivalent BTX MatMul/sec field used for charts, security, and valuation; btx_nonce_rate_raw is the legacy-compatible protocol audit field; for btx_block_height <= 124999, btx_nonce_rate_raw = max(getnetworkhashps(6720), getnetworkhashps(6720) * work_per_block / 2^pre_hash_epsilon_bits); for btx_block_height >= 125000, btx_nonce_rate_raw is the one-week height-weighted protocol-era transition: legacy window blocks use the pre-125000 shared-seed transform, and nonce_seed_v2/nonce_seed_v3/v0.32.11-v3-fix window blocks use getnetworkhashps(6720) without shared-seed amortization; v3 and v0.32.11 change seed binding/solver correctness, not the Bitcoin-style chainwork formula; security_equiv_hashrate_hps = matmul_security_weight * network_matmul_rate_hps; btx_security_percent = 100 * security_equiv_hashrate_hps / btc_hashrate_hps; compute_floor_usd = btc_price_usd * (security_equiv_hashrate_hps / btc_hashrate_hps); equivalence invariant: when security_equiv_hashrate_hps == btc_hashrate_hps, btx_security_percent == 100 and compute_floor_usd == btc_price_usd; btx_supply_multiplier = clamp(float_multiplier * unlock_drag_multiplier, supply_multiplier_min, supply_multiplier_max); model_compute_floor_usd = compute_floor_usd * btx_supply_multiplier; spot.usd = model_compute_floor_usd * (1 + risk_index * risk_spot_weight); effective_network_matmul_rate_hps remains an audit/diagnostic release-envelope field only: if network_matmul_rate_hps >= prior_effective_network_matmul_rate_hps then effective_network_matmul_rate_hps = network_matmul_rate_hps else release_retention = 2^(-elapsed_seconds / nonce_release_half_life_seconds) and effective_network_matmul_rate_hps = network_matmul_rate_hps + (prior_effective_network_matmul_rate_hps - network_matmul_rate_hps) * release_retention; effective_network_matmul_rate_hps does not drive model_compute_floor_usd, spot.usd, or forward_market_price; for each scenario s in {bear, base, bull}: progress_s(m) = (1 - 2^(-m / scenario_half_life_s)) / (1 - 2^(-12 / scenario_half_life_s)); scenario_security_s(m) = min(max(scenario_cap_s, btx_security_percent), btx_security_percent * scenario_growth_12m_s^progress_s(m) * trend_multiplier(m)); btx_security_percent_forward[m] = sum(probability_s * scenario_security_s(m)); btx_security_percent_12m = btx_security_percent_forward[12]; projected_blocks[m] = round(m * 30.4375 * 86400 / 90); projected_btx_supply[m] = protocol_supply_at(btx_block_height + projected_blocks[m]); forward_market_cap[m].usd = btc_price_usd * (btx_security_percent_forward[m] / 100) * btx_supply_multiplier * R_BTC(m) * btx_circulating_supply; forward_market_price[m].usd = forward_market_cap[m].usd / projected_btx_supply[m]; forecast.rows[m] = {t = computed_at + m model_months, forward_market_price_usd = forward_market_price[m].usd, forward_market_cap_usd = forward_market_cap[m].usd, projected_supply = projected_btx_supply[m], btx_security_percent_forward = btx_security_percent_forward[m]}