Narabi — daily
One daily UTC window per line: attested, published, replayable, pre-registered, bounded. Two static files, nothing else.
Why seven steps
T = 6, from the committed capture of 2026-09-24. T is read from the published state, never typed here. We will not speak of this as a series until it has run for seven daily steps — one week of a published timeline that anyone can recompute and replay from the two static files, before we point to it. Seven steps is a week, nothing stronger: no trend is claimed, and no coverage is measured.
The bound printed daily is the Angelopoulos, Barber and Bates long-run quantity (B + η₁)/(T·η_T) with c = B = 1/24 and ε = 0.1; it stays above the target 0.1 until T = 1789, and we say so plainly rather than as a feature.
The tracker adapts; the gate does not yet. No coverage is measured — the printed bound is a long-run quantity, not a per-window coverage and not a probability.
What Narabi is
Narabi is the sensor of the first vertical. Shōgen attests, Hikae reads coverage, Ukemi carries the prediction contract; Narabi's measured redemption flow produced the committed calibration of the gate's one class, and the daily timeline is published beside it, not read by the gate. It is the first MONARK piece that publishes its own daily state for public replay.
Raw burns, mints and closing supply over a declared block window.
AttestedFlow is the fifth frozen typed contract. Its bytes recompute from the chain: Transfer events to and from the zero address, plus totalSupply at the closing block. No score, no price, no probability rides on it.
The timeline is appended once a day and never rewritten; the state file is replaced each day.
state.json holds the tracker as of the last window and is replaced when a window is published; timeline.jsonl grows by one line per daily UTC window. Each line carries the hash of the previous one, so a rewrite is detectable by anyone holding an older copy, and this page checks that the timeline served now extends, byte for byte, the one served when its committed capture was taken. Detectable, not certified: the only check of the facts is the recompute.
The committed gate region does not move on its own.
It holds until the drift criterion fires (rolling calm-miss at or above the threshold, evaluable after the calm window fills) and an ADR says so. A drift opens a review; it never switches anything automatically.
A deterministic long-run bound, printed with T, and called weak on purpose.
Each step prints the long-run quantity of the first theorem of Angelopoulos, Barber and Bates for the decaying step tracker. It tightens as windows accumulate and stays above the target for a long time; the page prints the projected day rather than hiding it.
The word qualifies the quantile tracker, nothing else.
The tracker moves each window from the realized outcome. The gate reads the committed static calibration and does not depend on the tracker state. The tracker adapts; the gate does not yet.
Split conformal calibration plus a decaying step quantile tracker.
The gate answers commit, defer or abstain over a region, never a probability of being right. The calibration is measured nonstationary across half years, so under unit weights the honest sentence is the Barber, Candes, Ramdas and Tibshirani one: no coverage is measured.
How a window is built
Five steps, every one recomputable from the chain and the two files.
- Fix the daily UTC window and read its block range from the chain, from_block to to_block.
- Sum USDe burns and mints inside the range from the token's Transfer events; read the closing supply.
- Form the velocity v: burns divided by the opening supply (reconstructed exactly as close plus burns minus mints), per hour of window. Burns only in the numerator; a true fraction of the stock, never the odds.
- Classify the window: calm when burns stay under one percent of the opening stock and the stock is above the committed floor; then evaluable, non evaluable or clipped for the pair.
- Score the pair against the persistence forecast (tomorrow's v is today's v), step the tracker on it, and append the line with its hash, the sentinel's version and its RPC endpoint pool (this page shows only its size).
What the gate does with it
The gate tool on mcp.monarkgate.tech/mcp serves one committed class for the USDe population, calibrated on 613 calm pairs. Every other population abstains under_calib. The committed region is locked to one key; no family label routes around it, and the tracker printed on this page is not what the gate reads.
- task class
- stable-run-velocity-24h
- committed key
- narabi:persistence-v2@eip155:1/erc20:0x4c9edd5852cd905f086c759e8383e09bff1e68b3
- calibration pairs
- 613
- calibration digest
- c9793b28…59d9e86c
the task class of the served gate description for Narabi's redemption-flow velocity
the one (task class, predictor) key the committed region is locked to
consecutive calm pairs behind q₁, counted at build from the committed calibration scores
calibDigest over those scores, recomputed at build: the digest the gate's verdict carries, not the tracker digest below
Pull both files. Recompute any window from its block range with eth_getLogs and totalSupply. Rederive q_t from the s column with the tracker replay printed below. Recompute each line's hash from its fields, as this page does in your browser. The AttestedFlow documents are not served: rebuild one from its window's facts with the public sentinel code and compare its hash with the published one. If anything differs, that is the finding, and it is yours to publish.
Tracker state
Narabi runs an adaptive quantile tracker (Angelopoulos–Barber–Bates 2024, decaying step) on the attested daily USDe redemption flow: its state moves each 24h window from the realized outcome, and the full timeline is published so anyone can replay it. What it carries is a deterministic long-run bound that tightens as windows accumulate, printed daily with T, not a per-window coverage, not a probability; the gate's committed calibration does not depend on the tracker state. Until the pre-registered drift criterion fires and an ADR says otherwise, the gate's region is still the committed static calibration: the tracker adapts, the gate does not yet.
- q_t
- 1.372794e-2
- q₁
- 1.311923e-4
- T
- 6
- bound_thm1
- 0.9767
- bound ≤ target, projected
- 2031-08-11
- tracker parameter segments
- one: every published bound equals the long-run bound under the published parameters
- params
- alpha = 0.1 · c = 0.041666666666666664 · eps = 0.1 · t0 = 0 · B = 0.041666666666666664
- digest
- 26f94023…ae3d8dbe
current threshold of the adaptive quantile tracker
the committed static calibration
pairs stepped so far, evaluable or clipped
deterministic long-run bound, tightens as T grows; a — means no stepped pair yet
assumes one stepped pair per calendar day from the first tracker step (2026-09-18), under the published parameters; a change of c or ε would open a new parameter segment and move the printed bound to the arbitrary-step theorem of the same paper.
the tracker digest: folds q₁, params and every stepped score
Pre-registered drift criterion
What a drift triggers is the opening of an ADR, never an automatic change of the committed gate region.
- criterion
- rolling calm-miss ≥ 0.40 over the last 90 calm pairs
- status
- 6 of 90 calm pairs — evaluable after the window fills
- fired
- no
Windows
One row per daily UTC window, most recent first. Zeros are facts. A field not yet evaluable is a — with its status word. Amounts are rounded half-up to the unit shown; the exact integers are in the file.
| day | T | blocks | supply open (USDe) | burns (USDe) | mints (USDe) | supply close (USDe) | supply identity | v (per hour) | regime | pair |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026-09-23 | 6 | 26036464–26043610 | 4.90 B | 11.32 M | 5.43 M | 4.89 B | holds | 9.6339e-5 | calm | evaluable |
| 2026-09-22 | 5 | 26029316–26036463 | 4.90 B | 34.76 M | 26.38 M | 4.90 B | holds | 2.9529e-4 | calm | evaluable |
| 2026-09-21 | 4 | 26022170–26029315 | 4.88 B | 17.60 M | 45.00 M | 4.90 B | holds | 1.5034e-4 | calm | evaluable |
| 2026-09-20 | 3 | 26014998–26022169 | 4.84 B | 2.43 M | 35.73 M | 4.88 B | holds | 2.0892e-5 | calm | evaluable |
| 2026-09-19 | 2 | 26007836–26014997 | 4.81 B | 12.33 M | 48.81 M | 4.84 B | holds | 1.0683e-4 | calm | evaluable |
| 2026-09-18 | 1 | 26000651–26007835 | 4.74 B | 8.56 M | 76.20 M | 4.81 B | holds | 7.5211e-5 | calm | evaluable |
| 2026-09-17 | 0 | 25993482–26000650 | 4.73 B | 7.25 M | 17.70 M | 4.74 B | holds | 6.3857e-5 | calm | non evaluable |
Status is a word, not a colour. Fields not yet evaluable are printed as — with the word that says why.
Tracker trajectory
Each stepped pair, read from the published lines: the score s, whether it exceeded the committed q₁ (static miss) and the tracker's own threshold (tracker miss), the threshold before and after the step, the step size η and the long-run bound.
| day | T | s | static miss | q before | η | q after | tracker miss | long-run bound |
|---|---|---|---|---|---|---|---|---|
| 2026-09-23 | 6 | 1.9895e-4 | miss | 1.5150e-2 | 1.4220e-2 | 1.3728e-2 | — | 0.9767 |
| 2026-09-22 | 5 | 1.4495e-4 | miss | 1.6736e-2 | 1.5864e-2 | 1.5150e-2 | — | 1.0506 |
| 2026-09-21 | 4 | 1.2945e-4 | — | 1.8550e-2 | 1.8136e-2 | 1.6736e-2 | — | 1.1487 |
| 2026-09-20 | 3 | 8.5942e-5 | — | 2.0705e-2 | 2.1553e-2 | 1.8550e-2 | — | 1.2888 |
| 2026-09-19 | 2 | 3.1623e-5 | — | -4.0355e-3 | 2.7490e-2 | 2.0705e-2 | miss | 1.5157 |
| 2026-09-18 | 1 | 1.1354e-5 | — | 1.3119e-4 | 4.1667e-2 | -4.0355e-3 | — | 2.0000 |
| 2026-09-17 | 0 | — | 1.3119e-4 | — | 1.3119e-4 | — |
- static misses so far
- 2 of 6 stepped pairs
- share of tracker misses so far
- 0.1667 over T = 6
- sentinel's informational static budget (field B_t)
- -0.1 with t_deg = 5 labels arrived
A static miss is a pair whose score exceeded q₁, the committed region the gate reads. The pre-registered drift criterion below is the rolling rate of static misses over calm pairs, evaluable only once its window fills; a count this small says nothing about coverage.
Share of tracker misses so far, over T steps: a realized frequency on a handful of steps, not a coverage and not a probability.
The sentinel's informational static budget (field B_t), computed from the static misses whose labels have arrived (t_deg). It is neither the budget a gate caller carries nor the MONARK authorization budget of the token page; a negative value is printed as it is.
Hashes per window (utterance, AttestedFlow, tracker digest, chain)
| day | utterance | AttestedFlow | digest_T | prev line | line |
|---|---|---|---|---|---|
| 2026-09-23 | 487601…041114 | 67555a…e6c10f | 26f940…3d8dbe | 842c96…ac775c | e69ed7…ac1d31 |
| 2026-09-22 | 1e93d0…4229e9 | 655164…4d5d20 | 6351f0…27b69a | 19879c…e65bd5 | 842c96…ac775c |
| 2026-09-21 | e10689…291ab3 | 3e85de…bd4e23 | e0d645…6d0f1e | 2c95e1…8c4d2b | 19879c…e65bd5 |
| 2026-09-20 | 6bb4bf…f4cdb7 | c9124f…8c0e71 | 8a2309…cc099e | f73c70…d55b2c | 2c95e1…8c4d2b |
| 2026-09-19 | 1c7013…405bb0 | 68aa1a…d6bf6c | cada7b…3903f4 | ec4ce6…deec0a | f73c70…d55b2c |
| 2026-09-18 | 907195…83e422 | 3692fa…cfd130 | 9b5f89…35d633 | 09beb6…81da82 | ec4ce6…deec0a |
| 2026-09-17 | 8767c2…e4d3d6 | 6ec873…603388 | 48d406…0c275a | GENESIS | 09beb6…81da82 |
Recompute & diff
The hash chain makes a rewrite detectable, never certified. The only check of the facts is the on-chain recompute.
# facts — window 2026-09-23 eth_getLogs address=USDe topics=[Transfer] fromBlock=26036464 toBlock=26043610 burns = sum(Transfer to the zero address) -> 11321263619380000000000000 mints = sum(Transfer from the zero address) -> 5429629789870680000000000 totalSupply at the close block -> 4890564085271987753523503861 # attestation sha256(AttestedFlow bytes) -> 67555aa0afca4ca694434f46aed6deec6392ccd2078cc34e1645abd885e6c10f # tracker replay (recomputed in this page from q1, params and the s column) trackerReplay(q1, params, timeline.s) -> q = 1.372794e-2 state.json replay_q (published) -> q = 1.372794e-2 # hash chain prev_line_hash -> 842c96328367857dcbf29582fa5a4d9bbd3fdc51d107f56f8d771088a0ac775c line_hash -> e69ed7b085c9a7cb9a521f0ee95391abc81e05ba5b85c59ba7d302e64dac1d31
Recomputed when this page was built, on its committed capture; a browser that runs the page recomputes all of it again, first on that capture, then on the files as served now.
- hash chain
- 7 links intact
- state.json digest equals the last line's digest_T
- yes
- tracker digest recomputed from q₁, params and the s column
- equals state.json
- tracker replay recomputed here
- 1.372794e-2, the same as the published replay_q to the printed digits, over T = 6 steps
- supply identity (open = close + burns − mints)
- holds on all 7 windows (recomputed here in exact integers)
- the timeline served now extends, byte for byte, the one served at the capture of 2026-09-24
- not applicable: this is the capture
state.json · timeline.jsonl · published files, read-only
Operational register
- sentinel_sha
- e73866a8…5748f286
- node_version
- v24.21.0
- endpoints
- 7 RPC endpoints in the read pool; each burns, mints and supply read needs two distinct providers that agree
- lag
- unknown until the files as served now are read
- published at
- —
- code versions (sentinel · node)
- 2026-09-17 → 2026-09-17 · sentinel b5a0ed…f81092 · node v24.21.0 2026-09-18 → 2026-09-19 · sentinel a87e86…5353f5 · node v24.21.0 2026-09-20 → 2026-09-20 · sentinel 2c58b8…d92295 · node v24.21.0 2026-09-21 → 2026-09-22 · sentinel a3ed49…64582d · node v24.21.0 2026-09-23 → 2026-09-23 · sentinel e73866…48f286 · node v24.21.0
- source
- committed capture of the published files, taken 2026-09-24; the files as served now are read once this page runs in a browser
- read at
- —
the Last-Modified header of each served file
a run of lines written by an unchanged sentinel build and Node version; a new build does not change the tracker parameters
What this is not
- Not a per window coverage.
- Not a probability of being right.
- Not a price, a peg gauge or a run alarm.
- Not a trend: seven steps is a week, nothing stronger.
- Not a switch: a drift opens an ADR, never an automatic change.
Glossary
- T
- Number of pairs the tracker stepped on so far, evaluable or clipped. Read from state.json, never typed on this page.
- q₁
- The committed static calibration threshold, the one the gate reads.
- q_t
- The tracker's current threshold after T steps. Published, not consumed by the gate.
- bound_thm1
- The long-run bound for the current T. A dash means no stepped pair yet.
- regime
- calm, stress or below floor: calm when the opening stock is above the committed floor and burns stay under one percent of it.
- pair
- evaluable, non evaluable or clipped: whether the window contributes a step.
- static miss
- A stepped pair whose score exceeded q₁, the committed region. Counted, never a coverage.
- tracker miss
- A stepped pair whose score exceeded the tracker's own threshold before the step.
- calm-miss
- Share of calm pairs whose residual exceeded q₁, over the rolling window. Metadata for the criterion, never a tracker filter.
- supply identity
- What each window must satisfy: opening supply equals closing supply plus burns minus mints, checked on every line.
- code version
- A run of lines written by an unchanged sentinel build and Node version. A new build does not change the tracker parameters.
- parameter segment
- A run of unchanged tracker parameters. A change of c or ε would open a new one and move the printed bound to the arbitrary-step theorem.
- under_calib
- Too few calibration points for a population: the gate abstains for it, serving no region while its state is published. A named state, never a number.