BL-SD-030: Whale State-Change Mechanics
BIJECTIVE LABS
BL-SD-030: Whale State-Change Mechanics
Status: RELEASED
Classification: PUBLIC
Revision: 1
Date: 2026-09-08
Venue: Hyperliquid perpetuals Programme: I Verdict: CONFIRMED Blocking axis: not applicable, this is a fact rather than a hypothesis Transferability: not applicable, confirmed rows carry no transferability classification
1. Identification
| Field | Value |
|---|---|
| Internal code | WC0 |
| Family | Wallet cartography, mechanical characterisation stage |
| Venue | Hyperliquid perpetuals |
| Programme | I |
| Pre-registered | 2026-07-14, spec locked before the run |
| Verdict issued | 2026-07-14 |
| Pre-registration document | 2026-07-14_WC0_wallet_cartography_characterization.md |
| Verdict document | Same document, section 2, gate result cited in 2026-07-14_WC1_whale_drift_preregistration.md section 0 |
| Predecessor | BL-SD-023 and BL-SD-027, whose falsifications made a per-wallet signal, untested until this point, the next candidate worth measuring |
This dossier is a mechanical characterisation, not a hypothesis test. It was deliberately
separated from the directional question that follows it, BL-SD-031, to prevent the mechanical
facts measured here, event rate and detection latency, from being fit to whatever directional
result would later be seen. The design states this constraint explicitly: computing a forward
return or a drift number at this stage was prohibited by the pre-registration itself.
2. Economic thesis
The positions data asset records per-address, per-coin state from a tiered polling schedule,
thirty seconds for wallets near liquidation, ninety seconds for large accounts, six hundred
seconds by default, rather than from a push feed. Before any hypothesis about whether whale
position changes predict price can be tested, three mechanical facts must be established: how
often a whale's position change is actually observed given this polling cadence, how much delay
exists between the change occurring and this system detecting it, and how concentrated the
population of contributing wallets is. Those three facts jointly determine whether any
directional test that follows is even well posed, because a signal that decays faster than the
polling system can detect it is not a signal this system can trade regardless of whether the
signal exists.
This dossier names no forced loser, because it measures an instrument's own detection properties rather than proposing a trade. The economic question it answers is prior to any trade: is there enough event supply, observed quickly enough, to make a directional test worth running at all.
3. Falsifiable claim
Pre-registered before the run, as a gate rather than as a strategy claim:
Whale state-change events at or above $500,000 notional, from accounts with account value at or above $1,000,000, occur at a rate of at least 8 per day, and are detected with a median latency at or below 180 seconds. Passing this gate earns the right to design a directional pre-registration; it does not itself claim any predictive content.
| Metric | Threshold | Decision if crossed |
|---|---|---|
| Whale, $1M+, event rate at $500k+ notional, per day | below 8 | Candidate closed mechanically, hypothesis not burned |
| Detection latency, p50 | above 180 seconds | Candidate closed, no horizon band is reachable |
| Both thresholds met | pass both | Proceed to a separately pre-registered directional test |
4. Mathematical specification
Notation per BL-D-011.
Per-address, per-coin poll series, ordered by receive time rx_ns. The first
observation for a series is a baseline, never an event, since the prior state
is unknown:
classify_transition(szi_prev, szi_new):
OPEN if szi_prev == 0 and szi_new != 0
CLOSE if szi_prev != 0 and szi_new == 0
INCREASE if sign(szi_prev) == sign(szi_new) and |szi_new| > |szi_prev|
DECREASE if sign(szi_prev) == sign(szi_new) and |szi_new| < |szi_prev|
FLIP if sign(szi_prev) != sign(szi_new) and both != 0
tolerance: |szi_new - szi_prev| <= 1e-9 * max(1, |szi_prev|) => no event
Event value, valued backward-looking at the detecting poll's receive time:
usd_value = |szi_new - szi_prev| * mid_asof(rx_ns_detect)
mid staleness <= 60 s for this valuation only, not a gate on the event itself
Whale filter, evaluated on the detecting poll's own row:
whale if account_value(row) >= $1,000,000 (primary)
large if account_value(row) >= $250,000 (context)
Detection latency, an upper bound on the true delay:
latency = rx_ns(poll_detect) - rx_ns(poll_previous)
(the true state change occurred at some point within this gap)
Direction, reported as an aggregate fact, carrying no return:
direction = sign(szi_new - szi_prev)Causality holds by construction: every event is defined from two consecutive polls, and its timestamp is the receive time of the detecting poll, which is the earliest instant this system could possibly know the change occurred. No forward price data enters this specification at any point, and the pre-registration explicitly prohibits computing one: this is a fact about observation timing and event supply, not about outcome.
5. Operating envelope
| Parameter | Value for this measurement |
|---|---|
| Round-trip cost assumed | Not applicable, no trade PnL was computed here |
| Execution channel | Not applicable |
| Latency band | Determined by this measurement, not assumed; see section 7 |
| Measurement cadence | Tiered polling: 30 s near-liquidation, 90 s large accounts, 600 s default |
| Capital scale | Not applicable |
| Venue and instruments | Hyperliquid perpetuals; ETH as the primary universe (classifier and coverage valid), BTC and SOL as context |
| Data era | Recorded shadow lake, 2026-07-01 to 2026-07-13 |
6. Instrument
The wallet state-change classification instrument, test-driven, implements the transition classifier, the event-extraction function, and the size-bucketing function as pure functions, with a dedicated unit test suite.
| Property | Value |
|---|---|
| Reporting floor | $100,000 event value, below which events are discarded as dust |
| Value buckets | $100k to $500k, $500k to $2M, above $2M |
| Universe | ETH primary; BTC and SOL reported as context with sampling-bias from the scanner's own wallet discovery noted |
7. Results
| Metric | Value |
|---|---|
| Whale ($1M+) state-change events at $500k+ notional, ETH | 154.8 per day |
| Detection latency, p50 | 92.8 seconds |
| Detection latency, p90 (context) | approximately 32 minutes |
| Unique contributing addresses, $100k+ events, ETH | 304 |
| Top-10 address concentration | 47 percent of event value |
| Arm | Threshold | Result |
|---|---|---|
| Event rate at or above 8 per day | pass | 154.8 exceeds the gate by a factor above 19 |
| Detection latency p50 at or below 180 seconds | pass | 92.8 seconds is within budget |
Both gate criteria pass with substantial margin. The p90 latency figure, roughly 32 minutes, is reported as context rather than as a gate criterion: the design fixed p50 as the decision metric before the run, precisely so that a long tail would not be used to argue the gate either way after the fact.
8. Verdict, blocking axis, and transferability
Verdict: CONFIRMED.
This is a mechanical fact about the venue and about this programme's own detection instrument,
not a strategy, and it carries neither an axis of death nor a transferability classification.
What was confirmed: whale position state changes at or above $500,000 notional, from accounts
above $1,000,000 in value, occur on Ethereum at a rate of 154.8 per day, comfortably clearing
the pre-registered gate of 8 per day, and are detected at a median latency of 92.8 seconds
after the change occurs, comfortably within the 180-second budget the gate required. Both
figures were established before any directional hypothesis was tested, which is the entire
purpose of separating this dossier from BL-SD-031.
Why it could not be monetised as measured. This dossier does not attempt monetisation and
draws no conclusion about whether the state changes it counts carry tradeable information. That
question was tested separately and immediately afterward, using the horizon band this dossier
established as valid, in BL-SD-031. The result there was a clean negative: state-change
direction carried no measurable forward drift at the 300-second horizon this detection latency
permits testing. The mechanical finding recorded here, that the event supply and detection speed
are adequate, therefore stands on its own as a fact about this venue and this instrument,
independent of the directional question it made possible to ask cleanly. A reader with a faster
detection mechanism, for example a push-based position feed rather than tiered polling, would
have a materially shorter latency than the 92.8 seconds measured here, and the directional
question in BL-SD-031 has not been re-tested at that faster cadence.
9. Cost and capacity analysis
Not applicable. No trade, fee, or capital question was addressed by this characterisation.
10. Envelope sensitivity and reopening conditions
Not applicable in the form used for FALSIFIED or CLOSED rows. This dossier records the
operating characteristics of a polling-based detection instrument, not a verdict that reverses
under a cost or latency substitution. The one parameter that does matter for a downstream reader
is detection latency itself: the 92.8-second median measured here is a property of this
programme's polling schedule, not of the venue, and a faster detection mechanism would place
the directional question tested in BL-SD-031 on different footing, at a horizon this
programme did not test.
11. Reference implementation
The wallet state-change classification instrument is published as part of
05_INSTRUMENTS/strategies/python/src/whale_drift.py, with 21 tests covering it
together with the directional instrument built on top of it. The two are
published as one module because the classification is not separately callable in
the source either: the drift measurement consumes its output directly.
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 document itself, backed by
the wallet-cartography instrument's own machine-readable output retained in the
venue data lake, and is registered as D-023 in BL-A-006.
13. Lessons extracted
The design discipline this dossier exercises, separating a mechanical characterisation from the directional test it enables, is the same pattern used for the venue's time-of-day characterisation family and for the identity-adverse-selection gate. Each of these measures a prior, structural question before touching a forward return, and each states explicitly that computing a forward return at the characterisation stage would compromise the later test. This dossier is a clean instance of that discipline: the gate passed with a wide margin on both criteria, and the directional test that followed it, tested honestly on the horizon this characterisation established as valid, still failed. Had the two been combined into a single measurement, a reader would have no way to know whether the eventual negative result was a failure of the underlying idea or an artifact of an unvalidated detection latency.
14. Cross-references
BL-SD-031 for the directional test built on the horizon band this dossier established, which
returned a clean negative. BL-SD-023 and BL-SD-027 for the two prior falsifications that
made a per-wallet signal the next candidate worth measuring. Ledger row WC0.
Copyright (c) 2026 Bijective Labs. All rights reserved.