PHOTON WebGPU Miner

PHOTON WebGPU Miner — Apple/Metal compatibility + locally generated persistent 64 MiB table. — HTML Version: M67.38-MainContinuousWins-v1

GPU mining validation

Confirm this GPU can mine PHOTON

Start mining runs the staged WebGPU preflight and direct adaptive batch calibration automatically. If the dashboard reaches REAL MAINNET MINING and shows a steady hash rate, this GPU mining path is working. GPU-specific debugging tools are shown directly below the status panel; unrelated historical optimization experiments remain hidden.

For testers who do not have a BCH payment address handy. This fills the payout field with bitcoincash:zphqsyxwagf5z2mnl66p2e4r6tgvu48pqys3lr2frh. Any real PHOTON reward mined with this address selected will be paid to that address.
Used only to construct the PHOTON reward output. The address and browser-owned mining private key are not transmitted to a server; only a fully verified winning transaction is broadcast to BCH mainnet.
Controls idle time between WebGPU batches. It does not change PHOTON cryptography or batch contents.
To confirm GPU operation, watch the selected batch and hash rate in the live dashboard. The separate arm below is still required before a verified winner can be broadcast.
Generator table: cache not checked yet. Mining will verify OPFS or generate locally.
Secure context
Checking…
WebGPU API
Checking…
JavaScript
Waiting for miner.js…
Adapter
Not initialized
Status
Waiting for WebGPU opt-in.

GPU Debugging Tools

These tools are for miners trying new GPUs, drivers, WebGPU backends, and mobile devices. M67.6 retains the direct adaptive ladder down to 1,024 candidates for slower GPUs. None of the primary diagnostics below query Electrum, mine a live target, or broadcast a transaction. The One GPU -> CPU check gives the GPU a synthetic ~1/64 target, stops on the first reported solution, and compares that exact nonce's split-GPU Schnorr/HASH256 result with an independent strict CPU reconstruction.

Adapter details
Enable WebGPU to populate.
Last device loss
None observed this page load.
Adaptive batch
Not calibrated.
Validation time
Table upload
Direct batch ladder
Not calibrated.

This compatibility test uses the real optimized Stage A and M45 64 MiB table Stage B, then the exact normalized-Z WG64 C1 body that passed M67.29/M67.31. It repeats strict GPU-vs-CPU probes at multiple nonces, validates a synthetic GPU winner through strict CPU verification, and benchmarks the complete single-submission A+B+C1+C2+C3 path. No Electrum query or broadcast occurs.

Compatibility-build scope

Production mining and table-using diagnostics are intentionally disabled here. This page is only for validate and benchmark the complete Apple/Metal compatibility pipeline: CPU M27 precompute + fast 64 MiB fixed-base Stage A/B + split GPU C1/C2.

No diagnostic run yet.
Diagnostic report
Enable WebGPU, run a diagnostic, or press Copy Diagnostic Report.

Milestone 1 — PHOTON signing-message SHA-256

GPU computes SHA-256 of nonceLE || target for the deterministic CUDA vector.

Not run.

Milestone 2 — Complete transaction HASH256

GPU hashes the full 615-byte completed deterministic PHOTON transaction, then hashes the 32-byte first digest again. Both SHA-256 operations run in WGSL.

Not run.

Milestone 54 — Trustless PHOTON fee-sponsor covenant prototype

Local covenant construction and adversarial simulation only. No Electrum access, WebGPU work, funding transaction, or broadcast. Do not fund this prototype.

The all-zero value is a placeholder for structural analysis. A real covenant instance would be initialized with the live PHOTON baton transaction ID.
Not run.

Milestone 52 — Per-win PHOTON reward split research

This is a local structural/fee analysis only. It does not mine, connect to Electrum, or broadcast. It inspects the exact PHOTON redeem script used by this miner and models whether one winning reward can be divided between the miner and site owner.

Not run.

Milestone 51 — Stage-B split depth

Compares the proven four-split WG32 Stage-B path against eight two-window kernels and sixteen one-window kernels. Same 16-bit table and M36 two-pass Jacobian+affine arithmetic. This benchmark performs no live network access or broadcast.

Not run.

GPU validation result

Uses the proven 16-bit / four-split WG32 Stage-B path with a hardware-neutral calibrated batch size (maximum 524,288). Reads the live PHOTON baton directly from Electrum WSS. A GPU winner is reconstructed and independently verified on the CPU using strict BCH RFC6979/Schnorr semantics and HASH256, then the live baton and BCH height are rechecked. Broadcast occurs only when the separate mainnet arm checkbox is checked.

Not run.

Milestone 47 — specialized field-square revival

Re-tests the M36 symmetric two-pass field-square now that Stage B is split into four small kernels. Compares the M46 winner against selective Z², selective H²/R², and all-square mixed-add formulas. Complete 524,288-candidate PHOTON throughput is authoritative. No live network access or broadcast occurs.

Not run.

Milestone 46 — full-path fixed-base table width

Re-tests 15-bit versus 16-bit fixed-base tables after M45 established four-way serial Stage-B splitting. The 15-bit table is about 44% smaller but uses 18 windows instead of 16. Both unsplit and four-split paths are measured in the complete 524,288-candidate PHOTON pipeline. No live network access or broadcast occurs.

Not run.

Milestone 45 — serial Stage-B kernel splitting

Keeps the proven 16-bit table and Jacobian+affine two-pass arithmetic, but divides the 16 fixed-base windows across two or four serial GPU dispatches. This tests whether reducing Stage-B shader/register pressure outweighs the intermediate point read/write traffic. No live network access or broadcast occurs.

Not run.

Milestone 43 — chunked fixed-base kG

Tests partial intra-candidate parallelism while preserving the cheap Jacobian+affine mixed-add path. Two-way mode uses two serial 8-window accumulators plus one Jacobian+Jacobian merge; four-way mode uses four 4-window accumulators plus three full merges. Complete 524,288-candidate PHOTON throughput is authoritative. No live network access or broadcast occurs.

Not run.

Milestone 42 — cooperative fixed-base kG

Assigns 16 GPU lanes to each candidate so the 16 fixed-base table points are reduced as a four-level workgroup tree instead of a serial 15-addition dependency chain. Complete PHOTON throughput at the M41 524,288-candidate batch is authoritative. No live network access or broadcast occurs.

Not run.

Milestone 41 — full-path Stage-B and batch tuning

Treats complete A→B→C throughput as the authority after M40 showed isolated Stage-B timing can select the wrong winner. Sweeps every M40 baseline and streamed Stage-B workgroup size inside the complete PHOTON pipeline, with M39 fixed-d Stage C, then sweeps candidate batch size using the full-path winner. No live network access or broadcast occurs.

Not run.

Milestone 40 — Stage-B register-pressure reduction

Tests a two-pass field multiplier that eliminates the two temporary 16-element operand arrays and extracts 16-bit digits directly from the original U256 limbs. Baseline and streamed fixed-base kG are tested across a fine workgroup sweep before complete PHOTON timing. M39 fixed-d Stage C is retained. No live network access or broadcast occurs.

Not run.

Milestone 39 — fixed-private-key Stage C

Replaces the per-candidate 256-bit e*d double-and-add with a 256 KiB table specialized to the persistent mining private key. Also tests WG32 for Stage C and applies the proven two-pass field reduction to its explicit affine-x multiplications. Primitive and end-to-end correctness gates run before timing. No live network access or broadcast occurs.

Not run.

Milestone 38 — split-stage tuning

Tunes workgroup size independently for SHA/RFC, fixed-base kG, and the Schnorr/HASH tail; re-tests 15-bit versus 16-bit tables in the isolated two-pass kG stage; and compares the three-stage split with a lower-traffic two-stage A + (kG+tail) layout. Every timed pipeline is explicitly pre-warmed. No live network access or broadcast occurs.

Not run.

Milestone 37 — split-kernel + timing verification

Verifies the unexpected M36 absolute-rate jump using longer, interleaved control measurements, then tests a three-pass GPU pipeline that isolates message/RFC, fixed-base kG, and the Schnorr/HASH256 tail. This lets the fast M36 squaring kG run without inflating the register footprint of the entire miner. Exact signature/HASH256 equivalence is required first. No live network access or broadcast occurs.

Not run.

Milestone 36 — field arithmetic bake-off

Keeps M32's exact 16-bit scalar/window/table structure and tests only field arithmetic: a two-pass secp256k1 pseudo-Mersenne reduction and a symmetric radix-2^16 squaring routine. GPU primitive fuzzing and end-to-end signature/HASH256 equivalence must pass before timing. No live network access or broadcast occurs.

Not run.

Milestone 35 — signed-16 half-table + direct Jacobian

Keeps M32's ordinary Jacobian formulas, fixed RFC6979, transaction-prefix hashing, and WG256. First isolates direct aligned 16-bit digit extraction and first-point initialization, then tests balanced signed-16 recoding using a ~32 MiB magnitude table instead of the 64 MiB unsigned table. Exact signatures and HASH256 are required before timing. No live network access or broadcast occurs.

Not run.

Milestone 34 — XYZZ fixed-base accumulation

Keeps M32 fixed RFC6979, transaction-prefix hashing, the 16-bit generator table, and WG256 unchanged. Replaces only the running fixed-base point representation with XYZZ coordinates, which removes one general field square per real mixed addition and one field multiplication during final affine-x recovery. End-to-end signature/HASH256 equivalence is required before timing. No live network access or broadcast occurs.

Not run.

Milestone 33 — post-RFC profiler + QR optimization

Profiles the exact M32 winner with finer post-ECC stages, correctness-checks a one-Legendre Jacobian QR identity, and retests WG64/WG128/WG256 after the large M32 RFC reduction. The fastest correctness-proven full path is then profiled over eight cumulative stages. No live network access or broadcast.

Not run.

Milestone 32 — fixed-length RFC6979/HMAC bake-off

Keeps the M31-winning transaction-prefix, original signing SHA, 16-bit fixed-base kG, and WG256 path unchanged. Replaces only the remaining RFC6979 HMAC work with fixed 32-byte/113-byte SHA-256 block layouts and reuses K-specific ipad/opad SHA states. Exact RFC nonce, Schnorr signature, and HASH256 equivalence is required before timing. No live network access or broadcast occurs.

Not run.

Milestone 31 — transaction-prefix final + fresh bottleneck profile

Compares the M29-equivalent baseline, transaction-prefix-only, and combined M30 SHA-specialized paths using the winning 16-bit table and optimized RFC6979. After selecting the fastest full path, it reruns a cumulative six-stage profiler on that exact winner. Seven timed rounds, WG256, no live network or broadcast.

Not run.

Milestone 30 — PHOTON SHA specialization profiler

Keeps the M29-winning 16-bit + precomputed RFC6979 + WG256 cryptographic path fixed, then tests a direct one-block signing-message SHA-256 and a transaction HASH256 path that resumes after six precomputed constant SHA-256 blocks. Exact digest, signature, and HASH256 equivalence is required before timing. No live network access or broadcast occurs.

Not run.

Milestone 29 — isolated generator-buffer final

Benchmarks the already-proven optimized RFC6979 PHOTON path using separate 14-, 15-, and 16-bit generator buffers. Each width is timed in isolation for seven rounds at WG256 so the M28 combined 119 MiB binding cannot influence the result. No live network access or broadcast occurs.

Not run.

Milestone 28 — final 14/15/16-bit optimized bake-off

Runs an end-to-end deterministic equivalence gate comparing production and precomputed RFC6979 candidate signatures and transaction hashes, then benchmarks 14-, 15-, and 16-bit fixed-base paths at workgroup_size(256). No live network access or broadcast occurs.

Not run.

Milestone 27 — 16-bit fixed-base + RFC6979 precomputation

Correctness-checks a 16-bit fixed-base secp256k1 table against the proven 4-bit table, precomputes constant first-HMAC SHA-256 states for the persistent browser mining key, verifies optimized RFC6979 output byte-for-byte against production, then benchmarks RFC6979 and the complete PHOTON candidate path at WG256. No live network access or broadcast occurs.

Not run.

Milestone 26 — extreme window sweep + RFC6979 sub-profiler

Correctness-checks and benchmarks 12-, 13-, 14-, and 15-bit unsigned fixed-base secp256k1 tables at workgroup_size(256), then profiles the RFC6979 path as message SHA-256 plus each sequential HMAC step. No live network access or broadcast occurs.

Not run.

Milestone 25 — wide-window sweep + optimized profiler

Correctness-checks and benchmarks 8-, 9-, 10-, 11-, and 12-bit unsigned fixed-base secp256k1 tables at workgroup_size(256), selects the fastest complete PHOTON candidate path, then reruns the cumulative arbitrary-key profiler using that winning window. No live network access or broadcast occurs.

Not run.

Milestone 24 — fixed-base scalar multiplication bake-off

Correctness-checks and benchmarks 4-bit, 5-bit, 6-bit, 8-bit, and width-6 wNAF fixed-base secp256k1 multiplication using the same arbitrary-key RFC6979 workload as live PHOTON mining. All timed kernels use workgroup_size(256).

Not run.

Milestone 23 — WebGPU performance profiler

Profiles the live arbitrary-key cryptographic path cumulatively, then benchmarks the complete search kernel at workgroup sizes 32, 64, 128, and 256. No network access, mining target search, or broadcast is required.

Not run.

Milestone 22 — live dry-run PHOTON mining

This milestone performs real PHOTON proof-of-work against the current live target. The browser builds the live 615-byte transaction, searches nonce batches with WebGPU, re-checks BCH height and baton state between batches, discards stale work, and independently verifies any returned winner on the CPU before reporting it. No transaction is broadcast.

Not run.