A signed record of tokenized equities, off hours.
Keep a public, signed record of how tokenized U.S. equities trade on a public ledger, in particular while U.S. markets are closed: a gap per session when its closing price can be read, a named abstention when it cannot, a signed, hash-chained record.
What Bell is
MONARK Bell is an application of the engine, on its DeFi side: tokenized equities, off-hours. It connects to Hikae and Shōgen, and it publishes from its own host, https://bell.monarkgate.tech. The register’s served note: a signed, hash-chained timeline served on its own host, checked end to end by a non-LLM reader-side verifier against the committed keyring.
The latest signed record, line 2 of the timeline, was published at 2026-09-24T08:41:21.864Z and covers 3 instruments: TSLAx, AAPLx, SPYx. The timeline holds 2 lines, as read from the host at 2026-09-25T02:44:41.407Z.
Why off hours
A token that tracks a U.S. equity trades on a public ledger at every hour, while the market of the equity it tracks opens on a calendar. Between two closes, the token keeps moving and the reference price does not. Empirical work on tokenized stocks measures how far and how often the token strays from the last close overnight and over the weekend (Cong, Landsman, Rabetti, Zhang and Zhao (2025)). Bell does not predict that gap. It keeps a public record of it, session by session, that anyone can recompute, and it names every case where it cannot compute one.
The day, session by session
Bell classifies every fill by its New York wall-clock date and minute, with daylight saving applied per date, into the sessions of one trading day. An off-hours instant belongs to the gap that begins on the most recent trading day; the regime of that gap is read by walking forward to the next trading day.
From fills to a signed line
A fill is one swap in one declared pool, read from the ledger and counted once per transaction signature, so a route through an aggregator appears once. The list of fills must agree on two distinct operators, and a deterministic sample of them is cross-read on both; the publisher refuses a record that fails its closed checks; the host signs each line and chains it to the one before.
The gap and the cash leg
The gap of a session compares the price per share of the token’s fills, volume-weighted, with the reference close of the day the session is keyed to. Before a gap is computed, the close is read twice, from two sources, and the two readings must agree as integers at a fixed scale.
In the latest record, a gap is computed for 9 of its 9 session rows. Each row below is read from the served state:
| instrument | session | fills | cash leg | gap g | abstention |
|---|---|---|---|---|---|
| TSLAx | after | 112 | matched | 0.0045769277 | none |
| TSLAx | overnight-weekday | 268 | matched | 0.0076461167 | none |
| TSLAx | pre | 308 | matched | 0.0254545113 | none |
| TSLAx | regular | 2422 | matched | 0.0109991552 | none |
| AAPLx | after | 588 | matched | -0.0348331181 | none |
| AAPLx | overnight-weekday | 901 | matched | 0.0039546808 | none |
| AAPLx | pre | 360 | matched | 0.0009762779 | none |
| AAPLx | regular | 770 | matched | 0.0058649746 | none |
| SPYx | regular | 2244 | matched | -0.1314785368 | none |
Residuals, halts, the multiplier
A residual is a named reason the collector could not produce a clean fact. The list is closed, every code is counted in the state file, and a session carries its codes next to the number they qualify. The codes counted above zero in the latest record, per instrument:
- TSLAx
- no_wrapper 1 · por_unavailable 1 · quorum_sampled 1 · halts in the window: 0 · shares per unit: 1
- AAPLx
- multiplier_unit 1 · no_wrapper 1 · por_unavailable 1 · quorum_sampled 1 · halts in the window: 0 · shares per unit: 1.0026642075893797
- SPYx
- multiplier_unit 1 · no_wrapper 1 · por_unavailable 1 · quorum_sampled 1 · halts in the window: 0 · shares per unit: 1.003909240011759
A trading halt of the underlying is matched to the first fill after it and the last fill before its resume; a missing resume time, an unknown reason and the gap between block time and submission time are all declared, never guessed. The shares-per-unit multiplier converts a token amount into shares at the time of each fill; when it cannot be established as constant or known over the window, the session abstains. The full closed list, with a gloss for each code, is on the method page.
The chain, the key, the anchors
- public key
- https://bell.monarkgate.tech/bell/pubkey.json, Ed25519, key_id 30fd26e80efac0d93e1f82c5f4372354ec71e5294f36d946d5167ce0ef39c672, active from line 1
- files
- /timeline.jsonl · /state.json · /provenance.json
- deploy check
- 12 of 12 controls passed at 2026-09-24T08:41:49.208Z, the reader-side verifier run against the served host
- anchors
- 17 lines in the anchors register, 16 of 16 proofs carrying a Bitcoin block record; they timestamp the manifests of the counter-verification run of the multiplier history. The register.
- the latest record’s timestamp anchor
- anchored: the proof file records Bitcoin block 968402, the earliest of 3; the record's line and every line before it existed before that block; read from the file when this page was built, not checked against a node here
A real record
The latest line of the timeline, as committed from the host, and the first session row of its first run. Nothing here is typed: the page prints the objects it read.
{
"seq": 2,
"kind": "publication",
"published_at": "2026-09-24T08:41:21.864Z",
"prev_line_hash": "4a417cf02289b4968c17e7dc9f61c013bf04d62c77e541993a05a20a6965f47c",
"line_hash": "ef3b06f2ff93951e200a6559b42ab66df5ac4aa38b86d3aa763c118c766f6464",
"key_id": "30fd26e80efac0d93e1f82c5f4372354ec71e5294f36d946d5167ce0ef39c672",
"state_sha256": "4564701add6e4231a67912ef45c7db640cd76dfe88302a96bc0e7722090508b9",
"provenance_sha256": "ad8dd9b023bdfafade328d7ada5d17ae53d0de2133fcdf808237409d136fc39b",
"sig": "p6WSevOLNoXGSv3Ge3IIWVFTFDcUFhAp0yoM9aI5X3BPAcjb7aSv6CE7kMr5EevB2HYiVnJjicF9Q2wotqffBA"
}{
"symbol": "TSLAx",
"session": "after",
"regime": null,
"n": 112,
"abstain": null,
"gT": "0.0045769277",
"exceed": [
{
"threshold": 1,
"exceeded": 0
},
{
"threshold": 2,
"exceeded": 0
},
{
"threshold": 5,
"exceeded": 0
}
],
"earliest_publish_utc": 1789675200000,
"cash_cross": "matched",
"multiplierUsed": null,
"rebase_residuals": []
}To check a line yourself, follow the verification page: the key, the chain, the signatures, the state files. The reader-side verifier and the public keyring are in the public repository.
What Bell does not do
The Bell page shows the latest record in full and the method page every definition.
Sources
- Cong, Landsman, Rabetti, Zhang and Zhao (2025) Tokenized Stocks. SSRN working paper 5937314. read in full Used for overnight and weekend deviations of tokenized equities from the last close.
- Kenneth R. French (1980) Stock Returns and the Weekend Effect. Journal of Financial Economics, vol. 8, no. 1, pp. 55-69. not yet obtained Used for the historical antecedent of the weekend gap, cited as a name only until obtained.
- S. Josefsson and I. Liusvaara (2017) Edwards-Curve Digital Signature Algorithm (EdDSA). IETF RFC 8032. read in part Used for the signature over each line of the Bell timeline.
- National Institute of Standards and Technology (2015) Secure Hash Standard (SHS). Federal Information Processing Standards Publication 180-4. read in part Used for the hash every record, line and digest is recomputed with.
- B. Laurie, E. Messeri and R. Stradling (2021) Certificate Transparency Version 2.0. IETF RFC 9162. read in part Used for an analogy only: an append-only, hash-chained log makes a rewrite detectable.