LuxiBook · downloadable · receipts
Price a European option book and verify the run.
A closed-binary European option-book pricer. Black-Scholes / Black-76, five Greeks, and a signed receipt on every run. Every run emits a signed receipt: a SHA-256 fingerprint of the output numbers, sealed with an Ed25519 signature from the install that produced them. LuxiBook is the public receipt and determinism demonstration, separate from the proprietary Risk State Engine.
Public demonstration boundary
CSV book in
You supply a position book as CSV. The published example is example_book.csv.
European Black-Scholes / Black-76
Closed-form European pricing. You bring time to expiry, rate, and volatility.
Five Greeks
Five Greeks per position, written with the prices into the output report.
signed receipt
Every run can emit a receipt. Store it. Re-run the same book and check the hash.
Who it is for
Quantitative, trading, risk, and financial-infrastructure teams that need a defined book priced the same way, with a receipt they can keep. Also useful to regulated-computing groups that want a small, inspectable binary rather than a service stack.
Downloads
Binaries and the example book live in the public LuxiDemo repository. These are the current published files.
| File | Platform |
|---|---|
| luxi-book-macos-arm64 | macOS Apple Silicon (CPU) |
| luxi-book-linux-x86_64 | Linux x86_64 (CPU) |
| luxi-book-linux-x86_64-cuda | Linux + NVIDIA GPU (--mode gpu) |
| example_book.csv | Example position book |
| *.sha256 checksums | Matching checksums in the download folder |
There is no macOS GPU binary. The CUDA build needs a live NVIDIA driver. Binaries are unsigned: on macOS, right-click the file and choose Open the first time.
How to try it
# Mac CPU
chmod +x luxi-book-macos-arm64
./luxi-book-macos-arm64 price --book example_book.csv --out report.csv --receipt receipt.json
# Linux CPU
./luxi-book-linux-x86_64 price --book example_book.csv --out report.csv --receipt receipt.json
# Linux CUDA
./luxi-book-linux-x86_64-cuda price --book example_book.csv --out report.csv --receipt receipt.json --mode gpu
Full download notes and checksums: demo page.
Public example-book receipt check across five machines
Running the published example_book.csv through the published
v0.2.1 binaries on August 16, 2026 produced the same output hash on every
machine tested, on the LuxiBook CPU and CUDA pricing paths. This is an
internal LuxiBook measurement, not Risk State Engine evidence.
| Field | Value |
|---|---|
| Book | example_book.csv (10 rows, published) |
| Output hash - example book | 4a21b1e708fa5c694bf48237df5e5bd3b94599e6273d07986283c6c6b8e3c97a |
| Book total - example book | 151.70016507843832 |
| ATM_CALL price | 10.4505835721856215 |
| Engine | v0.2.1. The stored receipts record engine_version 0.2.0 because they were measured before the version string was bumped. |
| Receipts published | 20, each Ed25519-signed, across 5 installs |
| Receipts folder | downloads/luxibook/evidence/v0.2.1-phi-fix-matrix |
| Date | August 16, 2026 |
| Machine | Architecture | Compute capability | CPU path | CUDA path |
|---|---|---|---|---|
| NVIDIA H200 | Hopper | 9.0 | match | match |
| NVIDIA H100 | Hopper | 9.0 | match | match |
| NVIDIA A100 | Ampere | 8.0 | match | match |
| NVIDIA RTX 5090 | Blackwell | 12.0 | match | match |
| NVIDIA RTX 4090 | Ada | 8.9 | match | match |
Every row is one physical machine with its own install key. The published folder preserves all 20 signed receipts from the original two-book matrix. Each machine's compute capability is recorded in its receipt. Apple Silicon has a published binary and was covered by an earlier check, but it is not part of this matrix; there is no macOS GPU binary.
example_book.csv, these machines, and the LuxiBook pricing kernel.
It is not a universal cross-platform promise and does not show that Risk State
Engine numerical risk aggregation runs on these GPUs.
Each JSON receipt is Ed25519-signed. The payload field is the signed plaintext; the receipt field carries the signature. You can verify in three lines of Python using only the standard cryptography package:
# pip install cryptography
import base64, json
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
from cryptography.exceptions import InvalidSignature
with open("receipt.json") as f:
data = json.load(f)
# Receipt blob layout: 5-byte header + 32-byte pubkey + 64-byte Ed25519 sig
s = data["receipt"][len("lxq2_"):]
pad = (-len(s)) % 4
raw = base64.urlsafe_b64decode(s + "=" * pad)
pubkey = Ed25519PublicKey.from_public_bytes(raw[5:37])
try:
pubkey.verify(raw[37:], data["payload"].encode())
print("PASS: signature valid")
except InvalidSignature:
print("FAIL: signature invalid")
The signer_pubkey field is the Ed25519 public key in hex, and the payload field lists every signed field in plain text, so you can audit what was covered before verifying. Note that the key travels with the receipt, so the check above proves the receipt is internally consistent. To prove it came from a specific machine, pin the key: pass --expect-pubkey <hex> to verify_receipt.py (view on GitHub, published in the LuxiDemo download folder) using a key you already trust from the published evidence.
The check that fails
A check that has never been shown to fail cannot be told apart from a check that cannot fail. So here it is failing. We rebuilt a book of 11,317 real executed BTC option trades from one past trading day, priced and sealed it, then changed a single implied volatility in the fifteenth significant digit in one row and verified the altered book against the original receipt.
| Field | Value |
|---|---|
| Book | 11,317 executed trades across 411 instruments, trade date February 18, 2025 |
| The single edit | one implied vol, 0.45219999999999999 to 0.45220000000000049 |
| Rows whose numbers moved | 1 of 11,317 |
| Book total before | 33842393.3392818272 · bits 41802326cab6d964 |
| Book total after | 33842393.3392818272 · bits 41802326cab6d964 |
| Output hash before | f52c7f15812490617009efd09d7703414d80fc1badc3fb8d88c386b56fc8155c |
| Output hash after | 8ae64eb3dafd1efe523ce458cf7e6689a5e3ed58dfa9a13dc080d6f959f5ee73 |
verify exit code | 1 |
[OK ] signature: Ed25519 ok
[FAIL] input_sha256: MISMATCH - book file differs from what was signed
[FAIL] output_vector_sha256: MISMATCH - re-price produced a different vector
[OK ] book_price_bits: bits match re-price
[OK ] mode: payload=cpu verify_mode=cpu
RESULT: FAIL - do not trust this receipt for the given book.
Quoted output, with the binary's own long dash rendered as a hyphen. Nothing else is altered.
book_price_bits still passes,
because the book total did not move at all. It was identical to the last bit before and
after the edit. A portfolio total, a P&L summary, or any reconciliation built on the
total would have shown nothing. The output vector hash caught it, and the verifier named
which two checks broke and on which file.
Reproduce a past trading day yourself
Both books below were rebuilt from a free public venue history API. No account, no key, no data purchase. Executed trades do not change after the fact, so the input can be regenerated on demand rather than accepted on trust: the rebuilt book came back byte-identical to the one sealed earlier.
| Field | Value |
|---|---|
| Book A | Trade date February 18, 2025 · 11,317 trades · 411 instruments |
Book A · input_sha256 | 7ffb96d4668d7ca795d87888bf99884d0e23653a0bb7ddf6e466d02c2170b39e |
Book A · output_vector_sha256 | f52c7f15812490617009efd09d7703414d80fc1badc3fb8d88c386b56fc8155c |
| Book A · book total | 33842393.3392818272 |
| Book B | Trade date November 5, 2024, US election day · 14,879 trades · 474 instruments |
Book B · input_sha256 | 277b4c8b41ab04f816d60c7ffa81142f9f2c6864f7aeb6b8dbc3194d3e52fafa |
Book B · output_vector_sha256 | be78fd221673213eec90477e01260804492bb2e74dd37b163bc9aef1d97a2a48 |
| Book B · book total | 60831980.0959759504 |
| Repeat runs | Three consecutive price runs per book, one distinct output hash each |
| Price time | 0.056 s for 11,317 rows, 0.071 s for 14,879 rows (median of five warm runs; the first run of the session measured 0.636 s on a cold page cache) |
| Verify time | 0.028 s and 0.033 s (median of five) |
| Engine | v0.2.1 · git_sha 02388f77 · receipt scheme luxiquant-receipt-v2 |
| Date measured | August 17, 2026 |
Both books were also re-run from an empty directory with a fresh key directory. That produced a different install fingerprint, as it must, and the same output hash. Different install, same number, and the receipt records which install asserted it.
# 1. get the published binary and prove it is the published one
curl -fsSLO https://raw.githubusercontent.com/RegularJoe-CEO/LuxiDemo/main/downloads/luxibook/luxi-book-linux-x86_64
sha256sum luxi-book-linux-x86_64
# expect b4c14b9e0ceddf86e7a518d36d9ea48e5d6b07c72c331294a90af2100cc53c29
# 2. rebuild the book from the venue's free public history
python3 build_historical_book.py 2025-02-18 > book.csv
sha256sum book.csv
# expect 7ffb96d4668d7ca795d87888bf99884d0e23653a0bb7ddf6e466d02c2170b39e
# 3. price, then verify
chmod +x luxi-book-linux-x86_64
./luxi-book-linux-x86_64 price --book book.csv --out priced.csv --receipt r.json
./luxi-book-linux-x86_64 verify --book book.csv --receipt r.json
Scripts: build_historical_book.py
rebuilds either book from the public history.
reproduce.sh runs the whole sequence for
both dates, checks every value against the figures above, and then breaks one volatility on
purpose so you see the seal react.
S in
these books is spot. That makes this a reproducibility exercise and not evidence for a
pricing-accuracy claim against the venue's own marks.
Request a paid evaluation
Bring your own book, your comparator, and the hardware you care about. A paid, fixed-scope evaluation measures correctness, determinism, speed, energy, and receipts, then documents the head-to-head.