Do not trust us. Recompute.
Everything MONARK publishes is set up so that you can recompute it with standard tools and a copy of the public files, with no MONARK account: the files are public, any copy serves. The signature check is a separate step, through the open verifier of the public repository or your own implementation of the canonical form. A signature attests origin, never truth: the check of a fact is always the recompute from the ledger.
The gestures
Six gestures on MONARK Bell’s published record and on the token, in order. The last one is drawn dashed until a proof covering the latest published record carries a Bitcoin block: that state is read from the publication register.
The key
curl -s https://bell.monarkgate.tech/bell/pubkey.json
The key id served there must equal the id in the committed keyring, apps/bell/keys/bell-keyring.json: today 30fd26e80efac0d93e1f82c5f4372354ec71e5294f36d946d5167ce0ef39c672, as read from the host at 2026-09-25T02:44:41.407Z. The site links the key and serves no copy of it.
The chain
curl -s https://bell.monarkgate.tech/timeline.jsonl -o timeline.jsonl sed -n '<n>p' timeline.jsonl | tr -d '\n' | sha256sum
The hash of line n, without its line feed, is its line_hash. Each line names the hash of the one before it in prev_line_hash; the first names the genesis value 0000000000000000000000000000000000000000000000000000000000000000. The latest line, number 2, carries ef3b06f2ff93951e200a6559b42ab66df5ac4aa38b86d3aa763c118c766f6464.
The signatures
node apps/bell/scripts/bell-verify.mjs --url https://bell.monarkgate.tech --keyring apps/bell/keys/bell-keyring.json
Run from the public repository, the reader-side verifier re-derives the chain and every signature, the key schedule, and the binding of the state file to the head line. Its success status reads consistent_with_supplied_keyring; without a keyring it reports self_consistent_only, never an unqualified success. The deployment check runs the same verifier against the served host: 12 of 12 controls passed at 2026-09-24T08:41:49.208Z.
The state files
curl -s https://bell.monarkgate.tech/states/4564701add6e4231a67912ef45c7db640cd76dfe88302a96bc0e7722090508b9.json | sha256sum
A line names the SHA-256 of its state file and of its provenance file, and the host serves each one, unchanged, at an address made of that hash. The hash of the file must equal its name. For the latest line: state 4564701add6e4231a67912ef45c7db640cd76dfe88302a96bc0e7722090508b9, provenance ad8dd9b023bdfafade328d7ada5d17ae53d0de2133fcdf808237409d136fc39b.
The token address
The token’s contract address is shown on the token page as an address only, with no price and no buy call. It is also the single line of out/mint.txt in the public repository, and a test pins the two equal on every change. Read from that file when this page was built:
FYZcYCHSp8FzNba1UtDZydKKGosmxVNpFBiVuia38AhT
The timestamps
The published records are signed and chained. Their timestamp anchoring is read from the publication register: none, pending while the proof carries calendar attestations only, anchored once it carries a Bitcoin block; this gesture applies to an anchored line.
Today the anchors cover the manifests of the counter-verification run of the multiplier history: 17 lines in the register, 16 of 16 proofs carrying a Bitcoin block record. For each, download the manifest and its proof from the anchors register, hash the manifest, and run an open OpenTimestamps client on the proof against a Bitcoin node of your choice: it names the block before which the manifest existed.
More checks
- Narabi. Pull the two published files, recompute any window from its block range with the logs and the supply of the token, and re-derive the tracker from the score column; the Narabi page runs the integrity checks in your browser.
- The site’s data. The facts these pages print are read from committed files, never typed. The data files under
apps/site/data/, the committed figures and the recorded traces are pinned by hash inmanifest.sha256.json; a mismatch stops the build. - The gate’s abstention. Call the gate outside a committed class and watch it abstain. As recorded: the step
cascade-gateoncascade-liquidable-24hansweredabstain · under_calib. - The contracts. Try to serialise a contract carrying a forbidden key: it throws instead of serialising.