# Verify this record

Exported 2026-10-08T01:03:43.501082Z from the **paper** ledger: 5202 events, head hash `bd1a96e547218323c0e67380ba77b0e4d9f7c22861d9d57a3e11a816d16c803b`.

## 1. Recompute every number (standard library only)

```
python scripts/recompute.py public/
```

It re-walks the hash chain of `ledger.jsonl` line by line, re-hashes every file in `blobs/` against its name, checks that `equity_hourly.csv` is exactly the ledger's hourly `mark` events, rebuilds every closed trade in `trades.csv` from the ledger's `fill` events, recomputes every field of `metrics.json` (Sharpe, its standard error, Sortino, max drawdown, win rate, turnover, fees and the 90% block-bootstrap intervals) and every arm in `arms.json`. Exit code 0 means every published number recomputes.

## 2. The pre-registration

- Genesis: seq 0, hash `fb66b6bf40e9229407cdd62266cfe180994c38eb96f18d5c8bca983323ccd3c0`, created 2026-09-28T00:07:42.667223Z.
- Policy hash `eaee6d5a27f608db9923e870fdd23f786925b92a2e11d440c5c7b37aeb93689e`: the SHA-256 of the canonical JSON of the policy it carries (recompute.py checks it).
- OpenTimestamps: failed at 2026-09-28T00:07:44.456237Z, proof no proof stored. Check it with `ots verify` against the genesis event's canonical bytes.
- The genesis hash was posted on X by the owner before the first order.

## 3. The orders exist on Bitget Demo

```
python scripts/verify_orders.py --public public/orders.json
```

One read-only `order --action detail --orderId <id> --paper-trading` per published order through Bitget's own Agent Hub CLI. It needs a Demo key for the account that traded, set up as the script's docstring describes; the owner may publish a read-only one.

## 4. Replay a decision without any key

```
t2sa replay --public public/ --decision <decision_id>
```

It re-runs the logged snapshot, the recorded completion, the kernel and the planner, and checks that the ruling and order intents hash to what the ledger holds.

## 5. Every card is its own evidence

Each `cards/<id>.json` lists the ledger `seq` of every event it was read from and every blob those events commit to; `sha256(blobs/<hash>)` equals the file name.
