Skip to content

Commit e7ce16b

Browse files
committed
research: Sentinel v2 preregistration — holdout protocol frozen
- single falsifiable window-level hypothesis (v2 policy beats static on net LP economics), parameters frozen to the deployed contract - holdout Jan-Jul 2026, ingested+evaluated exactly once - bars: P1 bootstrap-significant DeltaNet>0, P2 robustness across pool-months, P3 burden <=12bps; failure of any = v2 abandoned - no trade-level claims (Gate 1 verdict stands); elasticity limitation disclosed
1 parent e2e8f42 commit e7ce16b

3 files changed

Lines changed: 100 additions & 2 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ quiet hours decay it back toward base. Demo script:
8282
|---|---|
8383
| Gate 1 preregistration (frozen) | [research/GATE1_PREREG.md](research/GATE1_PREREG.md) |
8484
| Gate 1 report (fail on C3, pass on C1/C2) | [research/FINDINGS.md](research/FINDINGS.md) |
85+
| **Sentinel v2 preregistration (holdout protocol)** | [research/V2_PREREG.md](research/V2_PREREG.md) |
8586
| Measurement plan (seeded, committed pre-ingestion) | [evidence/gate1/measurement-plan-2025.json](evidence/gate1/measurement-plan-2025.json) |
8687
| 123 window manifests (hash-pinned) | [evidence/gate1/windows-2025/](evidence/gate1/windows-2025/) |
8788
| Calibration: continuous policy sweep | [evidence/gate1/backtest-continuous-fee.json](evidence/gate1/backtest-continuous-fee.json) |

research/FINDINGS.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,10 @@ fee bounds and rate-limit invariants. **Measured swap-path overhead:
5757

5858
All v2 evidence comes from calendar-2025 development data that informed the
5959
design. The locked holdout (Jan–Jul 2026) has not been ingested or evaluated
60-
and will be used exactly once, under a new pre-registration with window-level
61-
bars, before any performance claim is made.
60+
and will be used exactly once, under
61+
[`V2_PREREG.md`](V2_PREREG.md) — frozen 2026-08-23 with the policy parameters,
62+
pass bars (P1 significance, P2 robustness, P3 burden bound), and the
63+
one-shot commitment — before any performance claim is made.
6264

6365
## 2026-08-23 — Gate 1 validation result: FAIL on criterion 3
6466

research/V2_PREREG.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# Sentinel v2 preregistration — holdout evaluation
2+
3+
**Frozen:** 2026-08-23 (before any holdout data was ingested)
4+
**Scope:** one evaluation of the calibrated SentinelHookV1 fee policy on the
5+
locked holdout period, **Jan – Jul 2026**, evaluated exactly once.
6+
**Relation to Gate 1:** the Gate 1 verdict (trade-level predictability failed)
7+
stands and is not revisited. This preregistration tests a *different*,
8+
window-level claim that survived the post-mortem.
9+
10+
---
11+
12+
## 1. Hypothesis (single, falsifiable)
13+
14+
On the locked holdout period, the Sentinel v2 fee policy —
15+
`fee(t) = clamp(4 × EMA₃₀₀ₛ[realized 60s pool-price move], 5 bps, 100 bps)`
16+
delivers higher net LP economics (fees collected minus adverse-selection
17+
losses) than a static 5 bps fee on the same trades.
18+
19+
No trade-level predictability is claimed. The mechanism is loss clustering:
20+
toxic windows persist, and a fee that rises with realized volatility collects
21+
compensation while they last.
22+
23+
## 2. Frozen policy parameters
24+
25+
Chosen on Feb–Sep 2025 calibration data, confirmed on untouched Oct–Dec 2025
26+
(`evidence/gate1/calibration-vol-fee.json`), identical to the deployed
27+
[`SentinelHookV1`](../src/SentinelHookV1.sol):
28+
29+
| Parameter | Value |
30+
|---|---|
31+
| Signal | EMA of \|sqrtP(t) − sqrtP(t − 60s)\| / sqrtP(t − 60s) |
32+
| EMA half-life | 300 s |
33+
| Multiplier k | 4 |
34+
| Base fee | 5 bps |
35+
| Fee cap | 100 bps |
36+
| Rate limit | 500 (0.05%) per update |
37+
38+
These values may not be adjusted after holdout results are seen. No parameter
39+
search is performed on holdout data.
40+
41+
## 3. Data
42+
43+
- **Period:** all UTC days from 2026-01-01 through 2026-07-31 (the locked
44+
holdout; never ingested, never queried before this evaluation).
45+
- **Pools:** the measurable cohort from the Gate 1 preregistration as amended:
46+
M2 native-ETH/USDC (`0x3258…d9`) and M1 USDC/HYPE (`0xc4f3…79c`), plus their
47+
frozen reference venues. M1's venue was active from Nov 2025, so both pools
48+
are expected to be measurable; any pool whose reference venues prove
49+
unavailable in the holdout is reported as unmeasurable, not substituted.
50+
- **Ingestion:** identical pipeline (event extraction with anchor-verified
51+
timestamps, sampled day-windows: 6 per pool-month, seed `20260823`, plan
52+
committed before ingestion runs).
53+
- **Labels:** identical 60-second reference-priced adverse-selection cost.
54+
55+
## 4. Evaluation metrics and pass bars
56+
57+
Primary metric: **ΔNet = LP net under v2 policy − LP net under static 5 bps**,
58+
computed by replaying every labeled holdout trade chronologically through the
59+
frozen policy (identical to the calibration replay; no re-fitting).
60+
61+
| # | Bar | Threshold |
62+
|---|---|---|
63+
| P1 | Pooled ΔNet > 0 | clustered bootstrap (pool-day clusters, B = 10,000, seed 20260823) 95% CI excludes 0 |
64+
| P2 | Robustness | ΔNet > 0 in ≥ 60% of active pool-months, and positive for at least one of M2/M1 individually |
65+
| P3 | Burden bound | average trader burden ≤ 12 bps (justification: calibration measured 8.1 bps at these parameters; above 12 bps the policy over-taxes benign flow even if profitable) |
66+
67+
**Pass = P1 ∧ P2 ∧ P3.** Failure of any bar = v2 rejected.
68+
69+
## 5. Commitment
70+
71+
- The holdout is ingested once and evaluated once. Re-running with different
72+
parameters, windows, or labels — for any reason — voids the result.
73+
- The result is published in `FINDINGS.md` either way, with the full
74+
methodology and all exclusion counts.
75+
- **On failure:** the dynamic-fee approach is abandoned. No third attempt will
76+
be made without a fundamentally new mechanism supported by evidence that
77+
predates its evaluation data.
78+
- On success: the result supports a production-pilot proposal (Gate 3 safety
79+
work, audit path) — it does not by itself justify mainnet capital.
80+
81+
## 6. What this preregistration does not claim
82+
83+
- No claim that trade-level predictability exists (Gate 1 found it does not).
84+
- No claim about trader volume response: the replay holds trade sizes fixed;
85+
real elasticity would change realized economics in both directions. This is
86+
a known limitation shared with the calibration evidence.
87+
- No claim about pools outside the frozen cohort.
88+
89+
## 7. Reproduction
90+
91+
The holdout measurement plan, ingestion, labeling, and replay use the same
92+
committed tooling as Gate 1 (`research/sentinel_data/`), invoked with
93+
`--year 2026 --months 1..7`. The plan file is committed to
94+
`evidence/gate2/` before ingestion begins; this document is committed before
95+
that.

0 commit comments

Comments
 (0)