DASH MODEL
Status Operational

BTX Price data collection and public pages are operating normally after a recent service interruption.

Live update paths were refreshed, public pages were checked, and page data is refreshing on the normal cadence.

EN

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.8.0 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.8.0 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))
terminal_growth_s = growth_12m_s · trend_multiplier(12)
headroom_s = min(cap_s, S_now · max(terminal_growth_s - 1, 0))
terminal_security_s = S_now + headroom_s
security_s(m) = terminal_security_s when m >= 12, otherwise S_now · (terminal_security_s / S_now)^progress_s(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. This is an expected-value model: nonlinear scenario outcomes are computed first, then weighted by their probabilities. The cap is an incremental BTX-as-percent-of-Bitcoin security headroom limit over today's observed security share, not an absolute ceiling below the current chain state. 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.

The economic frame combines four ideas. Forward pricing starts from the same spot anchor and horizon denominator a cost-of-carry model would require, then substitutes BTX-specific carry inputs: protocol issuance, mining-regime risk premium, and chain-observed security. The security anchor follows cost-of-production research for proof-of-work networks, where sustained hash or MatMul work and miner economics constrain long-run value. The bear/base/bull adoption paths follow probability-weighted fair-value practice, and the headroom caps keep adoption bounded in the spirit of diffusion and network-effect models rather than projecting an unbounded exponential curve.

Horizon Price (USD) Price (sats) Projected supply Circ. mcap (USD) FDV (USD)
now 0.01298956983994712187288963777 16.50307437421817033780922090 3985900 51775.12642504523307315080719 272780.9666388895593306823932
1m 0.01325319798965490917850225434 16.83801040484679097764230001 4570300 60571.09077211983141850885301 278317.1577827530927485473411
3m 0.01406778726114221522270346955 17.87293515581529058912904275 5739100 80736.43787042128738461748211 295423.5324839865196767728606
6m 0.01520479598904378543226723782 19.31748950456585622191238447 7492300 113918.8929887127535941758259 319300.7157699194940776119942
12m 0.01586464584280759211867792017 20.15581989938710725279878055 10749350 170534.6307903837903409105012 333157.5626989594344922363236

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; matmul_v47_activation_height = 185000; matmul_v47_omega = compact_target(nBits_185000)/compact_target(nBits_184999); matmul_security_weight(h) = matmul_security_weight_v3 if h < 185000 else matmul_security_weight_v3 * matmul_v47_omega; network_matmul_rate_hps = getnetworkhashps(6720) with a fork-split 6720-block window so pre/post chainwork are never averaged; this 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/v4.7 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; v4.7 changes the work unit (Ω rescale) so security is continuous while INT8 TOPS may step; security_equiv_hashrate_hps = matmul_security_weight(h) * 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; tops_net = if h < 185000 then network_matmul_rate_hps / 2^18 * 2 * 512^3 / 1e12 else network_matmul_rate_hps * W_nonce / 1e12; h100_eq = tops_net * 1e12 / H100_ops; p_prod_usd = h100_eq * r_H100 / 800; 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 the 6720-block window crosses height 185000 the downward envelope is bypassed (unit rebase, not a decline); 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; trend_multiplier(m) uses security_equiv_hashrate_hps / security_equiv_hashrate_reference_hps (falling back to network_matmul_rate_hps / network_matmul_rate_reference_hps) over network_matmul_rate_reference_months when at least forward_trend_reference_min_span_days of valid one-week MatMul history exists, with bounded positive and negative monthly log-rate weights; 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)); terminal_growth_s = scenario_growth_12m_s * trend_multiplier(12); scenario_headroom_s = min(scenario_cap_s, btx_security_percent * max(terminal_growth_s - 1, 0)); scenario_terminal_security_s = btx_security_percent + scenario_headroom_s; scenario_security_s(m) = if m >= 12 then scenario_terminal_security_s else btx_security_percent * (scenario_terminal_security_s / btx_security_percent)^progress_s(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]}