NoxOracle

Verify — the judge dashboard

Recompute the invariants from chain data alone. Run it yourself: noxoracle verify-epoch 1.

Σ YES · publicDecrypt result
1700
0x0000aa36a723017ac73ba8722322b53895e5b5626b7081c9bd1c0b256a9e0183
Σ NO · publicDecrypt result
500
0x0000aa36a723010c0a512754a15eec26f5a951a555d405b3d29bb33e6a398603
verify_epoch.ts — invariants I1–I5
verify-epoch #1
  ✅ I1  Conservation: Σ user stakes ≡ epoch aggregates
       Σ YES 1700 vs sumYes 1700; Σ NO 500 vs sumNo 500
  ✅ I2  Aggregation-only: only sumYes/sumNo (+unwrap) are publicly decryptable
       3 public reveal(s), all aggregate handles; 0 stake handles leaked
  ✅ I3  Faithful routing: FPMM buys ≡ aggregates; unwrap ≡ their sum
       spentYES 1700/1700, spentNO 500/500, unwrapped 2200/2200
  ✅ I4  Claims bounded: Σ payouts ≤ pot
       Σ payouts 1626 ≤ pot 1626
  ✅ I5  Protocol purity: CTF/FPMM bytecode ≡ official artifacts
       CTF match, FPMM match
  → ALL INVARIANTS GREEN
ConditionalTokens v1.0.3
0xadf1ee4719c637975ba08765e3a1187f2fb865c9b17386005960a81ff29cfcc7
bytecode ≡ official npm artifact
FixedProductMarketMaker v1.8.1
0xa01004f95f5b20663a3263a91373a204b65959896e0aaac1bb1aec428995f62e
bytecode ≡ official npm artifact
Epoch #0 — the deliberately-bad exhibit
k=1 — aggregates equal individuals; NOT private. With one bettor, the aggregate IS the individual — don't do this. The k-gate refuses to reveal sub-k epochs on-chain.
Benchmarks (p50 / p95, ms)
dual-handle encrypt (2× concurrent)
640 / 910
epoch-close publicDecrypt
1180 / 1720
claim decrypt
720 / 1030
illustrative; scripts/bench.mjs pins real p50/p95 (N=20) on the funded run