BL-SD-031: Directional Drift After Whale State Change
BIJECTIVE LABS
BL-SD-031: Directional Drift After Whale State Change
Status: RELEASED
Classification: PUBLIC
Revision: 1
Date: 2026-09-08
Venue: Hyperliquid perpetuals Programme: I Verdict: CLOSED Axis of death: Cadence Transferability: ENVELOPE-BOUND
1. Identification
| Field | Value |
|---|---|
| Internal code | WC1 |
| Family | Wallet cartography, directional test |
| Venue | Hyperliquid perpetuals |
| Programme | I |
| Pre-registered | 2026-07-14, written after the WC0 mechanical gate passed but before a single forward return was seen |
| Verdict issued | 2026-07-14 |
| Pre-registration document | 2026-07-14_WC1_whale_drift_preregistration.md |
| Verdict document | Same document, section 6, ledger row WC1-1 |
| Predecessor | BL-SD-030, the mechanical characterisation whose gate this test depended on |
The predecessor established that whale state-change events occur often enough, 154.8 per day on Ethereum, and are detected quickly enough, 92.8 seconds at the median, to make this directional test well posed. This dossier is that test, on the exact horizon band the predecessor established as reachable.
2. Economic thesis
A whale's position state change, an open, an increase, or a flip in direction, is public on-chain information the moment it occurs, but this programme observes it only through a tiered polling schedule rather than a push feed. If a state change carries genuine conviction about future price and the information takes longer than this system's polling latency to be fully absorbed into price, then price should continue to drift in the direction of the state change after this system detects it, for as long as the information remains unpriced.
Who is forced to lose. The design names a counterparty on the other side of a continuing move who has not yet observed, or has not yet acted on, the same state change: a slower participant, or one without on-chain visibility into position changes at all. Whether this counterparty exists in a form this system can trade against depends entirely on whether the information in a state change is still unpriced by the time this system's own detection latency allows it to be observed, which is the question this dossier answers directly.
3. Falsifiable claim
Pre-registered after the mechanical gate passed, before any forward return was computed:
Whale position state changes classified as risk-increasing, filtered by account value and notional, produce a net positive return at the 300-second horizon after detection, net of the taker round trip, and the direction of the state change is informative under a sign-permutation test.
| Metric | Threshold | Decision if crossed |
|---|---|---|
| Net return at 300 s, CI95 lower bound | at or below 0 | Kill criterion (a), economics not proven |
| Sign-permutation p-value | at or above 0.05 | Kill criterion (b), direction not informative |
| Either criterion fires | either | Variant fails; no subset or horizon substitution permitted afterward |
4. Mathematical specification
Notation per BL-D-011.
Event definition, from the positions stream, per (address, coin), poll series
ordered by rx_ns (baseline first-observation convention per BL-SD-030):
event requires ALL of:
(i) account_value(detecting row) >= $1,000,000
(ii) |szi_new - szi_prev| * mid_asof(rx_ns_detect) >= $500,000
(mid staleness <= 60 s for this valuation)
(iii) kind in { OPEN, INCREASE, FLIP }
(risk-increasing actions, a-priori conviction signal;
DECREASE and CLOSE reported separately as context, never as a
decision input)
(iv) cooldown >= 300 s per coin since the previous qualifying event
(independence, consistent with the burst-detection design)
t_ev = t_det (rx_ns of the detecting poll, the earliest instant this
system could know the change occurred)
d = sign(szi_new - szi_prev) (FLIP takes the new stance)
Drift and net return, at horizon H, with a staleness guard added by audit correction:
m0 = mid_asof(t_ev), mH = mid_asof(t_ev + H), guard staleness <= 5 s
drift_H = d * (mH - m0) / m0 * 1e4
net_H = drift_H - 9.0 bps (round-trip taker-to-taker, venue tier 0)
Horizon primary H* = 300 s, a-priori: the median event is already 93 seconds old
by the time it is detected, so five minutes from detection is a single,
reasonable test point rather than a search. Secondary {60, 900, 1800} s
reported as robustness only.Causality holds by construction: t_ev is the detecting poll's own receive time, m0 is
observed at that instant, and mH looks forward only to the horizon under test. The 5-second
staleness guard on both m0 and mH was added by an audit correction made on 2026-07-14,
before this instrument was run, and is recorded here as a departure from the earlier
_asof implementation flagged in the asset register as lacking a freshness bound.
5. Operating envelope
| Parameter | Value for this measurement |
|---|---|
| Round-trip cost assumed | 9.0 bps, taker-to-taker, venue tier 0 |
| Execution channel | Crossing on both legs, consistent with the burst-directional family |
| Latency band | 300-second horizon, forced by a 92.8-second median detection latency established in BL-SD-030 |
| Measurement cadence | Tiered polling: 30 s near-liquidation, 90 s large accounts, 600 s default |
| Capital scale | Programme default, BL-FM-002 section 6 |
| Venue and instruments | Hyperliquid perpetuals, ETH primary; BTC and SOL context |
| Data era | Recorded shadow lake, 2026-07-01 to 2026-07-13 |
6. Instrument
The whale-drift instrument, test-driven for the one function specific to this design,
cooldown_filter, and otherwise reusing the state-change extraction from BL-SD-030 and the
asof-freshness and statistical machinery built for the burst-directional family.
| Property | Value |
|---|---|
| Inference | Daily-block bootstrap CI95 (10,000 resamples); sign-permutation test (10,000 resamples) |
| Sample, primary, ETH | 289 events, well-powered, zero dropped for staleness |
| Sample, context, ETH exit-kind | 226 events |
| Sample, context, BTC | 599 events |
| Sample, context, SOL | 62 events |
7. Results
| Arm | n | Estimate | CI95 / p | Threshold | Result |
|---|---|---|---|---|---|
| Drift at 300 s, primary ETH | 289 | -0.60 bps | sign-permutation p = 0.723 | p below 0.05 | FAIL |
| Net at 300 s, primary ETH | 289 | -9.60 bps | [-11.38, -7.90] | CI lower above 0 | FAIL |
Robustness across secondary horizons, reported as context rather than as a decision:
| Horizon | Drift (bps) |
|---|---|
| 60 s | -0.65 |
| 300 s (primary) | -0.60 |
| 900 s | +1.65 |
| 1,800 s | +1.76 |
Context, exit-kind and other-coin events, reported without a decision attached:
| Arm | n | Drift at 300 s (bps) |
|---|---|---|
| ETH, exit kinds (DECREASE, CLOSE) | 226 | +0.84 |
| BTC, all kinds | 599 | +0.30 |
| SOL, all kinds | 62 | +0.08 |
Every one of these context figures sits near zero, consistent with the primary finding rather than contradicting it.
8. Verdict, axis of death, and transferability
Verdict: CLOSED. Axis: cadence. Transferability: ENVELOPE-BOUND.
Both pre-registered kill criteria fire on the primary arm. The sign-permutation p-value of 0.723 means the direction of a whale state change carries no detectable information about the next several minutes of price at the time this system observes it, and the net confidence interval sits entirely below zero. The original pre-registration recorded this, correctly and without qualification, as a clean double failure on 289 well-powered events, explicitly forbidding any subset search or horizon substitution afterward, and this dossier does not relitigate that recording.
The classification carried here is a retrospective one, made in the review of the full
programme record rather than at the moment this result was first reported, and it turns on a
distinction worth stating precisely. A sign-permutation test on the data this system actually
observed answers a narrower question than "does a whale state change carry information": it
answers "does a whale state change carry information that has not already been absorbed into
price by the time this system's polling schedule allows it to be seen." Those are the same
question only if detection is instantaneous. It was not: BL-SD-030 measured a 92.8-second
median gap between a state change occurring and this system detecting it. A comparably-sized
directional signal, tested at print-level detection with a latency near zero, was found to be
real in BL-SD-029: aggregated informed-flow bursts produced a measurable 3.04 basis point
drift at a 30-second horizon. The contrast between a real signal at near-zero detection latency
and a null signal at a 93-second median detection latency is the basis for reading this result
as a cadence limitation rather than as proof that whale state changes carry no information at
all.
This is not a rescue of the result. The net return remains negative and the p-value remains above threshold on the data that exists; a reader should not treat this dossier as reporting a hidden edge. It is a statement about what was actually tested: not "is there information in a whale's position change" but "is there information left over after a 93-second observation delay," and the answer to the second, narrower question is no, for a reason this programme can name rather than merely observe.
9. Cost and capacity analysis
Drift at 300 s, primary ETH -0.60 bps
Round trip, taker-to-taker 9.00 bps
Net at 300 s, primary ETH -9.60 bpsNo capacity measurement was taken. At 154.8 qualifying events per day on Ethereum alone, frequency was never the binding constraint; the finding failed on signal and on economics together, at whatever scale this event rate would support.
10. Envelope sensitivity and reopening conditions
Binding parameter: detection latency.
Our value: 92.8 s, median, tiered polling
Reversal condition: not directly computable from this measurementThis programme did not measure how the informational content of a whale state change decays as
a function of the delay before observation, which is the measurement that would be needed to
state a precise reversal point in seconds. What is available is a reference point rather than a
formula: a directional signal from a related, size-driven informed-flow mechanism was found to
be real at near-zero detection latency and a 30-second test horizon, in BL-SD-029. That
signal itself did not clear its own round-trip cost, but its existence at a fast detection
cadence, against this dossier's null result at a roughly 93-second cadence, is evidence that
the binding constraint here is how quickly this system observes the event rather than whether
the underlying event class carries information at all.
What would reopen it: a detection mechanism materially faster than tiered polling, for example a push-based position feed or a print-level inference of position change from trade flow rather than periodic snapshots, tested at a horizon this programme has not yet run. That is a different measurement, on an instrument this programme did not build, and it has not been attempted.
What would not reopen it: re-running this test at a different horizon on the existing data. Secondary horizons at 60, 900, and 1,800 seconds are reported in section 7 and none approach the cost threshold; the pre-registration explicitly forbids treating any of these as a decision, and this dossier does not use them as one.
11. Reference implementation
Published as 05_INSTRUMENTS/strategies/python/src/whale_drift.py, with 21
tests, carrying both the drift measurement and the state-change mechanics from
BL-SD-030 it depends on. The measurement cadence this family died on is an
argument to the published functions rather than a constant inside them, so a
reader sampling faster can re-run it without editing logic.
12. Evidence register
| ID | Artifact | Carries |
|---|---|---|
E-0055 through E-0057 | Venue verification pulls establishing the Hyperliquid substrate | Context for the positions stream this instrument reads |
This measurement is recorded in the pre-registration ledger, backed by the
whale-drift instrument's own machine-readable output retained in the venue data
lake, and is registered as D-024 in BL-A-006.
13. Lessons extracted
This dossier is the clearest example in the Hyperliquid record of a result that was recorded correctly at the time as a clean falsification, and is reclassified in retrospect not because new data emerged but because a comparison across two independently measured latency regimes became available once both were in the record. The original pre-registration's discipline, well powered, both criteria pre-registered, no subset search permitted, is exactly what makes the reclassification defensible rather than a rewrite: nothing about the reported numbers changed, only the interpretation of what a null result at a specific, measured detection latency actually rules out.
The narrower lesson is architectural. Monetising identity-conditioned information through periodic position polling is closed at this programme's latency; the print-level band, which is faster by construction because it reads flow as it happens rather than sampling state periodically, is where a comparable signal was found to be real, even though it also failed a different test, cost, rather than this one, cadence.
14. Cross-references
BL-SD-030 for the mechanical characterisation that established the detection latency this
verdict turns on. BL-SD-029 for the comparably-sized signal found real at a much faster
detection cadence, which is the basis for the cadence classification here. BL-D-002 section 4
for the reversal-point test, not fully computable in this case, discussed in section 10. Ledger
row WC1.
Copyright (c) 2026 Bijective Labs. All rights reserved.